Brier Score 是什么?如何衡量概率和结果之间的误差
足球预测模型实战

Brier Score 是什么?如何衡量概率和结果之间的误差

Brier Score 用平方误差评估概率预测。它比命中率更细,比 LogLoss 更直观,适合检查模型概率偏差。

2026-05-16浏览 8
正文:17px

前一章讲了 LogLoss。

LogLoss 有一个很重要的特点:

模型越自信地犯错,惩罚越重。

比如真实结果是平局,模型只给平局 2% 的概率,LogLoss 会非常大。

这对足球模型很重要。

因为足球比赛不确定性高,模型不能经常把复杂比赛说得过于确定。

但 LogLoss 也有一个问题:

它对很多普通读者来说不够直观。

-log(p) 这个形式,第一次看会有点抽象。

所以,在概率模型评估里,还有另一个很常用、也更容易理解的指标:

Brier Score。

Brier Score 的核心思想很简单:

模型预测的概率,和真实结果之间差多少。

如果模型预测概率接近真实结果,分数就低。
如果模型预测概率离真实结果很远,分数就高。

这里要注意:

Brier Score 是损失指标。

所以:

越低越好

不是越高越好。

这一章就把 Brier Score 讲清楚,并且说明它在足球模型里怎么用。


一、Brier Score 解决的是什么问题?

足球模型输出的是概率。

比如预测主胜:

主胜概率:70%

比赛结束后,主胜要么发生,要么不发生。

如果主胜发生,真实结果可以记作:

y = 1

如果主胜没有发生,真实结果可以记作:

y = 0

模型预测概率是:

p = 0.70

那么模型预测和真实结果之间的误差就是:

p - y

Brier Score 把这个误差平方:

Brier Score = (p - y)^2

这就是二分类 Brier Score 的基本公式。

其中:

p = 模型预测事件发生的概率
y = 真实结果,发生为1,未发生为0

它非常直观。

如果模型预测 70%,结果发生了,误差是:

0.70 - 1 = -0.30

平方后:

(-0.30)^2 = 0.09

如果模型预测 70%,结果没发生,误差是:

0.70 - 0 = 0.70

平方后:

0.70^2 = 0.49

第二种损失明显更大。

这就符合直觉:

模型给了 70% 的概率,结果没发生,错误比较大。


二、为什么要平方?

如果只看误差:

p - y

会有正负号。

比如:

模型预测 70%,真实发生:

0.70 - 1 = -0.30

模型预测 30%,真实没发生:

0.30 - 0 = 0.30

一个是 -0.30,一个是 +0.30。

如果直接加总,正负可能抵消。

但这两种都有误差,不能让它们互相抵消。

所以 Brier Score 用平方:

(p - y)^2

平方后都变成正数。

(-0.30)^2 = 0.09
0.30^2 = 0.09

平方还有一个效果:

误差越大,惩罚增长越快。

比如:

误差 0.20 => 平方 0.04
误差 0.50 => 平方 0.25
误差 0.80 => 平方 0.64

误差从 0.20 到 0.80,平方损失从 0.04 增加到 0.64。

这说明大错误会被更明显地惩罚。


三、用主胜概率完整算几个例子

假设我们只评估一个二分类事件:

主队是否获胜

模型预测主胜概率 p

真实结果 y

主胜发生:y = 1
主胜未发生:y = 0

例子一:预测 70%,主胜真的发生

p = 0.70
y = 1

Brier Score:

(p - y)^2 = (0.70 - 1)^2
= (-0.30)^2
= 0.09

这个损失较小。

模型给了较高概率,结果也发生了。


例子二:预测 70%,主胜没有发生

p = 0.70
y = 0

Brier Score:

(p - y)^2 = (0.70 - 0)^2
= 0.70^2
= 0.49

损失较大。

模型比较相信主胜,但主胜没发生。


例子三:预测 30%,主胜真的发生

p = 0.30
y = 1

Brier Score:

(0.30 - 1)^2
= (-0.70)^2
= 0.49

这也很差。

模型低估了主胜,结果主胜发生了。


例子四:预测 30%,主胜没有发生

p = 0.30
y = 0

Brier Score:

(0.30 - 0)^2
= 0.09

损失较小。

模型认为主胜概率不高,结果确实没主胜。

