Target Leakage 数据泄露

Posted zyyz1126

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Target Leakage 数据泄露相关的知识,希望对你有一定的参考价值。

Target Leakage:在准备数据的时候,或者数据采样的时候出了问题,误将与结果直接相关的feature纳入了数据集。

一般target leakage会导致数据在训练集上表现很好,但是当运用到实际上时,表现会很差。

举个例子,

Imagine you want to predict who will get sick with pneumonia. The top few rows of your raw data look like this:

是否得肺炎ageweightmale是否服用抗生素...
False 65 100 False False ...
False 72 130 True False ...
True 58 100 False True ...

第一列是否得肺炎 便是y,其他列为X.

很明显可以看出,是否得肺炎 和 是否服用抗生素 两者有着很强的因果关系,基本上没病的都不会去喝抗生素。这就是所谓的target leakage.

解决方法:

1.统计分析与目标相关的列;

2.如果你建立一个模型并发现它非常精确(比如大于98%以上),可能有一个数据泄漏问题;
3.在交叉验证折叠中使用原始没进过预处理的数据;
4.使用Pipelines(一个典型的机器学习过程从数据收集开始,要经历多个步骤,才能得到需要的输出。这非常类似于流水线式工作,即通常会包含源数据ETL(抽取、转化、加载),数据预处理,指标提取,模型训练与交叉验证,新数据预测等步骤)。比如: scikit-learn Pipelines;

5.使用Holdout Dataset。在使用模型之前,保留一个未使用过的的验证数据集作为对模型的最终健全性检查。

其实没有标准的解决方案可以普遍地防止target leakage,它需要的是对数据的深入了解。

-------------------------------------------------------------------------

这是一个kaggle上的练习,有空可以做一下。

-------------------------------------------------------------------------

以上是关于Target Leakage 数据泄露的主要内容,如果未能解决你的问题,请参考以下文章

java的内存泄露

kaggle Data Leakage

[NTUSTISC pwn LAB 7]Return to libc实验(puts泄露libc中gadget片段定位)

解决移动端报错:Unable to preventDefault inside passive event listener due to target being treated as……(代码片段

词汇表托福英语考研雅思

我的javascript片段返回“非法字符”