数据泄露
数据泄漏意味着用于训练机器学习算法的数据包括您试图预测的信息。这可能会导致模型在训练中比在现实世界中表现得更好,从而对模型的表现产生错误的保证。了解如何识别和防止数据泄漏,以获得可靠的预测。
数据泄漏有两种形式:
-
当训练集中的一个或多个特性可用于导出您试图预测的目标变量时。例如,您的目标是一个 Sales 字段,而您的一个特性是从 Sales 中计算的 Sales Tax 字段。
-
当训练集中的一个或多个特性包括在预测时未知的信息时。
在下表中,Stage 列是我们要预测的 Stage (Binary) 列的重复列。通过将 Stage 包含在训练数据集中,我们将为预期结果提供答案,从而为我们的模型带来高分。
带有“漏列”Stage 的表,其中包含有关目标列 Stage (Binary) 的信息
![单击以查看完整尺寸 带有样本数据的表格。](../../Resources/Images/AutomatedMachineLearning/data-leakage-table.png)
识别数据泄漏
要识别数据泄漏,请考虑诸如“您在进行预测时是否具有相同的记录信息?”或“30 天后记录是否相同?”之类的问题。请记住,训练数据集中的所有数据都必须与业务问题中的时间限制相关。
当您训练了一个模型后,可以在模型度量中查找以下线索。
高分:分数真的高吗?例如,F1 成绩是否超过 85 分?
特性重要性:一个特性是否比其他特性重要得多?
保持分数:保持分数是否远低于交叉验证分数?
下表显示了可能导致数据泄漏的常见特性示例。
业务用例 | 目标 | 潜在泄漏特性 |
---|---|---|
销售机会会结束吗? | 关闭(是或否) | 阶段、结束日期、发票详细信息、支付的佣金 |
预测未来交易金额 | 下一笔交易的金额 | 税费、订单详情 |
潜在客户会转化为商机吗? | 转换(是或否) | 商机详细信息,转换日期 |
客户会流失吗? | 流失(是或否) | 客户流失原因、流失日期、静态客户任期、客户温度 |
员工是否自愿离职? | 停职(是或否) | 离职面试详情、任期日期、辞职信信息 |
防止数据泄漏
防止数据泄漏的最佳方法是使用结构化框架来获得良好的业务问题和数据集。有关详细信息,请参阅定义机器学习问题。