你会发现,Brier Score 很符合直觉:

概率接近真实结果,分数低;
概率远离真实结果,分数高。


四、Brier Score 的范围怎么理解?

二分类 Brier Score 的单场范围通常在:

0 到 1

最好的情况是 0。

比如模型预测:

p = 1

真实结果发生:

y = 1

则:

(1 - 1)^2 = 0

或者模型预测:

p = 0

真实结果没发生:

y = 0

则:

(0 - 0)^2 = 0

最差情况是 1。

比如模型预测:

p = 1

但真实没有发生:

y = 0

则:

(1 - 0)^2 = 1

或者模型预测:

p = 0

但真实发生:

y = 1

则:

(0 - 1)^2 = 1

所以二分类 Brier Score 越接近 0 越好。


五、Brier Score 和“概率误差”是什么关系?

Brier Score 可以理解为概率误差的平方。

假设真实结果发生,也就是 y=1。

模型预测 80%。

误差是:

1 - 0.80 = 0.20

Brier Score 是:

0.20^2 = 0.04

模型预测 60%。

误差是:

1 - 0.60 = 0.40

Brier Score:

0.40^2 = 0.16

模型预测 20%。

误差是:

1 - 0.20 = 0.80

Brier Score:

0.80^2 = 0.64

所以,当真实事件发生时,预测概率越接近 1 越好。

当真实事件没有发生时,预测概率越接近 0 越好。

这就是 Brier Score 的直觉。


六、胜平负三分类怎么计算 Brier Score?

足球胜平负不是二分类,而是三分类:

H = 主胜
D = 平局
A = 客胜

模型输出三个概率:

P(H)
P(D)
P(A)

真实结果也可以写成三个数字。

如果真实结果是主胜:

H = 1
D = 0
A = 0

如果真实结果是平局:

H = 0
D = 1
A = 0

如果真实结果是客胜:

H = 0
D = 0
A = 1

多分类 Brier Score 可以理解为:

Brier Score = (P(H) - y_H)^2 + (P(D) - y_D)^2 + (P(A) - y_A)^2

有些实现会再除以类别数,有些不会。

为了理解,先不纠结是否除以类别数,核心逻辑是一样的:

每个类别的预测概率都和真实标签比较,然后平方求和。


七、三分类例子一:模型比较合理

假设某场比赛模型输出:

主胜:60%
平局:25%
客胜:15%

写成小数:

P(H) = 0.60
P(D) = 0.25
P(A) = 0.15

最终真实结果是主胜。

真实标签:

y_H = 1
y_D = 0
y_A = 0

Brier Score:

(0.60 - 1)^2 + (0.25 - 0)^2 + (0.15 - 0)^2

逐项计算:

(0.60 - 1)^2 = (-0.40)^2 = 0.16
(0.25 - 0)^2 = 0.0625
(0.15 - 0)^2 = 0.0225

求和:

0.16 + 0.0625 + 0.0225 = 0.245

如果除以 3:

0.245 / 3 = 0.0817

这个结果不差。

因为模型给真实主胜较高概率,同时没有把其他两个结果给得特别高。


八、三分类例子二:模型过于分散

同样真实结果是主胜。

模型输出:

主胜:40%
平局:32%
客胜:28%

即:

P(H) = 0.40
P(D) = 0.32
P(A) = 0.28

真实标签仍然是:

H = 1
D = 0
A = 0

Brier Score:

(0.40 - 1)^2 + (0.32 - 0)^2 + (0.28 - 0)^2

逐项:

(0.40 - 1)^2 = 0.36
0.32^2 = 0.1024
0.28^2 = 0.0784

求和:

0.36 + 0.1024 + 0.0784 = 0.5408

如果除以 3:

0.5408 / 3 = 0.1803

比前一个模型差。

因为它给真实主胜的概率只有 40%。


九、三分类例子三:模型自信地错

真实结果还是主胜。

模型输出:

主胜:10%
平局:35%
客胜:55%

也就是:

P(H) = 0.10
P(D) = 0.35
P(A) = 0.55

真实标签:

H = 1
D = 0
A = 0

Brier Score:

(0.10 - 1)^2 + (0.35 - 0)^2 + (0.55 - 0)^2

逐项:

(0.10 - 1)^2 = 0.81
0.35^2 = 0.1225
0.55^2 = 0.3025

