0
$\begingroup$

Imagine a dataset of with values for 10 features for 100,000 samples. Some feature values are missing at random from some samples.

I would like to use this incomplete data set to train a single model with the following characteristics:

  1. As input, this model will accept data from 1 sample that is incomplete for at least one of any of the features.
  2. As output, the model will predict scores (and provide measures of certainty in regards to those predictions) for all missing values.

Thanks in advance for your insights and ideas!

$\endgroup$

2 Answers 2

1
$\begingroup$

If you're willing to specify a model for how all this data arises, then fitting a Bayesian model to the dataset is an option. Then you can draw missing values from the posterior predictive distribution and do not just get an average prediction, but also the uncertainty around it (by looking at the posterior predictive distribution).

This is called "multiple imputation". For several simple scenarios (e.g. you assume all values - at least after suitable transformations - follow a joint multivariate normal distribution) there are standard functions in most software packages to do this. For more complicated examples, you may have to hand craft this (which can be challenging for truly complex cases).

$\endgroup$
0
$\begingroup$

There are probably many ways of doing this.

I would turn to a k-nearest neighbours approach: use the provided features to determine the expected nearest neighbours, then set the unknown features to the mean of that feature among the neighbours. A corresponding measure of uncertainty would be the associated variance.

Using the same idea, and forgetting about your request of a single model, you could go further by training a predictor based on the neighbours only, in order to be able to capture local variations (especially for points which need to be extrapolated).

$\endgroup$
2
  • $\begingroup$ Thanks for the answer! Would you please elaborate on your second suggestion? I understand it in theory, but am unsure what predictor one might want to train based off of the neighbour data. Do you have any recommended predictor frameworks that could be used to build off of the nearest neighbour output? $\endgroup$
    – clebe
    Commented Sep 29, 2018 at 23:02
  • $\begingroup$ You could for instance use a weighted mean (depending on the distance of each neigbour), linear regression, or whatever simple predictor that works with a low number of samples. The idea is that the mean can be really bad sometimes, especially on the edges of your feature space. Picture it in 2 dimensions: if you have k-1 neighbours on one side, and the remaining one on the other side, you probably want to be closer to the last one. But this all depends on your data, in the end. $\endgroup$ Commented Sep 29, 2018 at 23:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.