我們意識到僅靠賠率不夠的時刻
在構建預測模型大約六個月後,我們遇到了瓶頸。準確率還不錯,但我們不斷看到一些比賽,我們的模型忽略了任何足球迷都會考慮的明顯因素。一支球隊在十二天內進行第四場比賽。一個缺少三名主力的陣容。這些都是基本常識。
賠率很好地捕捉了市場情緒,但它們將大量背景資訊壓縮成一個數字。我們需要解壓這些背景資訊,讓模型能夠訪問底層因素。
為什麼xG成為我們第一個非賠率特徵
預期進球(xG)衡量的是射門質量而非實際進球。一支創造了2.5個xG但只進了一球的球隊正在創造好機會——他們只是運氣不好。隨著時間推移,xG往往比原始進球數更能預測未來的進球產出。
我們開始追蹤滾動xG平均值——一支球隊在過去五場比賽中創造和丟失了多少預期進球。主客場差異也很重要:有些球隊在主場創造的機會明顯更好。
棘手的部分是正確把握時間。你只能使用在做出預測時已經發生的比賽的xG數據。這聽起來很明顯,但這種時間洩露在體育建模中是一個常見錯誤。
傷病:比我們預期的更複雜
我們第一次嘗試傷病特徵時很粗糙:只是統計有多少球員受傷。效果不大。一支球隊缺少第三門將和一名替補中場,與缺少隊長和首發前鋒完全不同。
更有效的方法:
- 位置權重:缺少首發門將或中鋒比缺少替補邊鋒影響更大
- 上場時間:編碼缺陣球員通常貢獻的分鐘數
- 時效性:傷病資訊何時公開?這對模型完整性很重要
時間問題在這裡更加關鍵。我們仔細標記傷病數據的時間戳,確保只使用比賽前公開的資訊。
賽程擁擠:最簡單但有效的特徵
這幾乎簡單得令人尷尬,但它明顯改善了我們的模型:
- 距上場比賽的天數
- 過去14天內的比賽場數
- 球隊是否有週中歐戰
在七天內進行第三場比賽的球隊表現出可測量的下降,尤其是下半場。效果不是很大,但足夠一致,可以利用。
我們還嘗試了歐洲比賽的旅行距離特徵,但信號比預期弱。僅休息天數就捕捉了大部分擁擠效應。
我們如何組合所有資訊
通過實驗形成的分層方法:
第一層 - 基線:賠率衍生的機率提供市場評估。這是我們的起點。
第二層 - 調整:當xG、傷病和賽程數據暗示市場可能遺漏了某些資訊時,可以調整機率。
第三層 - 信心:賠率變動模式和博彩公司共識幫助我們衡量對預測應該有多大信心。
每一層都添加少量資訊。沒有一個是魔法——單靠xG不會讓你成為預測專家。但系統地組合起來,它們給我們的模型提供了對每場比賽更豐富的視角。
我們學到了什麼
- 1如果實施正確,簡單特徵往往優於複雜特徵
- 2時間把控和數據衛生與特徵本身同樣重要
- 3每個數據源都增加遞增價值——沒有單一的「秘密信號」
- 4最好的特徵是你能在邏輯上解釋的
我們仍在嘗試新的數據源,但這三個——xG、傷病和賽程——在多個賽季中持續證明了它們的價值。
*OddsFlow 提供 AI 驅動的體育分析,僅供教育和資訊參考。*

