一、为什么整体 50% 掩盖了真实能力
因为 90% 的比赛都在 40--55% 这个区间------那里模型和市场几乎没差别,全是噪声。
真正的信号藏在头部。把它单独拎出来:
| 阈值 | 样本 | 命中率 |
|---|---|---|
| ≥60% | 574 | 65.7% |
| ≥65% | 306 | 74.5% |
| ≥70% | 122 | 77.9% |
换句话说:模型的价值不在"平均表现",而在"知道什么时候该闭嘴"。
二、校准:模型说自己 60%,实际中多少
这是评估模型最容易被忽略的一步。
| 模型自报 | 实际命中 | 偏差 |
|---|---|---|
| 30--40% | 37.3% | +7.3pp |
| 40--50% | 41.7% | +1.7pp |
| 50--60% | 50.6% | +0.6pp |
| 60--70% | 61.7% | +1.7pp |
| 70--80% | 76.5% | +6.5pp |
| 80--90% | 80.0% | 0.0pp |
校准得相当好。 而按排名分层却出现"头高尾低",说明问题不在概率标定,而在排序------模型对"哪些比赛更确定"的判断是有效的。
这两件事经常被混为一谈:
- 校准(calibration):说 60% 就中 60% 吗?
- 区分度(discrimination):能把"确定的"和"不确定的"分开吗?
我的模型是:校准还行,区分度很好。
三、一个更重要的发现:执行比预测更值钱
假设我已经有了一个 74% 命中率的子集。接下来决定收益的,不是再提高命中率,而是价格。
同一批票,在不同价格上成交:
| 价格来源 | 抽水(返还率) |
|---|---|
| 单一平台收盘价 | 6.72% |
| 全平台平均 | 7.11% |
| 全平台最高价 | 3.08% |
只是"多比几家",就白拿 3.6 个百分点。
换算到实际结果上(2026/27 样本外,模型置信≥65%):
| 成交价 | 投注数 | 回报率 |
|---|---|---|
| 收盘价 | 36 | +6.9% |
| 最高价 | 36 | +9.9% |
另一个赛季(n=191)复现:收盘 +3.4%,最高价 +5.8%。
两个独立赛季、两个不同样本,方向一致。
四、为什么"提高命中率"不如"改善执行"
用数据说话:
| 改进方向 | 成本 | 预期提升 |
|---|---|---|
| 训练数据翻倍 | 高(数月采集) | +1.33pp |
| 每季再多跑几万场模拟 | 中 | +0.5pp |
| 换一个更好的成交价 | 低(比价而已) | +2.5~3.6pp |
| 只打最高置信的 10% | 零成本 | 命中率 50%→74% |
第 3、4 条几乎不要钱,收益却是第 1 条的 2--3 倍。
这件事在别的领域也成立:当预测能力的边际收益递减时,执行层的边际收益反而更高。
五、但必须说清楚:样本还是太小
n=36、n=191,在这个量级上,标准误大约是 ±3.5%。
也就是说:+9.9% 的真实值可能在 +3% 到 +16% 之间,也可能本质上就是 0。
我见过太多把 30 个样本的回测当成"稳定盈利系统"的例子。诚实的做法是:
erlang
① 把阈值提前定死(我在写这一段时就固定为 ≥65%,之后不再调参)
② 只做前向验证,不回头改规则
③ 记录每笔的成交价与赛果,样本到 100 笔再看结论
④ 如果 100 笔后 ROI ≤ 0,承认策略无效并停止
第 4 条最难做到,但最重要。
六、这个方法可以迁移到别的地方
这套"分层 → 校准 → 执行价 → 前向验证"的框架,并不只适用于足球:
- 股票择时:整体胜率 52% 没用,要看最高置信 10% 的子集
- 推荐系统:整体 CTR 提升 0.5%,不如把 top 1% 的准确率从 60% 提到 80%
- 风控:不是"减少误判",而是"识别出哪 5% 的样本模型根本没把握"
核心思想只有一句:
一个模型最有价值的输出,不是"预测结果",而是"预测自己有多确定"。
七、数据与代码
本文所有数字来自:10,617 场真实比赛、8,771 场含收盘赔率、14 个联赛、3 个赛季。 实验脚本包含:时间切分回测、温度校准、置信度分层、ROI 计算。
本文为概率模型与评估方法的研究分享,所有数字为历史回测结果,不构成任何投注建议。历史数据不代表未来表现。