数据泄漏指训练时用到了预测时拿不到的信息,导致离线评估虚高、上线效果暴跌。它隐蔽性强,往往在模型上线后才暴露,是模型评估中最需要警惕的问题之一。
常见泄漏是时间穿越。用未来数据计算用户历史统计特征,或随机划分时间序列数据,都会让模型提前看到答案。正确做法是按时间切分,并确保特征只使用预测时刻之前的信息。
另一种泄漏来自预处理顺序。在划分数据集之前做归一化、填充缺失值或特征选择,会让验证集信息渗入训练过程。这些步骤应在训练集上拟合,再应用到验证集和测试集。
目标泄漏也很常见。某个特征在业务上是结果而非原因,比如用退款标记预测欺诈,而退款恰恰发生在欺诈确认之后。这类特征上线时不可用,必须剔除。
防范泄漏要靠流程审查:画特征时间线,确认每个特征的可用时点;做时间外验证;对比线上线下指标差异。发现离线远高于线上时,首先排查泄漏。