概率校准是什么?模型说 70%,长期真的有 70% 吗?
足球预测模型实战

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

概率校准检查的是模型概率是否可信。模型说 70%,长期类似样本真实发生率也应接近 70%。

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

足球预测模型最重要的输出不是一句“主胜”,而是一组概率。

比如:

主胜:70%
平局:18%
客胜:12%

很多人看到 70%,第一反应是:

这个结果概率很高。
模型很有把握。
这场应该比较清楚。

但真正专业的模型评估不会马上相信这个 70%。

它会继续问一个更关键的问题:

模型说 70%,长期真的有 70% 吗?

如果模型经常把主胜预测为 70%,但这些比赛实际主胜只发生 55%,说明模型高估了主胜。

如果模型经常把主胜预测为 70%,而实际主胜发生率接近 70%,说明这个概率比较可信。

这就是概率校准。

概率校准不是看某一场比赛有没有命中。

它看的是:

模型输出的概率,和长期真实发生率是否匹配。

一个模型可以命中率不错,但概率不校准。
一个模型也可以硬分类命中率一般,但概率表达更可靠。
如果模型概率不校准,那么它输出的 60%、70%、80% 都可能只是看起来精确的数字。

足球模型要真正可用,必须做概率校准。


一、什么是概率校准?

概率校准,简单说就是:

模型预测概率和真实发生率之间的一致程度。

如果模型说:

某类比赛主胜概率是 60%

那么长期看,这类比赛主胜实际发生率也应该接近:

60%

如果模型说:

某类比赛平局概率是 25%

那么长期看,这类比赛平局实际发生率也应该接近:

25%

如果模型说:

某类比赛总进球 2 球概率是 30%

那么长期看,这类比赛最终总进球为 2 球的比例也应该接近:

30%

这就是校准。

校准好的模型,不一定每场都命中。

但它说出来的概率是可信的。

校准差的模型,可能短期命中率不错,但概率数字不可靠。


二、为什么概率校准比单场命中更重要?

假设有一场比赛,模型输出:

主胜:70%
平局:20%
客胜:10%

最后比赛平局。

这场模型硬分类错了。

但能不能说模型概率不校准?

不能。

因为 20% 的平局本来就会发生。

如果有很多场类似比赛,模型都给平局 20%,那么长期大约每 5 场出现 1 场平局,是正常的。

你不能因为某一场平局发生,就说模型错得离谱。

真正的问题是:

模型给 20% 平局的比赛,长期平局是不是接近 20%。

如果长期接近 20%,模型校准没问题。

如果长期是 35%,说明模型低估了平局。

所以,校准看长期,不看单场。

这也是足球模型评估里最容易被误解的地方。


三、一个模型“命中率高”,也可能不校准

假设有两个模型,都预测同一批强队比赛。

模型 A

经常输出:

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

这批比赛实际主胜发生率:

61%

模型 A 的主胜概率很接近真实发生率。

模型 B

经常输出:

主胜:85%
平局:10%
客胜:5%

这批比赛实际主胜发生率:

62%

如果只看硬分类,两个模型可能都经常预测主胜,命中率差不多。

但模型 B 明显不校准。

它把 62% 左右的事件说成了 85%。

这就是过度自信。

长期看,模型 B 会在 LogLoss 上受到惩罚。

因为它一旦错,真实结果概率会很低。

模型 A 更克制,但更可信。

所以,概率模型不能只看命中率。

要看它的概率是否接近长期真实发生率。


四、校准差的模型有什么危险?

概率不校准,会带来很多问题。

1. 用户会误解风险

模型把 60% 说成 80%,用户会以为风险很低。

但实际风险可能很高。

2. EV 会被算错

期望值公式是:

EV = p × O - 1

其中 p 是模型概率。

如果 p 高估,EV 也会被高估。

一个原本没有价值的结果,可能被错误模型算成正期望。

3. 多模型融合会被污染

如果 LightGBM 输出概率过度自信,直接和泊松、逻辑回归平均,会把最终融合概率也拉偏。

