数据集中的缺失值插补

数据挖掘 机器学习 数据清理 k-nn 数据插补
2022-03-01 15:18:06

我有两个单独的文件用于测试和培训。

在训练数据中,我删除了包含太多缺失值的行。

但是,在测试数据中,我不能删除行,所以我选择使用 KNN 方法来估算缺失值。

我的问题是,使用 KNN 估算测试数据中的缺失值,仅考虑测试数据是否足够?如,仅测试数据中的邻居?

2个回答

作为一般经验法则,您应该避免在训练数据集和测试数据集之间做不同的事情。作为第二个一般经验法则,您很少希望使用 knn 进行缺失值插补。

在您的情况下处理缺失值的一种有效方法是使用可以处理缺失值的模型,例如树模型。(决策树、随机森林、xgboost ......)。

我同意前面的答案,您可以使用处理缺失值的模型。

但是,如果你被困在一个特定的模型上并且 NaN 没有被那个模式处理,你就不得不估算数据。kNN 可能不是估算数据的最佳方式……至少它不是一种常见的方式。而是使用简单的神经网络本身来预测缺失值。或者,基于类似群体的平均值可以更容易地做到这一点(例如参见https://www.kaggle.com/c/titanic/discussion/157929 -泰坦尼克号上的失踪时代 - 从基本到高级的观点很少高级策略(特定于泰坦尼克号场景)

如果您正在尝试 Kaggle 比赛,将训练和测试数据混合以估算值是一种公认​​的做法。但是,如果它是非竞赛相关的应用程序,我不建议您这样做,否则可能会泄漏