跳到主要内容

分布偏移下的模型评估

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

若部署分布为 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。

被测模型在重新收集的 CIFAR-10 和 ImageNet 测试集上的准确率低于原测试集。查看清晰大图

每个蓝点代表一个模型:横轴是原测试集准确率,纵轴是重新收集的测试集准确率。点落在虚线对角线下方,就表示换了测试数据后准确率下降;红色拟合线仍显示两组分数有很强的关联。左右两图分别对应 CIFAR-10 和 ImageNet,误差线为 95% Clopper–Pearson 区间。模型的大致排名能够延续,绝对表现却仍可能整体下降。

先写评估对象​

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

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

常见 shift​

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

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

严格的协变量偏移模型假定 P(x)P(x) 变化而 P(y∣x)P(y\mid x) 不变;纯标签偏移则假定 P(y)P(y) 变化而 P(x∣y)P(x\mid y) 不变。这些是建模假设,不能仅凭输入直方图得出。在协变量偏移假设下,用 Q(x)/P(x)Q(x)/P(x) 对源域误差加权来估计目标风险,还要求源域覆盖目标域的支持集;过大的权重也会使估计噪声增大。重新加权无法为从未观测过的特征区域创造证据。

切分必须对应问题​

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

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

指标回答不同问题​

分类​

  • accuracy 受类别比例主导;
  • precision 和 recall 都随阈值变化;若只是先验比例变化,且各类别内的得分分布保持不变,则 recall 不变,precision 随基率变化;
  • 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%

若没有标记任何样本,precision 的分母为零,因而无定义;若测试切片没有正类,recall 无定义。应报告这些情形,不要默认当成预测成功。

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

这里的假阳性率为 140/9900≈1.414%140/9900\approx1.414\%。设基率为 π\pi、真阳性率为 tt、假阳性率为 ff,则

precision⁡=πtπt+(1−π)f,recall⁡=t.\operatorname{precision}=\frac{\pi t}{\pi t+(1-\pi)f},\qquad \operatorname{recall}=t.

若基率升至 5%,而这两个条件比率保持不变,预期 precision 约为 69.1%,recall 仍为 60%。这是先验偏移下的计算,并非预测条件比率一定不变。定义见 scikit-learn 指标文档。

要确定实际阈值,假设校准后的 pp 是欺诈概率,误报成本为 CFP>0C_{FP}>0,漏报成本为 CFN>0C_{FN}>0,正确决策成本为零。应在 CFP(1−p)<CFNpC_{FP}(1-p)<C_{FN}p 时标记,即 p>CFP/(CFP+CFN)p>C_{FP}/(C_{FP}+C_{FN})。容量限制或非零审核成本会改变这个决策问题;单个 ROC-AUC 值不能给出阈值。

不确定性至少有三层​

  1. 评估样本误差:解析区间或 bootstrap 区间;在相同案例上比较模型要保留配对,有群组或时间依赖时需按群组或时间块重采样;
  2. 训练随机性:不同初始化、数据顺序和非确定 kernel;应重复 seed;
  3. 环境不确定性:未来政策、行为、传感器和人群变化;iid 区间通常不覆盖。

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

切片、阈值与弃权​

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

在错误后果严重的场景中,可以设置模型弃权、转交人工的区域。评估这一安排时,也要考虑人工处理能力、队列容量和选择偏差。模型置信度不等于正确概率;分布偏移时,概率校准和不确定性估计可能同时失准。

基线、消融与压力测试​

  • 常数、季节性、业务规则和简单模型;
  • 去掉可疑 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 表。

探索关联打开关联网络