第一步:数据,占工作的 70%
你需要多个赛季的比赛,包含最终比分、阵容、赛程,最重要的是每场的收盘赔率。没有历史赔率,你无法知道模型是否打败市场,而这是唯一重要的问题。
清理重复的球队名、腰斩的比赛和不同时区的日期。在 Gambeta,最初几个月的大部分错误来自数据,而不是模型。

每一次争球都是一个数据点。模型从不观看比赛:它看到的是你事先决定保存的那些行。
第二步:比赛前就存在的变量
经典陷阱是信息泄漏:使用只有比赛后才知道的数据,比如这场比赛本身的射正数。训练时模型看起来完美;上线后就崩塌。
有效变量:近期状态、之前比赛的预期进球、比赛间隔休息、主场优势、确认的缺阵,以及开盘赔率本身。在体育投注的机器学习里我们描述了模型所用的变量。
第三步:模型
起步不需要神经网络。逻辑回归或正则化良好的梯度提升,就能稳健地预测 1X2 或大小球概率。关键是输出必须是概率,而不是“赢或输”的标签。
每项运动训练一个模型。足球、网球、棒球和篮球结构不同:网球看发球得分,棒球看先发投手,篮球看缺阵。一个模型管所有,四项都学不好。
第四步:校准
校准好的模型,说 60% 时大约十次对六次。衡量方法是把预测按区间分组,与实际发生的比较。没有校准,与赔率的比较毫无意义,注码也会算错。

进或不进。校准的模型从成千上万次这样的投篮中学习;几百次只能学到噪音。
第五步:诚实的测试
留出最后一个赛季,直到最后才看。只在你的概率高于收盘赔率隐含概率时模拟下注,用平注。如果结果不是正的,无论准确率看起来多高,模型都不管用。
只在有优势时下注的逻辑就是价值投注,它把一个预测器变成一个投注工具。
第六步:公开一切
不公开记录的模型和推荐师没有区别。记录每条预测的概率、赔率和结果,并公开摆着。输的时候不舒服,但这是它赢的时候别人会信任的唯一方式。
如果这听起来工作量很大,确实如此:这就是我们在 Gambeta 每天做的事,并免费公开,让你不必从零开始。
常见问题
不会编程能训练体育投注 AI 吗?
用电子表格可以做到简单回归。要校准并用历史赔率测试,你需要 Python 或 R。
训练需要多少场比赛?
同一联赛的多个赛季。几百场比赛只能让模型学到噪音,学不到规律。
哪些数据必不可少?
结果、阵容、赛程和历史收盘赔率。没有赔率就无法知道是否打败市场。
像 ChatGPT 这样的通用 AI 能做这个吗?
它能写代码、讨论设计,但不能充当模型:它没有数据也没有校准。