0


机器学习中的标签泄漏介绍及其如何影响模型性能

您是否对完美或接近完美的模型表现不知所措?你的快乐被出卖了吗?

简而言之,当您要预测的信息直接或间接出现在训练数据集中时,就会发生标签泄漏或目标泄漏。它会导致模型夸大其泛化误差,并极大地提高了模型的性能,但模型对于任何实际应用都毫无用处。

数据泄漏如何发生

最简单的示例是使用标签本身训练模型。在实践中,在数据收集和准备过程中无意中引入了目标变量的间接表示。触发结果的特征和目标变量的直接结果是在数据挖掘过程中收集的,因此在进行探索性数据分析时应手动识别它们。

数据泄漏的主要指标是“太好了,不能成为现实”模型。由于该模型不是最佳模型,因此在预测期间最有可能表现不佳。

数据泄漏不仅可以通过训练特征作为标签的间接表示来实现。也可能是因为来自验证或测试数据的某些信息保留在训练数据中,或者使用了来自将来的历史记录。

标签泄漏问题的示例

通过此人关联银行账号的特征来预测是否会开设银行帐户

在客户流失预测问题中,事实证明,无论客户是否流失,称为“采访者”的功能都是最好的指示。模型表现不佳的原因是此“采访者”是仅在客户确认他们打算流失之后才分配调查人员。

如何应对标签泄漏

1、删除它们或添加噪音以引入可以平滑的随机性

2、使用交叉验证或确保使用验证集在看不见的实例上测试模型。

3、使用管道处理而不是缩放或变换整个数据集。当基于提供的整个数据集按比例缩小特征时,例如使用最小-最大缩放器,然后应用训练和测试分割,缩放的测试集还包含来自缩放的训练特征的信息,因为最小值和最小值 使用了整个数据集的最大值。因此,始终建议使用管道来防止标签泄漏。

4、根据保留数据测试模型并评估性能。就基础架构,时间和资源而言,这是最昂贵的方式,因为必须使用正确的方法再次执行整个过程。

总结

数据泄漏是最常见的一种错误和可能发生的特性工程,使用时间序列,数据集标签,并巧妙地通过验证信息训练集。重要的是机器学习模型仅仅是接触信息可用时的预测。因此,明智的做法是仔细挑选特性,在应用转换之前分割数据,避免在验证集上拟合转换,并使用管道处理。

对此感兴趣的同学可以查看本篇论文:

https://www.cs.umb.edu/~ding/history/470_670_fall_2011/papers/cs670_Tran_PreferredPaper_LeakingInDataMining.pdf

作者:Nabanita Roy

deephub翻译组

标签:

“机器学习中的标签泄漏介绍及其如何影响模型性能”的评论:

还没有评论