数据泄露和数据处理不一致是两个机器学习容易被忽视的错误 - jeande_d


机器学习项目的失败可能由多种因素造成,但两个常见的被忽视的错误做法是数据泄漏和数据处理不一致。这里有3种方法可以避免它们:

  • 1. 做探索性数据分析时不要使用测试集。只使用训练集。通过不接触测试集,您可以避免数据泄漏。请记住,如果您将测试数据泄露给模型,它就不能很好地推广到新数据。

要将上述内容付诸实践,请先将数据拆分为训练和测试。
  • 2. 最初评估模型时,不要在测试数据上评估。您的模型一开始很可能表现不佳,因此不要泄露测试数据,而是在训练集上评估模型,直到它表现良好为止。
  • 3. 为避免数据处理不一致,在训练集和测试集之间使用相同的数据处理函数。例如。如果你对训练集中的数值特征进行了归一化,那么你也应该对测试集中的相同特征进行归一化。

如果在对模型输入数据进行规范化的同时对测试集进行标准化,则这是完全不匹配的,不会产生语法错误,但会产生较差的结果。其他类型的特征也必须发生同样的事情。
 
例子:
如果您使用一种热编码(hot encoding)技术来处理分类特征,您也应该在相同特征的测试集中使用它。避免不一致数据处理的可靠方法是使用可以在不同数据集之间重用的函数或使用管道。好消息是,我们大部分日常 ML 工具都支持构建数据处理(和建模)管道。