4. 产品表达会过度

模型输出 80%,产品可能写成“优势明显”。

但真实发生率只有 60%,表达就会误导。

5. 模型监控会失真

如果不做校准,模型看起来有概率输出,但这些概率无法被信任。

所以,校准不是锦上添花。

它是足球概率模型可用性的核心。


五、如何检查概率校准?最常用的方法是分桶

概率校准不能看单场。

它需要把很多场比赛按预测概率分组。

这叫分桶。

例如我们检查主胜概率。

把模型预测主胜概率分成几个区间:

0%-10%
10%-20%
20%-30%
30%-40%
40%-50%
50%-60%
60%-70%
70%-80%
80%-90%
90%-100%

然后对每个区间统计:

模型平均预测概率是多少;
这个区间有多少场比赛;
实际主胜发生了多少场;
实际主胜发生率是多少。

例如:

预测主胜 60%-70% 区间
样本数:500场
实际主胜:325场
实际主胜率:325 / 500 = 65%

如果这个区间模型平均预测概率约为 65%,实际也是 65%,说明校准很好。

再比如:

预测主胜 70%-80% 区间
样本数:300场
模型平均预测概率:75%
实际主胜:180场
实际主胜率:180 / 300 = 60%

说明模型在这个区间明显过度自信。

它说 75%,实际只有 60%。


六、分桶校准的完整例子

假设我们评估一个主胜概率模型。

统计结果如下:

预测区间      样本数    模型平均概率    实际主胜率
40%-50%       400      45%             44%
50%-60%       600      55%             56%
60%-70%       500      65%             62%
70%-80%       300      75%             63%
80%-90%       100      85%             68%

前两个区间不错:

45% ≈ 44%
55% ≈ 56%

说明模型在中低概率区间校准较好。

但高概率区间明显有问题:

模型说 75%,实际 63%
模型说 85%,实际 68%

这说明模型在高概率区间过度自信。

如果不看校准,只看命中率,可能会错过这个问题。

尤其是足球模型,经常在强队比赛上过度乐观。

校准分桶能把这个问题暴露出来。


七、校准曲线是什么?

校准曲线就是把分桶结果画成图。

横轴是模型预测概率。

纵轴是真实发生率。

理想情况下,所有点都应该接近一条对角线:

预测 10%,实际 10%
预测 30%,实际 30%
预测 50%,实际 50%
预测 70%,实际 70%
预测 90%,实际 90%

如果模型校准很好,曲线接近对角线。

如果曲线低于对角线,说明模型高估概率。

比如:

预测 80%,实际 65%

实际发生率低于预测概率,模型过度自信。

如果曲线高于对角线,说明模型低估概率。

比如:

预测 50%,实际 60%

实际发生率高于预测概率,模型偏保守或低估事件。

校准曲线的价值是:

它能让你直观看到模型在哪些概率区间出了问题。


八、足球模型最常见的校准问题:高概率区间过度自信

在足球模型里,最常见的问题是:

高概率区间过度自信。

尤其是强队比赛。

模型可能输出:

主胜:80%

但长期实际发生率只有:

65%-70%

为什么会这样?

原因可能有很多:

强队优势被高估;
平局风险被低估;
低比分结构没有处理好;
强队轮换和赛程影响不足;
弱队低位防守影响不足;
模型在历史强队样本上过拟合;
LightGBM 输出概率未校准;
训练数据里强队表现较好,但未来环境变化。

足球比赛不是篮球这种高回合运动。

强队优势会被低比分和偶然事件压缩。

所以模型一旦把强队胜率给得太高,就容易不校准。


九、第二个常见问题:平局概率被低估

平局是足球模型里的难点。

很多模型容易输出:

平局:15%

但实际类似比赛平局率可能是:

25%

这就是低估平局。

为什么平局容易被低估?

因为平局不是简单的“实力中间态”。

它和很多因素有关:

双方实力接近;
总进球预期较低;
一方平局可以接受;
比赛节奏谨慎;
强队破密集困难;
联赛平局率较高;
赛制导致双方不愿冒险。

