想象你是市气象台的台长。每天早上,气象主播都会对着镜头说:“今日降水概率 70%”。这句话听起来很有把握,但一年下来,你忍不住翻出 365 天的气象记录,想验证一件事:所有预报“70% 降水概率”的日子,实际真的下雨的比例,有没有接近 70%?如果只有三成日子下雨,那这位预报员就是在“虚张声势”——他报的数字根本不可信。这个朴素的道理,正是机器学习中模型校准度的核心:模型输出的“把握程度”,必须与实际发生的频率严格对账。 风控模型给客户打 0.7 的违约概率、医疗模型给病人 0.9 的患病概率、广告模型预估 0.6 的点击率——这些数字如果只是“听起来专业”,却和真实世界对不上账,就会造成定价失真、误诊漏诊、预算浪费。本文将带你像质检员审计气象台一样,用 ECE(期望校准误差)和 Brier Score 两把标尺,系统量化模型概率的可靠性,监控校准漂移,并在模型“变飘”时重新调校它。
学会校准度监控,你就能在产品上线后持续回答“模型给出的概率是否仍然可信”这个关键问题——这是风控、医疗、广告等概率驱动型 AI 系统中,可观测性与可靠性工程的核心技能。
目录
可视化演示
本节配有交互动效(进入视口后自动加载,约 3KB)。
校准度基础——概率的“言而有信”
凌晨 6 点,预报员自信地说:“今天降水概率 70%。”这句话好不好,不取决于你当天信没信,而取决于一整年的统计账:把所有预报 70% 的日子归拢起来,实际下雨的比例是否逼近 70%。如果确实有七成日子下雨,这位预报员就做到了“言而有信”;如果只有四成,他就是在吹牛。机器学习模型的概率输出,同样需要接受这样的“对账”。
这个“对账”和常见的准确率完全是两码事。准确率只关心模型“选没选对”——就像只看预报员说“会下雨”后当天到底下没下;而校准关心的是“把握程度是否和真实频率匹配”——就像验证他说"70%"时,是否真的接近七成会下。一个模型的准确率可能是 95%,但它给出的 0.95 高概率背后,真实发生频率或许只有 0.7,这就是未校准。
数学上,校准要求模型输出的概率值等于真实条件下的正例比例:
与校准相对的一个重要概念是锐度。校准回答“说得准不准”,锐度回答“分得开不开”——就像一位预报员能否果断区分明天会下雨还是晴天。校准差是“自信与结果错位”(过自信或欠自信),锐度差是“无论怎么说都分不清结果”。两者相互独立:模型可以很准但很“怂”(永远报 50%),也可以很有区分度但整体虚高。真正的优秀预报员,既要有诚信(校准好),也要有判断力(锐度高)。
- 预测概率条件$f(X)=p$ 表示模型对特征 $X$ 给出的预测概率恰好是 $p$。实际中“恰好等于”的样本很少,通常取 $p$ 附近的一个小区间来统计。
- 条件期望$\mathbb{E}[Y \mid f(X)=p]$ 表示在这些样本中真实标签 $Y=1$ 的经验平均比例,也就是实际正例率。
- 相等即校准当条件期望恒等于 $p$ 时,模型的“概率标尺”与真实世界的比例刻度完全对齐,称为完美校准。
校准曲线分析——把承诺晒在阳光下
气象台做季度审计时,会把一年 365 天的预报记录摊开,按预报概率分成 10 个抽屉:0~10%、10~20%……90~100%。每个抽屉里,统计两列数字——抽屉内所有预报概率的平均值,以及这些天里实际下雨的比例。然后画一张散点图:横轴是平均预报概率,纵轴是实际下雨比例。若散点紧贴 45 度对角线,说明预报员表里如一;若散点整体在对角线下方,则说明预报言过其实。
机器学习中这张图叫可靠性图(reliability diagram),也叫校准曲线。做法完全一样:把模型对一批样本的预测概率按大小分箱,然后统计每箱内实际正样本占比。每个箱的实际频率计算如下:
在可靠性图上,把每个箱的平均预测概率和实际频率描成散点。理想情况下,所有点都压在对角线上。若点明显低于对角线,说明模型过自信——它说 80%,现实只有 60%;若点明显高于对角线,则是欠自信——它说 60%,现实却有 80%。这条对角线就是“理想校准”的标杆。
解读曲线时要留意样本分布。有些概率区间样本特别少,比如预测概率 0.9~0.95 的箱里只有十几个样本,那箱的实际频率估计就会剧烈抖动,看起来“偏离”可能只是统计噪声。因此画图的同时,最好把每箱样本量也标注出来,为后面计算 ECE 时的加权策略做铺垫。
- 分箱定义把预测概率区间 $[0,1]$ 切成 $M$ 个小区间,第 $m$ 个箱记为 $B_m$。
- 箱容量$n_m = |B_m|$ 表示落入第 m 个箱的样本数量,是后面加权的基础。
- 正例指示函数$\mathbb{I}(y_i=1)$ 在样本被预测为正例时为 1,否则为 0,用来数“实际兑现”的次数。
- 求平均对箱内指示值取平均,得到实际频率 $\hat{p}_m$。
ECE 量化误差——把偏差算成一笔账
台长看完整张散点图,觉得“有点偏,但偏多少还是说不清”。于是他设计了一个综合信用分:每个抽屉里的偏差(平均预报概率与实际下雨比例之差的绝对值)先算出来,再按“这个抽屉的天数占全年的比重”加权求和。样本越多的抽屉,越能代表预报员的真实水平,权重就越大。这个加权平均的偏差,就是机器学习中的期望校准误差,简称 ECE。
ECE 很直观,但要注意它依赖分箱方式。箱太少(比如 3 个),箱内偏差会被平均掉,掩盖“高分段虚高、低分段保守”这类非均匀问题;箱太多(比如 100 个),每箱样本稀少,实际频率估计方差飙升,ECE 反而剧烈抖动。实践中常用 10 到 15 个等宽箱,或改用等频分箱(每箱样本数相同),兼顾稳定性和分辨率。监控时保持同一分箱规则,才能让 ECE 时序可比。
- 箱内置信度$\operatorname{conf}(B_m)$ 是第 m 个箱内所有样本预测概率的平均值,也就是模型“承诺”的平均把握。
- 箱内实际频率$\operatorname{acc}(B_m)$ 是第 m 个箱内真实正例的比例,即校准曲线中的 $\hat{p}_m$,代表“实际兑现率”。
- 绝对差取绝对值只关心偏差大小,不区分过自信还是欠自信,两者都算“失信”。
- 箱权重$n_m/N$ 是第 m 箱样本数占总样本数的比例,样本多的箱对整体 ECE 影响更大。
- 累加求和所有箱的加权偏差相加,得到全局校准误差 ECE。
Brier Score——预报员的综合考卷
如果把校准比作“诚信”,那么 Brier Score 就是更全面的“综合考卷”——它不仅看概率是否兑现,还看预报有没有区分度。想象一场天气预报员竞赛:每天每位预报员交一个降水概率,当天实际下雨记 1 分、没下雨记 0 分,用“预测概率减实际结果的平方”作为当天扣分。一年下来平均,就是这位预报员的 Brier Score。它不需要分箱,直接对每个样本单独打分。
Brier Score 真正厉害的地方在于它可以分解成三部分,帮你定位误差到底出在哪一环:
实践中,ECE 只看可靠性这一个维度,而 Brier Score 同时考核校准与锐度。用气象台的比喻:ECE 是“诚信分”,Brier Score 是“综合业绩分”。监控时两者应同时跟踪:ECE 告诉你“把握是否失真”,BS 的分解告诉你“失真来自不诚信还是没水平”。
- 第一项 Reliability借用校准曲线的分箱,$\bar{f}_m - \bar{o}_m$ 是箱内平均预测概率与实际频率之差,衡量“准不准”,与 ECE 思路同源。
- 第二项 Resolution$\bar{o}_m - \bar{o}$ 是每箱实际频率与全局正例率的差,箱与箱之间差异越大,说明预测越有区分度,减去它使总分下降、分数更好。
- 第三项 Uncertainty全局 $\bar{o}(1-\bar{o})$ 完全由数据正例率决定,代表数据本身无法消除的随机噪声,是任何模型都绕不开的理论下限。
- 三者关系BS = 可靠性 − 分辨率 + 不确定性。若一个模型可靠性好但分辨率低,BS 依然不低——因为它“诚实但平庸”。
校准漂移检测——季节变了,预报还准吗
气象台的预报经过长期校准一直表现优秀,但某年入夏后,你发现“70% 降水概率”的预报日里,实际下雨的不到一半。是预报员变笨了吗?不,是天气的底层规律变了——夏季的气候模式打破了原来春秋季归纳出的预报关系。机器学习中,数据分布 P(X, Y) 发生改变的现象称为概念漂移。分布一变,模型在原分布上校准好的概率,在新分布上集体失真,这就是校准漂移。
检测校准漂移,最常用的视角是比较“当前预测概率分布”与“基准期预测概率分布”是否一致。如果模型在新季节里更加激进地报 90%,而以前更多报 60%,分布形状就变了。量化这种分布偏移的经典指标是 PSI(Population Stability Index,群体稳定性指标):
除了 PSI,还可以直接计算近期窗口的 ECE 与 Brier Score,与基准值做显著性差异检验——比如 KS 检验或 t 检验,判断近期指标下降是否超出了正常波动。实际监控中建议至少同时跟踪两条时间序列:一个分布型指标(PSI)加一个校准型指标(ECE 或 Brier Score),防止单指标失灵。就像气象台既监控云图(分布)又核对实况记录(校准),双通道交叉验证才能尽早发现“季节变了”。
- 基准分布$E_m$ 是建模期或验证期的预测概率在各箱的占比,作为“期望”分布。
- 当前分布$A_m$ 是监控窗口内各箱的占比,作为“实际”分布。
- 单箱偏移$(A_m - E_m) \ln(A_m / E_m)$ 对每个箱度量偏移量,当两个占比相等时该箱贡献为 0,偏离越远贡献越大。
- 全分布求和把所有箱的偏移量累加,得到整体 PSI,作为校准漂移的量化信号。
重校准策略——重新调校气象仪器
发现预报偏差后,不能把预报员开除重招——正确做法是请仪器工程师来调校湿度计。机器学习中的重校准也是如此:不重新训练模型,而是把当前模型的输出“翻译”成与现实比例对得上的语言。就像调校仪器不改动气象站的建筑结构,只修正读数偏差。
最常用的重校准手段是温度缩放:把模型最后的原始分数(logits)除以一个温度参数 T,再做 softmax。T 大于 1 时,分数差距被压缩,输出概率更平滑、整体置信度降低——专治过度自信;T 小于 1 时,分数差距被放大,概率更尖锐——专治过度保守。T 的取值在验证集上通过最小化负对数似然求得。
温度缩放只改变概率的水平,不改变各个类别之间的排序,所以不会影响 AUC 等排序指标,非常适合在不想动模型排序能力时使用。若模型存在系统性偏移(不只是过头,而是整体偏低),可用 Platt 缩放:对 logits 拟合 $q = 1/(1+\exp(\alpha z + \beta))$,多了截距 $\beta$,能同时校正斜率偏差和水平偏移。若概率与 logits 的关系更复杂,非线性的保序回归(isotonic regression)更灵活,校准效果通常最好,但需要足够的数据量,否则容易过拟合。
重校准不是一锤子买卖。收到漂移告警后,应先用最近窗口的数据重拟合温度或 Platt 参数,在影子环境里验证 ECE 确实下降,再灰度上线。如果新参数上线后指标没有恢复,要能自动回滚到旧参数,宁可暂时用旧校准,也不能用“越校越歪”的新参数。
- 取原始分数$z_i$ 是模型输出的 logits,即未经 softmax 的原始得分,可以是任意实数。
- 缩放分数$z_i / T$ 是温度缩放的核心操作。T > 1 时所有分数向 0 收缩,概率分布变平;T < 1 时分数向外扩张,概率分布变尖。
- 指数与归一$\exp(\cdot)$ 保证结果为正数,分母求和做归一化,使所有类别概率和为 1,构成标准 softmax。
- 多类别扩展$K$ 是类别数;二分类时 $K=2$,可简化为 sigmoid 形式 $q = \sigma(z/T)$。
监控 Pipeline——全自动气象台
一个成熟的气象台不会靠台长每天手动翻报表,而是有一套自动化巡检体系:气象站源源不断把预报和实况传回控制中心,大屏实时刷新指标,异常时自动报警甚至自动调校仪器。机器学习模型的校准监控,也应当是这样一套闭环 Pipeline,而不是上线前的一次性检查。
标准的监控 Pipeline 包含四步。第一步是采集与对齐:线上服务记录每一条请求的预测概率,延迟或离线获取对应的真实标签,组成“预测概率 + 真实标签”的数据对。第二步是窗口聚合:按固定周期(比如每天或每周)计算窗口内的 ECE、Brier Score 与 PSI。第三步是趋势平滑:单日指标噪声太大,一天异常不代表模型坏了,需要用指数加权移动平均(EWMA)平滑,让趋势信号更清晰:
第四步是自动重校准与回退:告警触发后,自动在最近窗口数据上拟合温度缩放参数,先在影子环境对同一批请求做对比,确认 ECE 改善后灰度上线;上线后继续监控,若指标未恢复,自动回滚并通知值班工程师。这套“采集 → 聚合 → 平滑 → 告警 → 重校准 → 回退”的闭环,把校准监控从被动的事后报表,升级为主动的运维自动化,确保模型的概率承诺始终对得上现实。
- 平滑系数$\lambda \in (0,1)$ 控制记忆长度,常用 0.9 到 0.99,对应大约 10 到 100 个窗口的“记忆”。
- 递推更新新估计 $\hat{\mu}_t$ 是旧估计 $\hat{\mu}_{t-1}$ 与最新观测 $x_t$ 的加权平均,公式简洁且只需保存上一个值。
- 初始值$\hat{\mu}_0$ 通常取基准期的指标均值或第一个观测值。
- 监控判据当平滑后的 ECE 或 Brier Score 连续超过告警阈值若干个窗口(而不是单次抖动),才触发重校准流程,减少误报。
AI 应用场景
信贷风控概率校准监控
阶段:模型上线后的概率监控与重校准
解决的问题:信贷风控模型输出“客户 90% 不会违约”这样的风险概率,利率定价直接把这个概率当作真实违约率来计算。若概率虚高,银行会给高风险客户定过低利率,形成系统性亏损隐患。传统监控只看 KS/AUC 排序指标,完全看不出概率绝对水平失真。
具体案例:某消费金融公司在疫情后上线 ECE 监控,发现新客群中预测概率 0.8 以上的高分样本,实际违约率只有 0.55——模型显然过度自信了。自动告警触发温度缩放重校准,用最近窗口数据拟合出 T≈1.6,重校准后 ECE 从 0.22 降到 0.06,利率定价与真实风险重新对齐,坏账拨备估算也恢复了准确。
医疗影像辅助诊断的可靠性保障
阶段:临床部署后的校准度持续验证
解决的问题:影像诊断报告向医生输出“恶性肿瘤概率 92%”,医生会据此决定是否建议活检。如果这个概率在不同院区、不同品牌设备上失真,可能导致漏诊或过度诊疗。医院无法靠人工抽查每台设备的概率质量,需要自动化校准监控。
具体案例:某三甲医院 MLOps 团队在模型输出层加上温度缩放后台,每周自动计算 ECE 与 Brier Score,并按设备型号、院区分层统计。发现某型号新设备的图像分布偏移后,PSI 超过 0.25 触发告警,系统自动用该设备近两周数据重拟合校准参数,Brier Score 从 0.31 回落到 0.19,临床医生对概率报告的信任度显著回升。
广告点击率预估的排序与计费校准
阶段:CTR 模型的概率校准与在线监控
解决的问题:广告系统把模型输出的点击率概率乘以出价参与竞价,同时按概率做预算分配。若 CTR 概率全局偏高 20%,会导致出价虚高、预算浪费,广告主实际 ROI 与预估严重不符。AUC 高只说明排序好,竞价计费场景对概率的绝对水平有硬性要求。
具体案例:某广告平台为 CTR 模型建立每日 ECE 监控和每周自动保序回归重校准任务。一次大促活动后新用户流量激增,ECE 在三天内从 0.05 涨到 0.19,系统自动重校准后回落。整个大促期间平台广告填充率提升 8%,广告主预算消耗与实际流量分布的一致性明显改善。
Python 演示
"""校准度评估与温度缩放重校准演示"""import numpy as np def compute_ece(y_true, y_prob, n_bins=10): """计算期望校准误差 ECE, 使用等宽分箱""" ece = 0.0 for m in range(n_bins): lo = m / n_bins hi = (m + 1) / n_bins if m == n_bins - 1: mask = (y_prob >= lo) & (y_prob <= hi) else: mask = (y_prob >= lo) & (y_prob < hi) n_m = int(np.sum(mask)) if n_m == 0: continue conf = float(np.mean(y_prob[mask])) acc = float(np.mean(y_true[mask])) ece += n_m / len(y_true) * abs(acc - conf) return ece def compute_brier(y_true, y_prob): """计算 Brier Score""" return float(np.mean((y_prob - y_true) ** 2)) def temperature_scale(logits, y_true): """在验证集上格点搜索最优温度参数""" best_t, best_nll = 1.0, float("inf") for t in np.linspace(0.1, 10.0, 199): p = 1.0 / (1.0 + np.exp(-logits / t)) p = np.clip(p, 1e-12, 1 - 1e-12) nll = -np.mean(y_true * np.log(p) + (1 - y_true) * np.log(1 - p)) if nll < best_nll: best_nll, best_t = nll, t return float(best_t) def simulate_confident_model(seed=42): """构造一个过度自信的二分类模型预测""" rng = np.random.default_rng(seed) n = 5000 x = rng.normal(size=(n, 8)) logit = x[:, 0] + 0.6 * x[:, 1] - 0.4 * x[:, 2] prob = 1.0 / (1.0 + np.exp(-logit)) y_true = rng.binomial(1, prob) inflated_logit = logit * 1.7 p_confident = 1.0 / (1.0 + np.exp(-inflated_logit)) return y_true, p_confident, inflated_logit def main(): y_true, p_raw, logits = simulate_confident_model() print("=== 校准度评估 (模拟过自信模型) ===") print(f"原始模型 ECE : {compute_ece(y_true, p_raw):.4f}") print(f"原始模型 Brier : {compute_brier(y_true, p_raw):.4f}") t = temperature_scale(logits, y_true) p_cal = 1.0 / (1.0 + np.exp(-logits / t)) print(f"最优温度 T : {t:.3f}") print(f"重校准后 ECE : {compute_ece(y_true, p_cal):.4f}") print(f"重校准后 Brier : {compute_brier(y_true, p_cal):.4f}") if __name__ == "__main__": main()
def compute_ece(y_true, y_prob, n_bins=10)定义 ECE 计算函数,默认用 10 个等宽箱把概率区间切分成 10 段。mask = (y_prob >= lo) & (y_prob < hi)布尔掩码筛选出落在当前箱的所有样本,最后一句用<=保证 1.0 边界不丢样本。ece += n_m / len(y_true) * abs(acc - conf)每箱的偏差按样本占比加权累加,正是 ECE 公式的逐箱实现。p = 1.0 / (1.0 + np.exp(-logits / t))温度缩放后的 sigmoid 概率,等价于把 logits 除以 t 再映射到 0~1。nll = -np.mean(y_true * np.log(p) + (1 - y_true) * np.log(1 - p))负对数似然作为温度搜索的损失函数,值越小说明校准后概率越符合真实标签。inflated_logit = logit * 1.7人为放大 logits 的 1.7 倍来模拟过度自信模型,因此最优温度应当接近 1.7。p_cal = 1.0 / (1.0 + np.exp(-logits / t))用格点搜索得到的最优温度重新生成校准后的概率,再送入 ECE/Brier 评估。
常见误区
误区模型在测试集上准确率 95%,那它输出的 0.9 概率当然意味着 90% 会中,准确率高就代表概率可靠。
正解准确率只衡量“预测的类别对不对”,不衡量“预测的把握准不准”。一个模型可能分类几乎全对,但它给出的 0.9 所对应的实际频率却只有 0.7。校准需要单独用 ECE 或 Brier Score 检验,就像一个人考试总是优秀,不代表他给自己估分时也诚实。校准和准确率是两条独立的评价维度。
为何常见:日常指标都是类别级的(准确率、F1),初学者很少接触概率级的验证方法,很容易默认“分数高 = 概率准”。
误区ECE 降到 0,模型就完美了,可以放心上线。
正解ECE 只衡量可靠性,不衡量判别力。一个永远输出 50% 的“和稀泥”模型,在所有箱中的实际频率都接近 50%,ECE 接近 0,但对决策毫无帮助。就像一位预报员天天说“五五开”,从不失信但也从不说出有效信息。必须同时关注锐度或 Brier Score 的分辨率分量——既要“说得准”,也要“分得开”。
为何常见:把“校准”误当成“性能”的全部,忽略了校准与锐度是两个正交维度。
误区训练集上做一次温度缩放,模型概率就永久可信了,上线后不用再管。
正解数据分布会持续漂移——新客群、新设备、新季节都会打破旧的校准关系。校准参数来自旧分布的验证集,新数据上 ECE 会悄悄反弹。正如气象台的预报规律需要随季节更新,模型校准必须持续监控并配套自动重校准流程,否则概率可靠性会随时间悄悄劣化。
为何常见:静态思维——以为模型是“训练完就定型”的产品,忽略了真实系统运行在动态环境里。
误区Brier Score 和 ECE 都是衡量概率误差的指标,选一个监控就够了。
正解两者维度不同。ECE 只看可靠性,Brier Score 同时包含可靠性、分辨率和不确定性三部分。一个模型 ECE 低但 Brier 高,说明它“诚实但分不开”;Brier 低但 ECE 高,说明它“分得开但把握失真”。生产监控中建议同时跟踪,并利用 Brier 分解定位误差来源,而不是把它们当成同一个指标的二选一。
为何常见:看到两个“概率误差”数字,直觉认为功能重复,忽略了 Brier Score 可分解的结构性差异。
误区把 ECE 的分箱数设成 100 甚至更多,数值更精细,监控结论更可信。
正解分箱过多时每箱样本稀少,实际频率估计方差飙升,ECE 会剧烈抖动,甚至产生系统性偏差;分箱过少又会把箱内非线性问题平均掉。实践中常用 10 到 15 个箱,或采用等频分箱保证每箱统计稳定。就像统计降雨频率时,不能因为想精确就把一年分成 365 个“抽屉”——每个抽屉只有一天样本,估计毫无意义。
为何常见:直觉认为“粒度越细越准”,忽略了统计学中偏差与方差的权衡。
面试题
Q1. 模型校准度衡量的是什么?
- A.模型预测类别的正确率高低
- B.预测概率与实际频率的一致性← 正确答案
- C.模型训练收敛速度的快慢
- D.模型推理延迟时间的长短
答案:B。校准度关注“说 70% 就差不多 70% 真实发生”,即预测概率与实际频率是否一致。A 是准确率,C 是训练效率,D 是性能指标,都与校准无关。
Q2. 在可靠性图中,若模型的所有散点都明显位于对角线下方,说明模型?
- A.欠自信
- B.过自信← 正确答案
- C.完美校准
- D.无法判断
答案:B。对角线下方说明“模型给出的高概率,实际频率并没有那么高”,是典型过自信。对角线上方才是欠自信——说 60%,实际 80%。
Q3. 计算 ECE 时,第 m 个 bin 的权重是什么?
- A.箱内样本数占总样本数比例← 正确答案
- B.箱内所有样本的平均预测概率
- C.箱内样本的真实正例占比
- D.分箱总数 M 的倒数常量
答案:A。ECE 是各箱 |acc−conf| 的加权平均,权重是 n_m/N——样本多的箱影响更大,防止小箱噪声主导结果。B 是 conf 的定义,C 是 acc 的定义,D 是等权重方案,均不正确。
Q4. Brier Score 的分解中,Resolution(分辨率)分量反映什么?
- A.预测概率与实际频率的偏差
- B.模型对正负样本的区分能力← 正确答案
- C.数据本身不可消除的固有噪声
- D.模型在训练集上的过拟合程度
答案:B。Resolution 是各箱实际频率与全局正例率的加权偏离平方和,描述了不同概率区间之间“分得开”的程度。A 是 Reliability,C 是 Uncertainty,D 与分解无关。
Q5. 温度缩放中 T>1 的作用是什么?
- A.提升模型排序能力以增大 AUC
- B.让输出概率平滑并降低置信度← 正确答案
- C.增加模型的非线性表达能力
- D.提升训练集上的准确率
答案:B。logits 除以 T>1 使分数差距缩小,softmax 输出趋于均匀,整体置信度降低,用于校正过自信模型。温度缩放不改变类别排序,AUC 不变,也不增加表达力,A、C、D 均错误。
Q6. PSI 指标主要用于监控什么?
- A.模型推理精度的数值溢出
- B.当前预测概率分布与基准分布的偏移← 正确答案
- C.训练数据的标注噪声比例
- D.模型参数的更新幅度
答案:B。PSI 将概率分箱后比较当前占比 A_m 与基准占比 E_m 的偏移,是校准漂移检测的重要信号。它不监控数值溢出、标注噪声或参数幅度,其余选项均不相关。
Q7. 下列哪个操作属于重校准而不是重新训练?
- A.收集更多数据重新调整参数
- B.在验证集上拟合最优温度系数← 正确答案
- C.更换模型的损失函数
- D.增加网络层的堆叠数量
答案:B。温度缩放是在验证集上拟合一个温度参数的后处理,不改动主模型结构,无需重新训练。A、C、D 都属于训练环节的改动,不属于重校准。
Q8. 关于 ECE,下列说法正确的有哪些?
- A.ECE 是各 bin 偏差的加权平均← 正确答案
- B.bin 越多则 ECE 越加准确
- C.ECE 数值越小校准度越好← 正确答案
- D.ECE 恒等于 Brier Score 值
答案:AC。A 正确,ECE 以 n_m/N 为权重加权平均各箱偏差。C 正确,ECE 是误差指标,越小校准越好。B 错误,bin 过多会因样本稀疏导致方差增大。D 错误,Brier Score 还包含分辨率与不确定性分量。
Q9. 哪些指标或工具可用于检测校准漂移?
- A.PSI(Population Stability Index)← 正确答案
- B.滑动窗口 ECE 变化趋势← 正确答案
- C.模型准确率持续为 99%
- D.Brier Score 的时间序列← 正确答案
答案:ABD。PSI 对比概率分布偏移,滑窗 ECE 与 Brier Score 时间序列都直接反映校准度变化。C 的准确率稳定不能排除校准漂移——准确率与校准相互独立,可能准确率很高而概率严重失真。
Q10. 监控 Pipeline 中,自动重校准的稳健做法包括哪些?
- A.使用最近窗口数据拟合温度参数← 正确答案
- B.在影子环境验证 ECE 后灰度上线← 正确答案
- C.一旦 ECE 超阈值立即全量替换
- D.上线后持续监控异常时回滚← 正确答案
答案:ABD。A 用新分布数据拟合参数是重校准的前提。B 影子验证再灰度上线是安全发布的保障。D 回滚机制是闭环的兜底。C 错误——“立即全量替换”缺乏验证和灰度,风险极大,可能把线上系统带崩。