跳到主要内容

分布偏移下的模型评估

评估不是给模型贴一个永久分数,而是估计:在某个目标分布、阈值、流程和错误代价下,这套系统会怎样表现。

若部署分布为 Q(x,y)Q(x,y)、损失为 \ell,目标风险是

RQ(f)=E(x,y)Q[(f(x),y)].R_Q(f)=\mathbb{E}_{(x,y)\sim Q}[\ell(f(x),y)].

Test 平均损失只有在 test 样本近似来自目标 QQ、没有被开发过程消费、标签与损失定义正确时,才是该风险的估计。一个 iid test 的窄置信区间不包含未知未来 shift。

先写评估对象

system 模型 + 预处理 + 阈值 + 人工流程
unit 一次预测对应什么
population 结果要外推到谁/何时/何地
prediction_time 当时可见信息
outcome_horizon 标签观察窗口与成熟期
action 预测会触发什么
loss 假阳性、假阴性、延迟和弃权成本

如果动作会改变后续数据,静态 test 只评估上线前政策,不能直接预测反馈回路后的表现。

常见 shift

类型改变例子诊断边界
covariate shiftp(x)p(x)新设备、新地区、季节仅比较 feature 分布不证明 p(yx)p(y\mid x) 不变
label/prior shiftp(y)p(y)疾病/欺诈基率变化需要标签或额外假设
concept/conditional shiftp(yx)p(y\mid x)政策改变标签关系最难仅靠未标记输入发现
measurement shift记录过程传感器、编码、问卷改变可能看似真实行为变化
selection shift进入样本机制只标注被审核案件test 只代表被选择人群

这些分类可重叠。检测到 input drift 不等于性能必然下降;没检测到也不证明安全。

切分必须对应问题

想回答的问题设计主要限制
相同机制下的新独立样本随机 holdout/CV不覆盖时间、地区、实体 shift
新实体group holdoutgroup 数少时区间很宽
未来表现rolling/forward test只覆盖历史上已发生的变化
新机构/地区external validation一个外部点不能代表所有外部环境
模型选择后的无偏估计nested CV 或锁定 test计算高,仍依赖样本机制

反复查看 test、只发布最好 seed、根据外部 benchmark 修改系统,都会让其从 test 退化为 validation。

指标回答不同问题

分类

  • accuracy 受类别比例主导;
  • precision/recall 与阈值和 prevalence 有关;
  • ROC-AUC 衡量排序,不给出运营阈值;
  • PR-AUC 更关注正类,但 baseline 与正类比例相关;
  • log loss/Brier score 评估概率质量的不同方面;
  • calibration 比较预测概率与观察频率,且会随分布和样本量改变。

回归与排序

  • MAE 对大残差较不敏感,RMSE 更重罚尾部;
  • 相对/百分比误差在零或小分母附近可能失真;
  • quantile/pinball loss 对应条件分位数;
  • ranking metric 只描述排序协议,不等于下游收益。

指标应由行动和错误成本选择,不应因为 leaderboard 使用某指标就照搬。

示例:1% 欺诈率

一万个交易中有 100 个欺诈。永远预测“正常”的系统 accuracy 为 99%,但 recall 为 0,无法拦截任何欺诈。

假设模型在某阈值下标记 200 笔,其中 60 笔是真欺诈:

precision = 60 / 200 = 30%
recall = 60 / 100 = 60%

是否可用还取决于:200 次人工审核成本、漏掉 40 笔的损失、合法客户摩擦、标签延迟以及下月基率。把阈值调到 test 上最高收益后再报告同一收益,会高估泛化;阈值应在 validation 选择,并在时间后移 test 验证。

不确定性至少有三层

  1. 评估样本误差:有限 test 的 bootstrap 或解析区间;有 group/time 依赖时需按 cluster/block 重采样;
  2. 训练随机性:不同初始化、数据顺序和非确定 kernel;应重复 seed;
  3. 环境不确定性:未来政策、行为、传感器和人群变化;iid 区间通常不覆盖。

只报告均值±一个不明区间会混淆这些来源。还应给分子/分母、每切片样本量和失败运行。

切片、阈值与弃权

总体指标可能掩盖关键群体、设备、语言、时间或难度切片。切片应在看结果前由用途与风险确定;大量事后切片会产生选择性发现,需要校正或新数据确认。

在高后果场景中,可以设置弃权/转人工区域。Coverage 降低通常会提高剩余样本质量,但人类能力、队列容量和选择偏差也属于系统。模型置信度不等于正确概率;shift 下校准和 uncertainty 可能一起退化。

基线、消融与压力测试

  • 常数、季节性、业务规则和简单模型;
  • 去掉可疑 feature,检查性能是否由捷径支撑;
  • 时间、噪声、缺失、长度、语言或设备压力;
  • 新机构/新 cohort;
  • 输入无效、空值、极端值和拒绝路径;
  • 训练预算、参数量和数据量控制后的架构消融。

一个复杂模型只胜过弱基线,不能证明复杂度必要。

Evaluation Card

intended_decision: ...
target_population_and_period: ...
prediction_time_and_horizon: ...
data_version_and_split: ...
baselines: [...]
selection_metric: ...
final_metrics_and_thresholds: ...
uncertainty: sample, seed, environment
slices_and_minimum_counts: [...]
leakage_and_contamination_checks: [...]
resource_and_latency_budget: ...
known_failures_and_out_of_scope: [...]
monitoring_and_revalidation_trigger: ...

证据边界与偏差

公共 benchmark 便于可比,但容易过拟合固定任务、语言、硬件和成功指标;内部 test 更接近用途,却可能样本小、缺少外部审查。两者应互补。Model Cards 与 NIST AI RMF 提供报告/风险问题,不认证某模型安全或公平。

本文偏重监督预测。因果效果、在线 A/B、强化学习策略、生成式开放输出和人机协作需要不同 estimand 与实验设计,不能直接套一个 accuracy 表。