求和:

0.81 + 0.1225 + 0.3025 = 1.235

如果除以 3:

1.235 / 3 = 0.4117

这个损失明显更高。

因为模型不仅低估了真实主胜,还高估了错误的客胜。

Brier Score 能把这种错误体现出来。


十、Brier Score 和 LogLoss 的区别

Brier Score 和 LogLoss 都能评估概率模型,但它们的敏感性不同。

LogLoss 的特点

LogLoss 对真实结果概率很低的情况惩罚非常重。

比如真实结果概率是:

1%

LogLoss:

-log(0.01) ≈ 4.605

如果真实结果概率是:

0.1%

LogLoss:

-log(0.001) ≈ 6.908

它增长很快。

所以 LogLoss 特别讨厌“极度自信地错”。

Brier Score 的特点

Brier Score 是平方误差。

它也惩罚错误,但增长更平滑。

二分类里,如果真实结果发生:

预测 1%:

(0.01 - 1)^2 = 0.9801

预测 0.1%:

(0.001 - 1)^2 = 0.9980

你会发现,它也很差,但不会像 LogLoss 那样无限变大。

所以:

LogLoss 更严厉惩罚极端错误。
Brier Score 更直观衡量概率误差。

两个指标都重要。


十一、为什么足球模型要同时看 LogLoss 和 Brier Score?

因为两者观察角度不同。

如果只看 LogLoss,模型可能因为少数极端错误被拉得很难看。

这有价值,因为极端错误确实应该被警惕。

但有时候你也想看整体概率误差是否平稳。

Brier Score 更直观。

它能告诉你:

模型概率和真实结果之间平均差得多不多。

例如两个模型 LogLoss 接近,但 Brier Score 不同。

Brier Score 更低的模型,概率整体可能更稳定。

反过来,如果 Brier Score 接近,但 LogLoss 差很多,说明某个模型可能有少数非常自信的错误。

足球模型里,这种情况很重要。

比如某模型大部分时候还可以,但偶尔把客胜概率压到 1%,结果客队赢了。

LogLoss 会狠狠惩罚它。

所以评估时要同时看:

命中率
LogLoss
Brier Score
概率校准
分联赛表现
分时间段表现

不要只看一个指标。


十二、Brier Score 和概率校准的关系

Brier Score 和校准也有关系。

如果模型概率长期偏高或偏低,Brier Score 会变差。

例如模型经常预测主胜:

70%

但这些比赛实际主胜只有:

55%

说明模型高估主胜。

在很多主胜未发生的比赛里,Brier Score 会比较高。

再比如模型预测平局:

15%

但这类比赛实际平局有:

28%

说明模型低估平局。

当平局发生时,模型给真实结果的概率太低,Brier Score 也会变差。

不过,Brier Score 本身只能给你整体误差。

要知道哪个概率区间不准,还要做分桶校准。

所以:

Brier Score 发现误差有多大。
校准分析告诉你误差在哪里。

这两个要配合使用。


十三、Brier Score 的直觉比 LogLoss 更适合解释给普通读者

如果给普通读者解释 LogLoss,-log(p) 可能稍微难一点。

但 Brier Score 很好解释:

预测概率和真实结果之间差多少,再平方。

比如预测主胜 70%,结果主胜发生。

模型离真实结果 100% 差 30%。

平方误差:

0.30^2 = 0.09

预测主胜 70%,结果没有主胜。

模型离真实结果 0% 差 70%。

平方误差:

0.70^2 = 0.49

这个直觉很容易理解。

所以在文章、产品说明或模型评估解释里,Brier Score 是一个很好的概念。

它能帮助读者理解:

模型不是只看中没中,而是看概率离真实结果有多远。


十四、Brier Score 能不能单独评估模型?

不能。

Brier Score 很有用,但不能单独使用。

原因有几个。

1. 它不能完整替代 LogLoss

LogLoss 对极端错误更敏感。

如果模型经常极度自信地错,LogLoss 更容易暴露问题。

2. 它不能替代校准曲线

Brier Score 告诉你总体误差,但不告诉你哪个概率区间错。

例如模型可能在 40%-60% 区间校准不错,但在 70%-90% 区间严重过度自信。

Brier Score 会反映整体问题,但不够定位。

3. 它不能替代分联赛评估