如果模型主要学习强弱差,很容易把概率分给主胜或客胜,而低估平局。

所以胜平负模型校准时,必须单独检查平局。

不能只看整体校准。


十、第三个常见问题:总进球概率偏高或偏低

总进球模型也需要校准。

例如模型预测:

总进球 4球及以上概率:30%

但长期实际只有:

18%

说明模型高估大比分。

可能原因:

近期进球特征受异常比分影响;
联赛进球环境变化;
防守强度被低估;
泊松 λ 估计偏高;
强队优势被误读成大比分;
模型过度依赖最近进球;
没有处理领先后降速。

反过来,如果模型长期低估大比分,也可能说明:

λ 偏低;
联赛环境变开放;
补时变长;
球队进攻效率提升;
模型过于保守。

所以总进球模型也要做分桶校准。

不仅胜平负要校准,总进球、比分、半全场都要校准。


十一、样本量对校准非常关键

概率校准必须有足够样本。

如果某个概率区间只有 10 场比赛,实际发生率会非常不稳定。

例如:

预测主胜 80%-90% 区间
样本数:10场
实际主胜:7场
实际发生率:70%

你不能立刻说模型高估了。

因为 10 场太少。

如果样本数是 500 场:

模型平均概率:85%
实际发生率:70%

那问题就明显多了。

所以校准分桶时,要注意每个桶的样本数量。

如果样本太少,可以:

合并相邻区间;
降低分桶数量;
延长评估时间;
按更粗维度看;
不要过度解释小样本。

校准离不开大数定律。

没有足够样本,校准结果本身也会波动。


十二、Platt Scaling 是什么?

如果模型概率不校准,可以做后处理。

一种常见方法是 Platt Scaling。

它的思路是:

用一个简单逻辑回归,把模型原始输出重新映射成更合理的概率。

假设模型原始分数是:

s

Platt Scaling 学习:

p_calibrated = 1 / (1 + e^(A*s + B))

这里:

p_calibrated = 校准后的概率
s = 模型原始分数
A, B = 需要学习的参数

不用纠结公式细节。

核心理解是:

用一个简单函数,把模型原始概率拉回更符合真实发生率的范围。

如果模型整体过度自信,Platt Scaling 可以把高概率往下压。

如果模型整体偏保守,也可以适当拉高。

它适合比较平滑的校准关系。


十三、Isotonic Regression 是什么?

另一个常见方法是 Isotonic Regression。

它比 Platt Scaling 更灵活。

它不强制使用固定函数形式,只要求:

预测概率越高,真实发生率整体也应该越高。

也就是说,它学习一个单调映射。

比如模型原始概率和真实发生率关系是:

模型预测 50%,实际 48%
模型预测 60%,实际 55%
模型预测 70%,实际 61%
模型预测 80%,实际 66%

Isotonic Regression 可以学习一个分段函数,把原始概率映射到更接近真实发生率的概率。

它更灵活,但也更容易过拟合。

如果样本量小,Isotonic Regression 可能把短期波动当成校准规律。

所以:

样本量足够时,Isotonic Regression 很有用。
样本量不足时,要谨慎。


十四、校准不能用测试集做

这是很重要的工程边界。

模型数据通常应该分成:

训练集
验证集
测试集

训练集用于训练模型。

验证集可以用于调参、早停、校准。

测试集应该留到最后,只做最终评估。

如果你用测试集做校准,再用同一个测试集报告结果,评估会虚高。

因为模型已经通过校准过程“看过”测试集分布。

正确做法是:

训练集:训练原始模型
验证集:做概率校准
测试集:评估校准后的模型

足球模型尤其要注意这个问题。

因为很多人会反复看测试集、调校准、再看测试集。

这等于慢慢把测试集变成了训练的一部分。

最终结果不可信。


十五、校准后是不是一定更好?

不一定。

校准有时会改善概率质量。

但如果校准样本太少、分布变化大、方法选择不当,也可能让模型变差。

比如:

