对于缺失值插补,为什么不使用检验数据的拟合来转换检验数据



对于python sklearn中的缺失值插补,我理解为什么我们不能使用验证/测试数据来拟合训练数据 - 由于泄漏。

但是,要插补测试集中的缺失值,为什么不在测试集上使用拟合推算器,为什么要使用训练集中的插补器?如果我们对测试数据使用拟合并对测试数据进行转换,则根本不使用测试进行训练。

假设我有一个简单的模型,试图使用父母的工资和线性回归来预测学生的每月支出。在火车组中,父母的工资都在100k-250k的范围内。所以,如果我使用平均估算器,我可能会得到大约 150k 的父母工资。因此,我将使用它来填充丢失的火车数据。 但是,如果在我的测试中,如果父母的工资都在 60k -100k 的范围内,则平均值将在 75k 左右,我可以用它来填充测试集中的缺失值,为什么要使用基于 150k 的训练集值。
在这里,如果我适合测试集,我只是使用它来填充测试集上的缺失值,而不是将其用于训练数据处理中的任何内容,那么为什么不这样做呢?

你绝对不应该在测试数据上拟合推算器。您在此处应用的推理在机器学习工作流程方面存在缺陷。

我想你想说的是,你在测试集中的观察结果与训练集非常不同,因此你的缺失值应该根据其他更相似的测试值来插补。这可能意味着您一开始就没有随机拆分训练和测试样本......这确实是监督学习的先决条件。

你的模型一旦经过训练,很可能会用于现实世界的预测......例如预测学生John Doe的每月费用。如果约翰·多伊缺少值怎么办?那么很明显,你的估算器应该取训练集的值(这就是训练集的目的)。通过使用测试集评估模型,您希望评估模型预测新结果(如 John Doe)的能力,因此您也应该在测试阶段模拟此过程。

最新更新