总体 Brier Score 不错,不代表每个联赛都好。

4. 它不能替代时间回测

历史平均 Brier Score 好,不代表未来稳定。

所以,Brier Score 是核心指标之一,不是唯一指标。


十五、Brier Score 在二分类足球模型里的用法

假设你训练一个模型:

主队是否获胜

标签:

主胜 = 1
非主胜 = 0

模型输出:

P(主胜)

那么每场比赛可以计算:

Brier = (P(主胜) - y)^2

举几个例子。

主胜发生,模型预测 65%

(0.65 - 1)^2 = 0.1225

主胜发生,模型预测 35%

(0.35 - 1)^2 = 0.4225

主胜没发生,模型预测 65%

(0.65 - 0)^2 = 0.4225

主胜没发生,模型预测 35%

(0.35 - 0)^2 = 0.1225

你看,Brier Score 对称地惩罚高估和低估。

预测越接近真实结果,损失越小。


十六、Brier Score 在胜平负三分类模型里的用法

胜平负模型输出:

P(H), P(D), P(A)

每场比赛真实结果转成 one-hot 标签。

比如真实结果是平局:

H = 0
D = 1
A = 0

模型输出:

P(H) = 0.45
P(D) = 0.30
P(A) = 0.25

Brier Score:

(0.45 - 0)^2 + (0.30 - 1)^2 + (0.25 - 0)^2

计算:

0.45^2 = 0.2025
(0.30 - 1)^2 = 0.49
0.25^2 = 0.0625

求和:

0.2025 + 0.49 + 0.0625 = 0.755

如果除以 3:

0.755 / 3 = 0.2517

再看另一个模型输出:

P(H) = 0.35
P(D) = 0.45
P(A) = 0.20

真实仍然平局。

Brier Score:

(0.35 - 0)^2 + (0.45 - 1)^2 + (0.20 - 0)^2

计算:

0.1225 + 0.3025 + 0.04 = 0.465

除以 3:

0.155

第二个模型更好。

因为它给真实平局更高概率,同时没有把错误类别给得太高。


十七、Brier Score 如何帮助发现平局问题?

足球胜平负模型经常低估平局。

假设真实结果是平局。

模型 A:

主胜:55%
平局:20%
客胜:25%

模型 B:

主胜:42%
平局:32%
客胜:26%

两个模型最高概率都不是平局。

如果看命中率,都算错。

但 Brier Score 会认为 B 更好,因为 B 给了平局更高概率。

计算模型 A:

(0.55 - 0)^2 + (0.20 - 1)^2 + (0.25 - 0)^2
= 0.3025 + 0.64 + 0.0625
= 1.005

模型 B:

(0.42 - 0)^2 + (0.32 - 1)^2 + (0.26 - 0)^2
= 0.1764 + 0.4624 + 0.0676
= 0.7064

模型 B 损失更低。

它虽然也没把平局放到最高,但它更尊重平局风险。

这正是概率模型应该做的。


十八、Brier Score 如何帮助比较两个模型?

假设你有两个模型:

逻辑回归
LightGBM

它们在测试集上命中率差不多。

比如:

逻辑回归命中率:54.8%
LightGBM命中率:55.1%

看起来 LightGBM 略好。

但如果 Brier Score 是:

逻辑回归 Brier Score:0.203
LightGBM Brier Score:0.218

那就说明 LightGBM 虽然命中率略高,但概率误差更大。

可能 LightGBM 更激进,错的时候更偏。

再看 LogLoss:

逻辑回归 LogLoss:0.992
LightGBM LogLoss:1.030

这进一步说明 LightGBM 可能过度自信。

所以,不能只看命中率。

Brier Score 可以帮助发现模型概率是否更稳。


十九、Brier Score 和模型融合

多模型融合时,也可以用 Brier Score 比较融合效果。

例如:

泊松模型 Brier Score:0.225
逻辑回归 Brier Score:0.215
LightGBM Brier Score:0.210
融合模型 Brier Score:0.204

这说明融合模型在概率误差上更好。

但也要看:

LogLoss 是否也改善;
校准是否改善;
分联赛是否改善;
分时间段是否稳定;
是否只是某个阶段偶然好。

如果融合模型 Brier Score 降低,但 LogLoss 变差,可能说明整体误差变小,但极端错误变多。

