7、机器学习中的数据泄露(Data Leakage)

找到并修复这个以微妙的方式破坏你的模型的问题。

数据泄露这个概念在kaggle算法竞赛中经常被提到,这个不同于我们通常说的生活中隐私数据暴露,而是在竞赛中经常出现某支队伍靠着对极个别feature的充分利用,立即将对手超越,成功霸占冠军位置,而且与第二名的差距远超第二名与第十名的差距,那么很有可能是出现了数据泄露(Data Leakage)这些feature却不是在因果关系上顺利解释预测值的‘因’,反而是预测值的‘果’。

在本教程中,您将了解什么是数据泄漏以及如何防止数据泄漏。如果你不知道如何防止它,泄漏将经常出现,它将破坏您的模型在微妙和危险的方式。因此,对于实践数据科学家来说,这是最重要的概念之一。

本课程所需数据集夸克网盘下载链接:https://pan.quark.cn/s/9b4e9a1246b2 提取码:uDzP

1、简介

当训练数据包含目标信息时,会发生数据泄漏(或泄漏) Data leakage (or leakage) ,但是当模型用于预测时,类似的数据将不可用。这将导致在训练集(甚至可能是验证数据)上获得高性能,但是该模型在生产中的性能将很差。

换句话说,泄漏会导致模型看起来很精确,直到您开始使用该模型做出决策,然后该模型变得非常不精确。

2、两种主要泄漏类型

有两种主要类型的泄漏: target leakage** 和train-test contamination.

2.1目标泄漏

当预测器包含在进行预测时不可用的数据时,就会发生目标泄漏。重要的是要考虑目标泄漏的时间或数据变得可用的时间顺序,而不仅仅是一个特征是否有助于做出良好的预测。

举个例子会有帮助的。假设你想预测谁会得肺炎。原始数据的前几行如下:

got_pneumonia age weight male took_antibiotic_medicine
False 65 100 False False
False 72 130 True False
True 58 100 False True

人们在患肺炎后服用抗生素药物是为了恢复健康。

原始数据显示这些列之间有很强的关系,但是在确定got_pneumonia的值之后,took_antibiotic_medicine经常被更改。

这是目标泄漏。该模型将看到,任何对took_tic_medicine值为False的人都没有患肺炎。

由于验证数据与培训数据来自同一个源,因此模式将在验证中重复,并且模型将具有良好的验证(或交叉验证)得分。

但这个模型在随后的实际应用中会非常不准确,因为即使是肺炎患者,在我们需要对他们未来的健康状况做出预测时,他们也不会使用抗生素。

为了防止这种类型的数据泄漏,应该排除在实现目标值之后更新(或创建)的任何变量。
在这里插入图片描述

2.2Train-Test 污染

当我们不小心将训练数据与验证数据区分开来时,就会发生另一种类

  • 27
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI算法蒋同学

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值