预处理整个种群会导致数据泄漏吗?

数据挖掘 监督学习 预处理 数据泄露
2021-09-24 06:46:23

介绍

当我们的训练和测试集只是未知人群的样本时,我理解预处理步骤可能导致的数据泄漏问题。预处理参数应仅从训练集计算,然后我们只需将相同的程序应用于验证/测试集,因为这将是处理来自未知群体的任何其他样本的方式(例如,在生产阶段)。

问题

我们手头有全体人口的情况如何?我们可以从整个人口中计算预处理参数(缩放因子、编码等)吗?

额外的上下文

我们拥有整个人口,建模过程将取决于用户输入。训练集由用户输入定义,训练后的模型用于对总体进行分类。

2个回答

如果您有整个人口,则无需推理。因此,数据泄漏不是问题。您可以对数据进行任何转换,而不用担心它对预测的影响,因为没有预测步骤。

每当您使用来自测试集的一些输入来制作模型时,都会出现数据泄漏。例子:

  • 您根据用户的某些类别计算平均收入并将其添加为一项功能,每个用户的收入是一项附加功能。这是数据泄漏,因为您正在使用稍后将进行预测的数据点计算这些平均值。(在这种情况下,您应该仅使用训练数据和/或不包括我们的测试集的其他附加数据来计算这些平均值)
  • 您根据某个类别计算每个用户的平均收入。收入不是您输入变量的一部分,您从人口普查信息中获取这些平均值。这不是数据泄漏,因为您没有对用于构建这些平均值的相同数据进行预测。