• 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上的练习,有空可以做一下。

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

  • 相关阅读:
    强类型DataSet (2011-12-30 23:16:59)转载▼ 标签: 杂谈 分类: Asp.Net练习笔记 http://blog.sina.com.cn/s/blog_9d90c4140101214w.html
    整合91平台接入的ANE
    keychain不能导出p12证书的解决方法
    制作IOS ANE的基本流程
    SVN 提交失败 非LF行结束符
    ANE打包工具使用视频教程 -- 梦宇技术 @极客学院
    RSA算法原理
    IOS 之 NSBundle 使用
    iOS编程——Objective-C KVO/KVC机制
    视图横竖屏控制技巧
  • 原文地址:https://www.cnblogs.com/zyyz1126/p/13181173.html
Copyright © 2020-2023  润新知