验证集样本太少;
某个联赛样本不足;
校准关系在未来变化;
模型本身排序能力很差;
校准方法过拟合验证集。

校准不是魔法。

它不能把一个没有信息量的模型变成好模型。

如果模型本身排序能力很差,校准只能调整概率刻度,不能创造预测能力。

所以,校准前要先看:

模型是否优于基线;
LogLoss 是否合理;
Brier Score 是否合理;
排序能力是否存在;
概率偏差是否有稳定规律。

如果模型本身很差,先不要急着校准。

应该回到数据、特征和标签。


十六、校准和 LogLoss、Brier Score 的关系

LogLoss 和 Brier Score 都会受到校准影响。

如果模型过度自信,校准后通常能改善 LogLoss。

因为高概率区间被拉回真实发生率,错误时损失会降低。

Brier Score 也可能改善,因为概率和真实结果之间的平方误差减小。

但改善不一定总是同步。

有时校准明显改善 LogLoss,但 Brier Score 改善较小。

有时 Brier Score 改善,但 LogLoss 变化不大。

所以校准效果要综合看:

LogLoss;
Brier Score;
校准曲线;
分桶真实发生率;
分联赛表现;
分时间段表现。

不能只看一个指标。


十七、胜平负三分类怎么做校准?

胜平负有三类概率:

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

三类概率相加必须等于 1。

校准三分类时,要注意:

不能随便单独调整某一类概率后不归一化。

比如你把主胜概率从 80% 调到 65%,剩下平局和客胜怎么处理?

必须保证最终:

P(H) + P(D) + P(A) = 1

常见思路有:

对每一类做 one-vs-rest 校准,再重新归一化;
使用多分类校准方法;
对模型 logits 或分数做校准;
按类别和区间分别检查,再做整体调整。

公开文章不需要展开实现细节,但要明确原则:

三分类校准后,概率分布仍然必须合法。

不能让三类概率加起来超过或低于 100%。


十八、校准要不要分联赛?

很多时候,需要。

不同联赛环境差异很大。

一个模型在英超校准不错,不代表在另一联赛也校准。

例如:

某联赛平局率高;
某联赛总进球高;
某联赛主场优势强;
某联赛数据质量差;
某联赛强弱差距大。

如果所有联赛用同一个校准关系,可能会掩盖问题。

比较成熟的系统应该至少监控分联赛校准。

是否分联赛单独校准,要看样本量。

如果某联赛样本足够,可以考虑单独校准。

如果样本太少,单独校准可能过拟合。

这种情况下可以做分层策略:

大样本联赛单独校准;
小样本联赛使用总体校准或同类联赛校准;
数据不足时降低输出强度。


十九、校准要不要随时间更新?

需要监控,但不能频繁乱动。

因为足球环境会变化。

比如:

联赛进球环境变化;
补时变长;
强队优势下降;
平局率上升;
数据源变化;
模型更新。

这些都会影响校准。

所以校准关系也要定期检查。

但不要因为短期几十场表现变化就立刻重校准。

校准需要足够样本。

更合理的做法是:

定期监控校准曲线;
发现长期偏离后再更新;
更新后用独立测试集验证;
保留旧校准版本;
避免用最新少量样本过度修正。

校准本身也需要版本管理。


二十、校准和产品表达有什么关系?

概率校准直接影响产品表达。

如果模型未校准,经常把 60% 说成 80%,产品就会过度表达。

例如模型输出:

主胜:82%

产品可能写:

主队优势非常明显。

但如果校准后发现 82% 区间真实发生率只有 68%,那么表达就应该下降。

更合理的表达可能是:

主队胜面较高,但仍需关注平局风险。

校准后的概率才适合转成文字。

产品文字的强度应该来自校准后的概率,而不是原始模型概率。

这点非常重要。

否则模型越复杂,产品越容易误导用户。


二十一、校准和 EV 的关系

期望值公式是:

EV = p × O - 1

其中 p 是模型概率。

如果概率没校准,EV 就不可信。

假设模型输出:

