码迷,mamicode.com
首页 > 其他好文 > 详细

Target Leakage 数据泄露

时间:2020-06-23 11:38:47      阅读:356      评论:0      收藏:0      [点我收藏+]

标签:tab   head   targe   包含   ant   undefined   数据集   机器学习   ima   

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 数据泄露

标签:tab   head   targe   包含   ant   undefined   数据集   机器学习   ima   

原文地址:https://www.cnblogs.com/zyyz1126/p/13181173.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!