天天看点

数据泄露-揭秘机器学习模型如何作弊

什么是数据泄露?​

您是否对变现完美的模型表现困惑?你是否因此欣喜若狂?

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

数据泄漏如何发生

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

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

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

数据泄露是一个专用名词,表示有入模变量和target目标变量作用极其相似,这样会让模型提前知道预测结果,发生作弊,模型表现接近完美,如下图。

数据泄露-揭秘机器学习模型如何作弊

如果用通俗易懂方法阐述,数据泄露变量就像一个时空机,让模型提前看到未来。这有点像科幻电影。虽然数据泄漏很酷,却让模型作弊,提前知道了预测结果。

数据泄露-揭秘机器学习模型如何作弊

查找数据泄露方法​

我们变量筛选环节需要查找是否存在数据泄露变量。

方法1,变量相关性检验​

查找方法很多,最好方法是看变量相关性。数据泄漏变量和target目标变量相关性会接近1

数据泄露-揭秘机器学习模型如何作弊

方法2.模型法

第二种方法是模型法,通过变量重要性来观察数据泄漏变量。如下图lightgbm在数据泄漏观察中效果不如catboost。lightgbm变量重要性排序中,每个变量权重都会考虑相对平衡。catboost变量重要性会突出重要变量,这样更容易找出数据泄漏变量。

数据泄露-揭秘机器学习模型如何作弊
数据泄露-揭秘机器学习模型如何作弊

我方​​《python风控建模实战lendingClub》​​教程中重点阐述了catboost算法细节运用,有兴趣朋友可前往了解。

总结