Denoising Autoencoders for Missing Value Imputation
Training one neural network to learn why the data is missing can help in training another network to replace the missing data.
Code
Find the code for this project on my GitHub. It defines all models in PyTorch and includes the training scripts to reproduce my experiments.
Summary
A common problem with real-world datasets is missing data. In this project, we train a neural network to impute missing data with realistic values. To learn this, the neural network needs to see data points in its training for which we know both the true uncorrupted version and have a faulty version with missing values. To generate such pairs of data, we train another network to first learn the missingness pattern. We can then apply this pattern to data points without missing values and train the imputation model on the pairs of corrupted and ground truth data.
This approach is not limited to tabular data. For my experiments, I mostly used images to get a feeling for the inpainting failure modes of the different approaches. Some example images with two different types of missingness applied are shown here:
The following figure displays the inpainting results for a few methods on MNIST images. ImputeLM is my method.