我们是否需要对测试和训练数据集进行预处理步骤?

数据挖掘 数据集 数据清理
2022-02-24 02:19:02

我见过很多人在他们的测试和训练数据集中处理丢失或不一致的数据。有时他们只处理训练数据集,有时他们合并训练和测试数据集并处理缺失的参数。

那么,最好的方法是什么,这两者有什么区别?是否有任何方法会影响预测模型,或者只是可选的或良好的做法来处理两个数据集中的缺失数据。

1个回答

这里有几件事情你需要小心。

在预处理数据或执行可应用于整个数据集(训练和验证)的数据增强时,您可以做某些事情。主要思想是不允许模型从测试数据中获得洞察力。


时间序列示例

缺失数据可以通过多种方式进行管理,例如简单的插补(填补空白)。这在时间序列数据中很常见。在您的训练数据中,您可以使用前一个值、后一个值、数据的平均值或移动平均值之类的东西来填补空白。您必须小心的地方是违反时间信息流。例如,在您的测试数据中,您不应该使用查看空时隙前面的数据点的方法来填补空白。这是因为,在那个时候,你将无法做同样的事情,因为你不应该知道未来的价值。

图像数据示例

取而代之的是图像数据,有数据预处理步骤,例如标准化。这意味着只需将图像像素值缩放到一个范围[1,1]. 为此,您必须计算总体均值和方差,然后使用它们来执行缩放。在计算这两个统计数据时,重要的是不要包括测试数据。原因是您会泄露用于训练模型的数据集的信息。从技术上讲,您知道不应该做的事情;在这种情况下,关于目标分布的均值和方差的线索。


人们可能还会考虑“缺失数据”以包括不平衡的数据集;即有些情况您知道,但只是不经常出现在您的数据集中。有一些技巧可以帮助解决这个问题,例如分层抽样或交叉验证。当然,最佳解决方案是收集更能代表手头问题的数据集。