某风控模型迭代,离线AUC从0.81提到0.85,上线后逾期率反而上升0.4个百分点。6个陷阱里踩了3个:1)训练集和测试集按时间随机切分,未来数据泄漏到过去;2)正负样本比1:50,AUC对不平衡不敏感;3)评估用的是全量用户,线上只对高风险人群打分,分布不一致。改按时间切分、加PR-AUC评估、只在目标人群上验证后,新模型AUC回落到0.83,但线上逾期率降了0.6个百分点。
AUC的局限性要说清楚。它衡量的是随机取一个正样本和一个负样本,正样本得分更高的概率。样本极度不平衡时,AUC可能很高但实际业务很差。举例:1000个样本里20个正例,模型把所有样本都打0.1分,只把20个正例打0.11分,AUC接近1.0。但若线上阈值设在0.5,一个都抓不到。这时候要看KS值、召回率、精确率在具体阈值下的表现,而不是只看AUC。
离线评估和线上评估的目标函数经常不一致。离线用logloss,线上看GMV。某电商排序模型离线logloss降了3%,线上人均成交额却跌了2%。原因是模型更准地预测了点击,把低价高频商品排前面,高价低频商品被压下去,客单价从95元掉到81元。后来在损失函数里加入客单价加权,离线logloss只降1.2%,线上GMV涨了5.4%。评估指标要贴着业务目标设计。
校准度容易被忽略。某信用评分模型区分度不错,AUC 0.79,但预测违约率5%的人群实际违约率12%。模型排序对、绝对值错,导致定价策略失误。校准曲线显示高分段系统性低估。修正方法有保序回归和Platt缩放,修正后预测5%的人群实际违约率6.8%,接近可接受范围。排序模型可以不校准,但涉及金额、风险定价时必须校准。
评估集要防止污染。某团队用3月数据训练、4月数据测试,效果很好。上线后发现4月测试集里的用户有30%在3月训练集出现过,属于同一批活跃用户。换成全新用户测试,AUC从0.85掉到0.76。评估集应该和训练集在用户维度、时间维度都尽量不重叠。常见做法是按用户哈希分桶,8成训练2成测试,测试用户不出现在训练集。
线上评估要看长期指标。某推荐模型上线首周人均使用时长涨8%,团队庆祝。第4周回落到基线以下,因为推荐内容同质化,用户新鲜感耗尽。短期指标容易被新奇效应放大,评估周期建议不少于2周,同时看次周留存、7日回访等滞后指标。某内容平台的做法是实验跑满14天,主指标看人均时长,护栏指标看次日留存和举报率,三者同时达标才全量。