关于量化赛马
我们是谁
我们是一群拥有数学及数据分析背景的大学生,因为共同希望把量化方法应用到现实世界问题中而走到一起。
受到 Bill Benter 等先行者启发,我们持续探索如何利用统计模型与数据驱动的方法分析赛马,尤其聚焦于香港赛马。
这个网站是我们分享分析结果、观察和预测的平台,同时也是一个与其他对量化建模、赛马分析及概率思维有共同兴趣的人交流想法的空间。
随着时间推进,我们可能会加入更多功能,例如在模型输出达到某些统计门槛时提供可选通知。这些更新仅供信息与互动用途。你也可以订阅我们的电子通讯,以获取新功能、分析观点及更新消息。
我们的目标是在公开讨论与社群反馈中持续学习、实验,并逐步优化模型。
我们如何运作
我们在每个赛日都会运行两个预测模型。
量化评级模型使用一种名为 XGBoost 的算法选马。它属于梯度提升决策树模型。你可以这样理解:它不是用一条很大的简单规则,而是建立很多小型的 if-then 规则,也就是决策树。每一棵树本身都不算完美,但 XGBoost 会按顺序逐棵训练,而每一棵新树都专注修正前面模型犯下的错误。经过足够轮次后,整体组合就会成为一个相当强的预测器。
对于每匹参赛马,我们都会把一组来自赛事排位表及数据库的输入特征送入模型。大部分信号来自我们训练时使用的核心赛马因素,包括当前赛事条件,例如班次、途程、档位和负磅;马匹过往出赛形成的近期表现特征,例如名次、落后距离、距离上仗日数,以及各类走位变化和步速形态摘要;再加上马房与骑师实力的代理指标,例如练马师与骑师过去 365 日的胜出率、入位率和出赛次数。配备变动指标则作为额外的二元提示,在某些情况下提供边际帮助。
模型输出的是一个代表该马匹跑入前三名概率的数值,我们称之为 p_top3。当模型为该场每匹马都算出 p_top3 之后,所谓的选择其实就是把预测 p_top3 由高到低排序。我们通常会在网站上分享每场前四名。
另一个模型是重点 W/Q 模型。生产用的重点 W/Q 设定只有一个核心目的:不只是找出最有可能胜出的马,而是找出赔率错得够多、可能值得下注的情况。
它从市场开始,因为市场本身已经包含大量信息。我们会根据即时独赢赔率计算出市场胜出概率。大致上来说,赔率越低,代表隐含概率越高。如果我们只跟着这一点走,基本上就只是复制市场共识,而在计入抽水后这通常不具盈利性。因此,生产 W 模型加入了第二种观点:它使用 LightGBM 模型,根据我们由赛马历史资料建立的赛事与马匹特征,估算市场对每匹马是高估还是低估。
这就是 overlay 发挥作用的地方。Overlay 本质上就是我们的价值指标。它衡量市场定价与模型认为马匹真实概率之间的差距。当 overlay 为正时,代表这匹马看起来比赔率所暗示的更值得支持,也就是可能被低估。当 overlay 接近零或为负时,代表赔率已经大致反映实力,甚至可能过于乐观。
对每一场赛事,我们的算法都会为每匹马评分,并选出 top1,也就是在胜出评分函数下最好的那匹马。之后,是否下注的判断会刻意保持简单而严格:只有当 top1 的 overlay 高于门槛 x 时,我们才会把该场列为独赢投注。如果 top1 的 overlay 不大于 x,我们就视为没有优势而跳过该场,即使该马看起来很强也一样,因为光是强并不足够,我们需要的是错价。
我们的连赢选择建立在这个基础之上。连赢的核心是找出一对能以任何次序跑入前二的马匹,因此我们不会重新从零开始解整场赛事,而是采用一种相当实用的 anchor 方法。连赢模型是一个用作排序的 LightGBM 模型,也就是 LambdaRank,用来为配对马匹排序。我们会把重点 W 的 top1 作为 anchor,也就是我们认为在价值调整后最值得支持的主胆,再由 Q ranker 在其余马匹中选出两匹最佳配脚。最终输出就是两个重点连赢组合:anchor 加 partner2,以及 anchor 加 partner3。
所以整个生产系统本质上是以价值优先。最关键的概念就是 overlay。它是我们决定是否下注的原因,而一场赛事只有在 W 首选的 overlay 高于门槛 x 时,才会真正成为我们认为值得下注的场次。