🎯核心定义
数据泄漏指训练过程用到了验证/测试阶段(线上)拿不到的信息, 分三类: ① 目标泄漏 (target leakage): 特征里直接或间接包含目标信息——如把“是否已违约”当特征预测违约、把退款金额当特征预测退款; ② 时序泄漏 (temporal leakage): 用未来信息预测过去——如预测明天股价, 特征却含明天的开盘价; ③ 管线泄漏 (pipeline leakage): 预处理在 CV 切分之前对整个数据集 fit——标准化、缺失值填充、特征选择、目标编码的统计量都“见过”验证折。后果: 训练与 CV 分数双高、特征重要性异常、上线后性能断崖。三条铁律: 标准化/填充/编码必须在每折 CV 内部完成(只 fit 训练折、transform 验证折); 任何由数据衍生的统计量(均值、编码、选择出的特征)只用训练折计算; 时序数据先按时间切分再处理。
💡使用场景
所有建模流程的通用风险, 面试常问“标准化在 CV 内部还是外部”“OOF 编码防什么泄漏”“怎么发现泄漏”; 竞赛与工业风控中的经典失分点。
⚡解决的核心痛点
“看似完美”的高分模型其实没有学到泛化规律, 一旦上线立刻失效; 把预处理封装进 CV 流程(如 sklearn Pipeline 在每折内 fit/transform)能保证验证分数与线上一致——OOF 编码、CV 内标准化都是为了消灭这“最后一个看不见的泄漏口”, 让离线评估成为线上表现的诚实代理。