關於量化賽馬
我們是誰
我們是一群擁有數學及數據分析背景的大學生,因共同希望把量化方法應用到真實世界問題上而走在一起。
受到 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 時,才會真正成為我們認為值得下注的場次。