写点什么

什么是数据泄露

  • 2022 年 7 月 07 日
  • 本文字数:779 字

    阅读完需:约 3 分钟

什么是数据泄露

这里和大家说一个概念:data leakage(数据泄露)。这里数据泄露并不指的是隐私数据的泄露,而是特指机器学习中数据(训练数据和验证数据)存在异常情况。


1.什么是 data leakage


Kaggle 比赛会有些参赛队员因为找个某到魔性特征(magic feature)而获得冠军,magic feature 的存在可能就预示参赛数据存在 data leakage。


data leakage 的外在表现: 你训练的模型的准确率异常的好,例如达到 100%。但是实际线上预测的效果却很差。所以当你的模型表现超出你的预期的时候,不要高兴的太早,请认真分析下你的数据


data leakage 的分类:

  • 预测 data leakage 

  •  数据验证 data leakage


2. 预测 data leakage


模型预测是构建一个因到果的映射过程,这种 leakage 一般发生在模型的数据使用了由【果】发生后产生的一些特征,这些特征和【果】有非常强的相关,预测出来的模型就会变成有【果】到【果】的映射。例如,我们要预测【是否是糖尿病患者】这个【果】,肥胖程度、体力活动程度、饮食结构、病毒感染等可能都是正常的【因】。但是如果你用了【是否打过胰岛素】这个作为【因】,就会出现这种 leakage, 因为糖尿病患者确诊后都会去打胰岛素,存在倒果为因的现象。在模型部署的时候你会发现这些特征你根本获取不到。


3.数据验证 data leakage


这种 leakage 一般是由于在拆分训练集和测试(验证)集存在不当处理导致的


例如你在做了预处理操作(如归一化,缺失值补充等)之后再拆分数据,这个时候训练集和验证集就可能存在某种关联,验证集一定程度上就缺失完全独立的假设,训练出来的模型可能就会在验证集有很好的分数,但是线上部署则不然。


4.如何避免 data leakage


如果你的模型的性能出奇的好,停下来分析下数据看看是不是存在 data leakage

  • 仔细分析下那些和预测目标强相关的特征

  • 尽量保证验证集和模型训练的训练的独立性,特别是交叉验证的时候。


参考:https://www.kaggle.com/dansbecker/data-leakage





发布于: 刚刚阅读数: 3
用户头像

公众号:人工智能微客(weker) 2019.11.21 加入

人工智能微客(weker)长期跟踪和分享人工智能前沿技术、应用、领域知识,不定期的发布相关产品和应用,欢迎关注和转发

评论

发布
暂无评论
什么是数据泄露_机器学习_AIWeker-人工智能微客_InfoQ写作社区