wwwjun 2020-09-25
您是否对优秀或接近优秀的模型表现不知所措? 你的快乐被出卖了吗?
简而言之,当您要预测的信息直接或间接出现在训练数据集中时,就会发生标签泄漏或目标泄漏。 它会导致模型夸大其泛化误差,并极大地提高了模型的性能,但模型对于任何实际应用都毫无用处。
数据泄漏如何发生
最简单的示例是使用标签本身训练模型。 在实践中,在数据收集和准备过程中无意中引入了目标变量的间接表示。 触发结果的特征和目标变量的直接结果是在数据挖掘过程中收集的,因此在进行探索性数据分析时应手动识别它们。
数据泄漏的主要指标是"太好了,不能成为现实"模型。 由于该模型不是优秀模型,因此在预测期间最有可能表现不佳。
数据泄漏不仅可以通过训练特征作为标签的间接表示来实现。 也可能是因为来自验证或测试数据的某些信息保留在训练数据中,或者使用了来自将来的历史记录。
标签泄漏问题的示例
通过此人关联银行账号的特征来预测是否会开设银行帐户
在客户流失预测问题中,事实证明,无论客户是否流失,称为"采访者"的功能都是最好的指示。 模型表现不佳的原因是此"采访者"是仅在客户确认他们打算流失之后才分配调查人员。
如何应对标签泄漏
1、删除它们或添加噪音以引入可以平滑的随机性
2、使用交叉验证或确保使用验证集在看不见的实例上测试模型。
3、使用管道处理而不是缩放或变换整个数据集。 当基于提供的整个数据集按比例缩小特征时,例如使用最小-最大缩放器,然后应用训练和测试分割,缩放的测试集还包含来自缩放的训练特征的信息,因为最小值和最小值 使用了整个数据集的最大值。 因此,始终建议使用管道来防止标签泄漏。
4、根据保留数据测试模型并评估性能。 就基础架构,时间和资源而言,这是最昂贵的方式,因为必须使用正确的方法再次执行整个过程。