我们意识到仅靠赔率不够的时刻
在构建预测模型大约六个月后,我们遇到了瓶颈。准确率还不错,但我们不断看到一些比赛,我们的模型忽略了任何足球迷都会考虑的明显因素。一支球队在十二天内进行第四场比赛。一个缺少三名主力的阵容。这些都是基本常识。
赔率很好地捕捉了市场情绪,但它们将大量背景信息压缩成一个数字。我们需要解压这些背景信息,让模型能够访问底层因素。
为什么xG成为我们第一个非赔率特征
预期进球(xG)衡量的是射门质量而非实际进球。一支创造了2.5个xG但只进了一球的球队正在创造好机会——他们只是运气不好。随着时间推移,xG往往比原始进球数更能预测未来的进球产出。
我们开始追踪滚动xG平均值——一支球队在过去五场比赛中创造和丢失了多少预期进球。主客场差异也很重要:有些球队在主场创造的机会明显更好。
棘手的部分是正确把握时间。你只能使用在做出预测时已经发生的比赛的xG数据。这听起来很明显,但这种时间泄露在体育建模中是一个常见错误。
伤病:比我们预期的更复杂
我们第一次尝试伤病特征时很粗糙:只是统计有多少球员受伤。效果不大。一支球队缺少第三门将和一名替补中场,与缺少队长和首发前锋完全不同。
更有效的方法:
- 位置权重:缺少首发门将或中锋比缺少替补边锋影响更大
- 上场时间:编码缺阵球员通常贡献的分钟数
- 时效性:伤病信息何时公开?这对模型完整性很重要
时间问题在这里更加关键。我们仔细标记伤病数据的时间戳,确保只使用比赛前公开的信息。
赛程拥挤:最简单但有效的特征
这几乎简单得令人尴尬,但它明显改善了我们的模型:
- 距上场比赛的天数
- 过去14天内的比赛场数
- 球队是否有周中欧战
在七天内进行第三场比赛的球队表现出可测量的下降,尤其是下半场。效果不是很大,但足够一致,可以利用。
我们还尝试了欧洲比赛的旅行距离特征,但信号比预期弱。仅休息天数就捕捉了大部分拥挤效应。
我们如何组合所有信息
通过实验形成的分层方法:
第一层 - 基线:赔率衍生的概率提供市场评估。这是我们的起点。
第二层 - 调整:当xG、伤病和赛程数据暗示市场可能遗漏了某些信息时,可以调整概率。
第三层 - 信心:赔率变动模式和博彩公司共识帮助我们衡量对预测应该有多大信心。
每一层都添加少量信息。没有一个是魔法——单靠xG不会让你成为预测专家。但系统地组合起来,它们给我们的模型提供了对每场比赛更丰富的视角。
我们学到了什么
- 1如果实施正确,简单特征往往优于复杂特征
- 2时间把控和数据卫生与特征本身同样重要
- 3每个数据源都增加递增价值——没有单一的"秘密信号"
- 4最好的特征是你能在逻辑上解释的
我们仍在尝试新的数据源,但这三个——xG、伤病和赛程——在多个赛季中持续证明了它们的价值。
*OddsFlow 提供 AI 驱动的体育分析,仅供教育和信息参考。*

