有时可以接受数据泄漏吗?

数据挖掘 预处理 卡格尔 数据插补 数据泄露
2022-02-07 10:57:25

我最近开始使用 kaggle,我偶然发现了一些我认为确实是数据泄漏的做法示例。他们中的许多人是由在平台上很成熟的人完成的,我可以从他们的笔记本上看出,他们知道自己在做什么。

作为一些例子,我看到有人在任何训练测试拆分之前修复了整个数据集的偏度。作为另一个,我看到很多人不仅根据整个数据集估算缺失数据,而且还考虑了观察结果的标签。因此,他们为一类计算了一个值,而为第二类计算了另一个值。为什么?这不是数据泄露吗?难道不应该避免这样的做法吗?我在这里错过了什么吗?

我发现了这个问题,但我认为它不适用于我写的案例,因为所有笔记本的最终目标是创建预测模型。

编辑:

我意识到在修复偏度时,对数转换可以很好地应用于整个数据集,但在我所谈论的示例中并非如此。应用的变换是 box-cox。

插补示例中的具体转换都是用特征相对于类标签的方法来填充缺失值。

1个回答

如果您有整个人口并且不想预测任何事情,如您提供的问题链接中所述,那么可以使用整个人口进行预处理,因为它会在训练期间提供更好的结果(这是我们唯一的目标)。

但是,如果您没有全部人口并且想要进行预测,那么最好保持测试集不变,直到您确定在火车上构建的模型和有效集是您可以构建的最佳模型与您拥有的信息。