返回 经典机器学习 思维导图
中文·English
📊 经典机器学习ID: data-leakage

数据泄漏

Data Leakage
🎯核心定义
数据泄漏指训练过程用到了验证/测试阶段(线上)拿不到的信息, 分三类: ① 目标泄漏 (target leakage): 特征里直接或间接包含目标信息——如把“是否已违约”当特征预测违约、把退款金额当特征预测退款; ② 时序泄漏 (temporal leakage): 用未来信息预测过去——如预测明天股价, 特征却含明天的开盘价; ③ 管线泄漏 (pipeline leakage): 预处理在 CV 切分之前对整个数据集 fit——标准化、缺失值填充、特征选择、目标编码的统计量都“见过”验证折。后果: 训练与 CV 分数双高、特征重要性异常、上线后性能断崖。三条铁律: 标准化/填充/编码必须在每折 CV 内部完成(只 fit 训练折、transform 验证折); 任何由数据衍生的统计量(均值、编码、选择出的特征)只用训练折计算; 时序数据先按时间切分再处理。
💡使用场景
所有建模流程的通用风险, 面试常问“标准化在 CV 内部还是外部”“OOF 编码防什么泄漏”“怎么发现泄漏”; 竞赛与工业风控中的经典失分点。
解决的核心痛点
“看似完美”的高分模型其实没有学到泛化规律, 一旦上线立刻失效; 把预处理封装进 CV 流程(如 sklearn Pipeline 在每折内 fit/transform)能保证验证分数与线上一致——OOF 编码、CV 内标准化都是为了消灭这“最后一个看不见的泄漏口”, 让离线评估成为线上表现的诚实代理。
🎯5 个高频面试考点 (Exam Points)
1
三类泄漏(目标/时序/管线)各举一个具体例子, 为什么它们都会让 CV 分数虚高?
2
标准化为什么必须在 CV 内部做(先 split 再 fit scaler)? 先 fit 全量再 split 会发生什么?
3
目标编码/类别均值统计如何泄漏? OOF 编码的具体步骤是防哪种泄漏?
4
如何检测泄漏(训练误差极低、CV 远低于训练、特征重要性异常、AUC 接近 1)?
5
时序数据中“未来信息”有哪些表现形式? 滞后特征/滚动统计做错了怎么泄漏?
📖 关联深度指南:📄 ml-math-and-eval-metrics
更新于 2026-08-12
🎯
检验攻克程度:针对「数据泄漏」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题
上一个知识点目标编码 Target Encoding下一个知识点可解释性 SHAP 与 LIME

🔗 更多 经典机器学习 知识点卡片

AdaBoost 算法手推Bagging 与随机森林HMM 参数学习 Baum-WelchGBDT 负梯度拟合