这就需要继续分析。

所以融合模型也不能只看单一指标。


二十、Brier Score 能分解吗?

Brier Score 在概率预测理论里可以分解成几个部分,比如:

校准性;
分辨率;
不确定性。

这里不需要展开复杂数学,但可以简单理解:

一个好模型不仅要概率校准,还要能区分不同风险水平的比赛。

如果一个模型永远输出同样概率,比如:

主胜:45%
平局:27%
客胜:28%

它可能比较校准,因为这是联赛平均水平。

但它没有区分比赛。

强队打弱队和两队接近,它都给同样概率。

这不够好。

好的模型应该:

对于强弱明显比赛,给更集中的概率;
对于实力接近比赛,给更分散的概率;
对于低比分结构,提高平局概率;
对于强队优势厚的比赛,提高主胜概率。

Brier Score 能在一定程度上反映这种预测质量。

但要真正诊断,还需要校准曲线、分桶分析和场景分组。


二十一、Brier Score 的常见误读

误读一:Brier Score 越低,模型一定越好

通常越低越好,但必须和样本范围、时间切分、基线模型一起看。

如果数据泄漏,Brier Score 也会虚好。

误读二:Brier Score 可以替代所有指标

不能。

它要和 LogLoss、校准、命中率、分层评估一起看。

误读三:单场 Brier Score 能判断模型好坏

不能。

单场只是一个样本。

Brier Score 要看长期平均。

误读四:Brier Score 好,概率一定完全校准

不一定。

它是总体误差指标。

还要做分桶校准。

误读五:Brier Score 不重要,命中率才直观

如果模型输出概率,Brier Score 比命中率更能反映概率质量。


二十二、如何在足球模型中实际使用 Brier Score?

一个成熟评估流程可以这样做:

第一步:计算整体 Brier Score

看模型总体概率误差。

第二步:和基线比较

例如:

固定概率基线;
逻辑回归;
泊松模型;
上一版模型。

第三步:按联赛计算

看某些联赛是否特别差。

第四步:按时间段计算

看模型是否随时间衰减。

第五步:按结果类别诊断

尤其看平局是否长期被低估。

第六步:结合 LogLoss

检查是否存在极端自信错误。

第七步:结合校准曲线

定位概率偏差在哪些区间。

这才是 Brier Score 的正确用法。


二十三、本章实操检查清单

评估 Brier Score 时,可以检查:

1. 当前任务是二分类还是多分类?
2. 二分类标签是否明确为0/1?
3. 胜平负是否转成 one-hot 标签?
4. 模型是否输出完整概率?
5. 是否计算整体 Brier Score?
6. 是否和基线模型比较?
7. 是否和 LogLoss 一起看?
8. 是否分联赛计算?
9. 是否分时间段计算?
10. 是否检查平局概率误差?
11. 是否检查高概率区间误差?
12. 是否确认数据没有未来泄漏?
13. 是否按时间切分测试?
14. 是否避免只用短期样本判断?
15. 是否结合校准曲线定位问题?

这份清单能让 Brier Score 不只是一个数字,而是模型诊断工具。


本章小结

Brier Score 是评估概率预测的重要指标。

二分类公式是:

Brier Score = (p - y)^2

其中:

p = 模型预测事件发生的概率
y = 真实结果,发生为1,未发生为0

胜平负三分类可以理解为:

Brier Score = (P(H)-y_H)^2 + (P(D)-y_D)^2 + (P(A)-y_A)^2

有些实现会再除以类别数,但核心思想相同:

预测概率和真实结果越接近,Brier Score 越低。

Brier Score 的优点是直观。

它衡量模型概率和真实结果之间的平方误差。

LogLoss 更严厉惩罚自信地错。

Brier Score 更平滑地衡量概率误差。

足球模型评估中,二者应该一起使用。

如果一个模型命中率不错,但 Brier Score 差,说明概率质量可能不好。

如果 Brier Score 好,但校准曲线有问题,说明需要进一步定位概率区间偏差。

所以,Brier Score 不是唯一指标,但它是足球概率模型评估里非常重要的一块。

下一章我们继续讲最后一个基础概念:

概率校准是什么?模型说 70%,长期真的有 70% 吗?

本文仅供足球数据研究和模型训练学习参考,不构成任何投注建议。