我正在解决一个机器学习问题陈述,其中数据集中有大约 40k 条记录。问题中给出了一个因变量(有很多自变量)。但是因变量中有一些 2k 记录有缺失值。- 我该如何解决这个问题?我应该排除这些记录吗?- 估算缺失值是解决这个问题的好方法吗?由于因变量取决于许多变量,这不会给我不准确的值吗?我不知道。
有人可以帮忙吗?
我正在解决一个机器学习问题陈述,其中数据集中有大约 40k 条记录。问题中给出了一个因变量(有很多自变量)。但是因变量中有一些 2k 记录有缺失值。- 我该如何解决这个问题?我应该排除这些记录吗?- 估算缺失值是解决这个问题的好方法吗?由于因变量取决于许多变量,这不会给我不准确的值吗?我不知道。
有人可以帮忙吗?
你问的问题是经验问题。任何人都可以给出的唯一答案是尝试所有这些,看看哪个效果更好。
你有三个选择:
估算数据
丢弃数据
使用可以处理缺失数据的分类器,例如xgboost. 看到这个答案。xgboost是一个强大的分类器。因此,如果您不是非常努力地调整性能,xgboost 是获得良好 v0 的好方法。
其他几点:
缺失值的模式很重要,会影响算法的选择。
如果您的数据集有噪声,则插补可能只会放大噪声。如果您有能力删除这 2k 行,请尝试这样做,或者在使用和不使用该数据的情况下进行训练,看看组合是否表现更好。
关于软件,有很多选择:
Scikit Learn 有一些插补函数
MICE, Multiple Imputation through Chained Equations 适用于随机数据。在 fancyimpute 和 statsmodels 中可用。
如果你搜索,你会发现很多资源