p = 0.70
O = 1.60

EV:

EV = 0.70 × 1.60 - 1 = +0.12

看起来是正的。

但如果校准后真实概率更接近:

p = 0.60

那么:

EV = 0.60 × 1.60 - 1 = -0.04

正期望变成负期望。

所以,任何基于概率的价值判断,都必须建立在校准概率上。

未校准概率不能直接拿来算 EV。

这是非常重要的数学边界。


二十二、一个完整校准案例

假设一个 LightGBM 胜平负模型在测试集上表现如下。

主胜概率分桶:

预测区间      样本数    平均预测概率    实际主胜率
40%-50%       600      45%             46%
50%-60%       800      55%             54%
60%-70%       500      65%             61%
70%-80%       300      75%             64%
80%-90%       120      85%             67%

分析:

40%-60% 区间校准不错。
60%-70% 已经略高估。
70% 以上明显过度自信。
80%-90% 区间高估严重。

这说明模型高概率区间需要校准。

如果不校准,产品展示会把强队优势写得太强。

校准后,可能把原始 85% 的主胜概率调整到 68%-70% 左右。

这样概率更接近真实。

但要注意:

必须用验证集学习校准关系,再用测试集验证。

不能直接用测试集调。


二十三、概率校准最常见错误

错误一:只看命中率,不看校准

命中率高,不代表概率可信。

错误二:只看整体校准,不看平局

胜平负模型里,平局经常被低估。

错误三:样本太少就细分桶

每个桶样本不足,真实发生率会很不稳定。

错误四:用测试集做校准

导致评估虚高。

错误五:校准后不保证概率和为 1

三分类概率必须合法。

错误六:校准一次后长期不监控

足球环境会变化,校准也要持续检查。

错误七:把校准当成万能修复

如果模型本身没有预测能力,校准救不了。

错误八:用未校准概率计算 EV

这会制造虚假正期望。


二十四、如何判断一个模型校准是否合格?

可以用这份检查清单。

1. 是否按概率区间做分桶?
2. 每个桶样本量是否足够?
3. 模型平均预测概率是否接近真实发生率?
4. 是否单独检查主胜、平局、客胜?
5. 是否检查高概率区间是否过度自信?
6. 是否检查低概率事件是否被低估?
7. 是否分联赛检查校准?
8. 是否分时间段检查校准?
9. 是否用验证集做校准,而不是测试集?
10. 校准后是否重新评估 LogLoss?
11. 校准后是否重新评估 Brier Score?
12. 三分类校准后概率是否仍然相加为 1?
13. 校准关系是否随时间监控?
14. EV 是否使用校准后的概率?
15. 产品表达是否基于校准后的概率?

如果这些问题没有处理,模型概率就不能直接视为可信概率。


本章小结

概率校准回答的是一个非常关键的问题:

模型说 70%,长期真的有 70% 吗?

校准好的模型,预测概率和真实发生率接近。

校准差的模型,可能短期命中率不错,但概率数字不可信。

检查校准最常用的方法是分桶:

把预测概率按区间分组
统计每个区间的真实发生率
比较预测概率和真实发生率是否接近

如果模型预测 70%-80%,实际只有 60%左右,说明模型过度自信。

如果模型预测 20%,实际发生 35%,说明模型低估事件。

足球模型尤其要检查:

强队高概率区间是否过度自信;
平局概率是否被低估;
总进球高区间是否偏高;
不同联赛是否校准一致;
不同时间段是否发生漂移。

常见校准方法包括:

Platt Scaling
Isotonic Regression
分桶校准
分联赛校准

但校准必须使用验证集,不能用测试集调。

校准不是万能的。

它不能把没有预测能力的模型变成好模型。

但对于已有一定预测能力、只是概率偏激进或偏保守的模型,校准非常重要。

整个“足球预测模型数学基础”到这里就完成了。

这套数学基础的核心结论可以概括为一句话:

足球模型不是为了给确定答案,而是为了输出长期可信的概率;所有数学指标,最终都服务于这个目标。

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