Brier Score
Brier 分数是预测概率与实际结果之间的均方误差,分数越低越好。本文介绍计算公式、基线、技巧评分和代码。
布里尔分数通过计算每个预测概率与实际结果之间差值的平方均值,来衡量概率预测的准确性;实际结果用 1 表示事件发生,用 0 表示事件未发生。对于二元事件,分数范围是 0 到 1,0 表示完美得分;始终预测 0.5 的模型得分恰好为 0.25。气象学家 Glenn W. Brier 于 1950 年提出该指标,用于检验概率天气预报;如今,它也用于评估临床风险模型、预测竞赛和机器学习(ML)分类器。该指标直接评估概率本身,也就是在任何阈值将概率转化为决策之前进行评估,因此它能区分犹豫不决但正确的 0.51 预测与信心十足的 0.99 预测,而准确率、精确率和召回率会将二者视为相同。
布里尔分数的计算方法#
对于 N 个预测,若预测概率为 p,结果为 o,则布里尔分数是 (p − o)² 的平均值。如果模型预测发生缺陷的概率为 80%,而缺陷确实存在,则惩罚值为 0.04,即 (0.8 − 1)²;如果缺陷不存在,则惩罚值为 0.64,即 (0.8 − 0)²。因此,过度自信的错误比不太确定的错误代价高得多。布里尔分数是一种严格适当的评分规则:模型只有如实报告自己相信的概率,才能获得最佳期望得分,因此无法通过将预测概率往 0 或 1 偏移来获益。
类别超过两个时,会对预测概率向量与真实类别的独热向量之间的平方差按类别求和,并对样本取平均。这种多分类形式是布里尔最初定义的版本,范围为 0 到 2。scikit-learn 的 brier_score_loss函数接受这两种情况,默认会将二分类分数减半,使其范围为常见的 0 到 1,同时将多分类输入的范围保持为 0 到 2。因此,只有使用相同约定时,不同工具的分数才具有可比性。
如何解读布里尔分数#
布里尔分数没有普遍适用的“好”值,因为它取决于事件发生的频率。始终预测基准率 p 的模型得分为 p(1 − p):对于发生率为 10% 的事件,得分为 0.09;对于发生率为 50% 的事件,得分为 0.25。布里尔技巧分数(BSS = 1 − BS / BS_ref)会将模型与此类参考预测进行比较:0 表示不优于参考预测,1 表示完美,负值表示比参考预测更差。
from sklearn.metrics import brier_score_loss
# Outcomes (1 = defect) and the model's predicted defect probabilities
y_true = [0, 1, 1, 0, 1, 0, 0, 0, 1, 0]
y_proba = [0.10, 0.75, 0.60, 0.30, 0.90, 0.40, 0.05, 0.20, 0.35, 0.15]
model_score = brier_score_loss(y_true, y_proba)
# Reference forecast: always predict the observed defect rate
event_rate = sum(y_true) / len(y_true)
baseline_score = brier_score_loss(y_true, [event_rate] * len(y_true))
# Brier skill score: the share of the reference error the model removes
skill = 1 - model_score / baseline_score
print(f"Model {model_score:.3f}, baseline {baseline_score:.3f}, skill {skill:.2f}")脚本输出显示,模型得分为 0.098,而始终预测 40% 缺陷率的得分为 0.240,技巧分数为 0.59,表示该模型消除了参考预测 59% 的平方误差。模型最大的单项惩罚为 0.42,来自一个缺陷零件,而模型对该零件的缺陷概率只评为 0.35。
Murphy 于 1973 年提出的分解方法将分数拆分为三部分:BS = 可靠性 − 分辨率 + 不确定性。可靠性衡量校准程度,也就是预测概率与相应案例的实际发生频率之间的差距,理想情况下应当较低。分辨率衡量预测区分不同结果案例的能力,理想情况下应当较高。不确定性等于基准率项 p(1 − p),只取决于数据。始终预测基准率的模型校准完美、分辨率为零,因此其分数等于不确定性项。
Brier Score 与相关指标的比较#
- 对数损失:同样是一种严格适当的评分规则,根据赋予真实结果的概率的对数计算。它对过度自信的错误惩罚要严厉得多:对于没有发生的事件,若预测概率为 0.99,布里尔分数的惩罚为 0.98,而对数损失为 4.6;如果事件确实发生,但预测概率恰好为 0,则对数损失为无穷大。
- 期望校准误差(ECE):只衡量校准情况:按置信度将预测分箱,并计算置信度与准确率之间差值的平均值。它忽略分辨率,因此始终预测基准率的模型也可能获得完美的 ECE。
- 曲线下面积(AUC):衡量分数将正例排在负例之前的能力;任何能保留这种排序的校准方法都不会改变 AUC,例如对二元分类器进行温度缩放。
- 置信度:模型对预测附加的分数。布里尔分数会检验这些分数是否表现为概率,而过度自信的分数会通过可靠性项使分数升高。
布里尔分数在计算机视觉中的应用#
输出概率的图像分类器会在带标签的留出图像上使用布里尔分数进行评估;在新标注的生产图像上重新计算布里尔分数,则可以看出输入发生数据漂移时校准是否依然有效。YOLO26分类模型会在 result.probs.data 中返回类别上的完整 softmax分布,因此微调后的 YOLO26 分类器的多分类布里尔分数,就是在留出图像上计算该概率向量与独热真实标签之间的平方差之和,再对图像取平均。










