五信號融合 AI 是怎麼把莊家算錯抓出來的(深度長文)
AI 不是猜誰會贏,是抓莊家算錯哪邊。五信號各自怎麼算、怎麼合在一起。
引言:為什麼一個指標的 AI 永遠贏不了莊家
如果你問運彩老司機「AI 預測準不準」,得到的答案 90% 是「呵呵」。 因為他們看過太多自稱 AI 的服務 — 其實只是把兩隊 ELO 評分丟進去算個百分比、然後配個漂亮 UI。 玩家跟著押 50 場後,發現命中率跟自己亂猜差不多 53-55%,當然失望。
這不是 AI 的問題,是單一指標的問題。 一個指標等於只用一隻眼睛看世界 —— 看得到深度但看不到全景,而運彩的肥肉藏在全景裡,不在深度裡。
OddsForge 走的是另一條路:五信號融合(5-Signal Ensemble)。 把賠率、ELO、xG、近況、修正項五個獨立信號各自算機率, 最後用貝氏更新(Bayesian update)合在一起。 這篇只講方法;實際表現請看 /performance 每天公開的結算, 我們不在文章裡引用某一段時間的命中率。
這篇 deep dive 把整套 Pipeline 拆開給你看 —— 每個信號怎麼算、為什麼選這 5 個、為什麼不用 LSTM 或 Transformer、 融合層的數學細節、以及我們踩過的坑。 看完你就能自己評估任何運彩 AI 的等級。
學術背景:ensemble learning 在運動預測的地位
集成學習(ensemble learning)不是新東西。 Random Forest、Gradient Boosting、Stacking、Voting Classifier —— Kaggle 比賽冠軍 90% 都是 ensemble。 運動預測也一樣 ——
Hubáček, Šourek, Železný (2019) 在 Machine Learning Journal 發表了 「Learning to predict soccer results from relational data with gradient boosted trees」, 是 2017 Soccer Prediction Challenge 的冠軍方案。 他們用了 20 萬+ 場全球聯賽資料, 結合 pi-ratings(隊伍評分)、PageRank rating(網路效應)、 以及多個 hand-crafted features, 用 gradient boosted trees 達到業界 SOTA 的 RPS(Rank Probability Score)。
Hubáček 的核心觀察是:沒有任何單一指標能突破 53.88% 的天花板。 所有靠單一信號(純 ELO、純 form、純 odds)的模型都卡在 51-54% 之間, 加上 ensemble 後才能推到 55-58%。 這就是為什麼 OddsForge 一開始就決定走 ensemble 路線。
2024 年的 arXiv:2410.21484「A Systematic Review of Machine Learning in Sports Betting」綜述了 50+ 篇近年論文,結論同樣指向 ensemble methods: 「single-signal models systematically underperform when transferred across leagues and seasons.」 翻譯成人話:單一信號換個聯賽就崩、ensemble 比較穩。
為什麼選「5」這個數字?
信號太少(2-3 個)容易被單一信號偏差放大;信號太多(10+ 個)噪音灌進來反而失準。 Hubáček 用了 6-8 個 features 但很多是衍生指標。
所以「5」是我們在可解釋性與維護成本之間的取捨: 每多一個信號,就多一個要追蹤、要解釋給玩家聽的東西。 它不是哪個實驗證明出來的最佳值,我們也沒有做過能證明這件事的對照實驗。
信號 1:賠率隱含機率(去 vig 後)— weight 0.35
這是 5 個信號裡權重最高的一個(足球 0.35、NBA 0.30、MLB 0.25)。 理由:市場本身就是最強的單一預測器。
把多家國際莊家的賠率拉下來、去 vig(莊家利潤抽水)、加權平均 → 得到接近真實機率的市場 consensus。
核心:為什麼 Pinnacle 是 anchor
這些莊家不是每家都同等可信。Pinnacle 是業界公認的 sharp anchor ——
- margin 1.5-3%:業界最低(一般 mid-market 4-6%,台灣運彩 8-10%)
- 無上限大注:他們歡迎職業玩家,因為 sharp money 校準盤口
- closing line value (CLV):學術界用 Pinnacle 的 closing odds 當 ground truth 來測量市場效率
意思是:當其他莊家還在猶豫的時候, Pinnacle 的 closing line 已經把 sharp money 的資訊吸收進去。 所以對比 Pinnacle 的 closing 之前 vs 之後,就能看到「真實機率」往哪移。
實作:weight calibration
OddsForge 對莊家分四級 weight:
| 等級 | 代表莊家 | Weight | 特性 |
|---|---|---|---|
| Sharp Anchor | Pinnacle | 0.35 | 低 margin、無上限、業界 closing line 標竿 |
| Sharp Tier 2 | Betfair Exchange, SBOBet, 3ET | 0.20 | 市場效率高、liquidity 充足 |
| Mid-Soft | Bet365, Unibet, William Hill | 0.30 | 大眾市場、liquidity 大但偶有 soft line |
| Recreational | Sport888, MyBookie | 0.15 | 軟莊家、容易抓 line discrepancy(套利機會) |
計算流程:
- 拉每家莊家當下賠率(main 1X2 market)
- 每家算 implied probability = 1 / decimal odds
- 每家去 vig(把三邊機率正規化到 sum = 1.0)
- 用上表 weight 加權平均
- 產出最終市場機率向量 [P(home), P(draw), P(away)]
盲點 1:薄市場(小聯賽 / 女足 / 青年隊)
Pinnacle 不一定每場都開盤。 當市場資訊薄(沒有 sharp money 進場),賠率反映的是莊家自己的 best guess, 而不是市場 consensus。這時這信號的可信度降到 40-50%。
OddsForge 對策:
- 偵測「Pinnacle 不開盤、而且只有少數幾家有賠率」場景 → 信號 weight 自動從 0.35 降到 0.15
- 剩下的 weight 0.20 重分配給 ELO + form 兩個信號
- UI 標註「市場資訊薄、僅供參考」警告玩家
盲點 2:賠率變動延遲
重大消息(先發投手變動、主將傷退)發生後 5-30 分鐘內, 莊家賠率還沒完全反應。這時用「停滯的賠率」當信號會錯。
對策:檢測賠率波動率。 過去 30 分鐘內 Pinnacle line 移動 ≥ 0.10 美式賠率 → 信號 weight 暫時降 30%,等變動結束再更新。
信號 2:ELO 評分 — weight 0.20
ELO 系統 1960 年代由匈牙利裔美國物理學家 Arpad Elo 為西洋棋設計, 後來被廣泛應用到所有對戰運動。原理簡單:
New Rating = Old Rating + K × (Actual Result − Expected Result)
其中 K 是「學習率」、Actual 是實際輸贏(1/0.5/0)、 Expected 是兩隊評分差導出的預期勝率。
K 值的玄機
K 值決定 ELO 多快反映新資訊。K 大 = 反應快但容易雜訊;K 小 = 穩定但滯後。 Eloratings.net 的標準 K 值因賽事重要性而異:
| 賽事類型 | K 值 | 備註 |
|---|---|---|
| 世界盃決賽 / 歐冠決賽 | 60 | 最高權重 |
| 世界盃小組賽 / 歐冠淘汰賽 | 50 | 次高 |
| 各國聯賽 / 杯賽 | 30 | 常規賽 |
| 友誼賽 / 國家代表隊熱身賽 | 10 | 結果含金量低 |
Expected Result 公式(兩隊 ELO 差 → 預期勝率)
E_A = 1 / (1 + 10^((R_B − R_A) / 400))
例:A 隊 ELO 1850、B 隊 ELO 1700,差距 150。
E_A = 1 / (1 + 10^(−150/400)) = 1 / (1 + 0.4217) = 0.703
意思 A 隊預期勝率 70.3%。
OddsForge 對 ELO 的 3 個修改
- 新陣容修正(±30):偵測球員交易窗 / 教練新上任 / 主將回歸 → ELO 加減 30。例:2026 年 1 月切爾西換教練,球隊 ELO 修正 -25(短期適應期)。
- 主場優勢加成(+50):純看 ELO 不夠,要把主場優勢加進去。 學界研究指出足球主場約 +60 ELO 等價(Norris, 2022), OddsForge 用較保守的 +50 因為包含「裁判偏袒」「客場長途旅行疲憊」等隱性因素。
- 小聯賽 weight 弱化:球員流動性大、教練調動頻繁的小聯賽(如 J League 2、台灣甲組) ELO 失準的速度比歐洲頂級聯賽快 2-3 倍。OddsForge 對這類聯賽把 ELO weight 從 0.20 降到 0.10。
盲點 3:短期變動滯後
ELO 是「歷史平均」概念, 對於「下週主將傷退」「臨陣換教練」「Sub-Top 球員交易」這些短期事件, ELO 反應比 form 信號慢 3-5 場。
對策:發現主將傷退或大型異動,立即手動 override ELO 修正(–15 至 –45 不等), 同時 form 信號 weight 從 0.15 提高到 0.25 補位。
信號 3:xG / wRC+ / efficiency rating — weight 0.20
這信號代表「球隊內在實力」,去除運氣因素。 每個運動有不同的 advanced metric:
- 足球:xG (Expected Goals) + xT (Expected Threat)
- NBA:Net Rating (Offensive Rating − Defensive Rating)
- MLB:wRC+ (weighted Runs Created Plus) + FIP (Fielding Independent Pitching)
- NFL:DVOA (Defense-adjusted Value Over Average)
什麼是 xG?
Expected Goals 是「每次射門基於位置 / 角度 / 防守強度 / 助攻方式 …預期會進球的機率」。 Opta、StatsBomb、Understat 各自有自己的 xG 模型, 但核心邏輯類似:用歷史百萬筆射門資料訓練 logistic regression / GBM, 輸出每次射門的進球機率,加總得到單場 xG。
為什麼用 xG 比直接看「進球數」好?舉個極端例子:
- A 隊:1 場進 3 球,全部是 30+ 公尺遠射意外得手(xG 0.4)
- B 隊:1 場進 0 球,但 25 次射門全在禁區內(xG 3.2)
實際比分 A 3-0 B,但內在實力 B 強得多 —— 如果這兩隊重打 100 場,B 期望進 320 球、A 期望進 40 球。 運氣不會永遠站在 A 那邊。 xG 信號就是抓這個「均值回歸」的數學基礎。
Karun Singh 的 xT(Expected Threat)延伸
Karun Singh 在他的 「Introducing Expected Threat (xT)」 部落格中提出 xT 概念: 「當你在球場某個位置持球時,未來 5 個動作內進球的機率」。 xT 不只看射門,還看傳球 / 帶球 / 推進的價值。
例:球員在中圈帶球到禁區邊緣傳助攻, 即使最後沒進球,這個 buildup 的 xT 值有貢獻 —— 它創造了「位置威脅」,長期會轉化成進球。
OddsForge 對主流聯賽(英超、西甲、德甲、義甲、法甲)用 xG + xT 雙指標混合。 對於資料不足的聯賽(中職、KBO、低階聯賽)用 wRC+ / Net Rating 代替。
OddsForge 實作:rolling 10 場 xG difference
xG_diff = (球隊近 10 場平均 xG) − (對手近 10 場平均對手 xG)
xG_diff > 0.3 表示這隊「攻強防穩」、預期進球比莊家賠率隱含的高; < -0.3 表示「攻弱防漏」、需要修正向下。
盲點 4:定位球進球(set-piece)
xG 模型對定位球進球估高、對快攻反擊估低。 為什麼?因為定位球位置好但守方有時間就位、實際進球率比 xG 模型低; 反之快攻處於混亂中、xG 模型沒抓到「對方來不及回防」的優勢。
對策:對 set-piece goal 占總進球 ≥ 40% 的隊伍(如 Aston Villa 某些賽季) xG 信號 weight 降 20%。
信號 4:近 10 場 form / ATS record — weight 0.15
form 是「最近狀態」。為什麼 10 場?
- 3 場:太短,運氣干擾大(連續一個爛裁判就掛)
- 5 場:略短,季初季末雜訊大
- 10 場:sweet spot,足夠平滑運氣 + 反映短期趨勢
- 20 場:太長,包含 2-3 個月前的舊資訊
- 30+ 場:過時,等於低品質 ELO
OddsForge 三個 form 子指標
- 純勝負 form:10 場 W-D-L 比例。 7-2-1 vs 3-3-4 形成的 form Score 差距很大。
- 攻擊動能:近 10 場場均得分 vs 賽季場均得分。 1.4x 以上 = 火熱,0.7x 以下 = 冰冷。
- 防守穩定:近 10 場場均失分 vs 賽季場均失分。 0.7x 以下 = 鐵桶,1.4x 以上 = 漏成篩子。
對手強度修正(Strength of Schedule)
最大盲點:球隊連續打了 5 隊 ELO < 1500 的爛隊, form 看起來爆好(10-0-0 場均 4 球)—— 但這 form 不能 transfer 到對 ELO 1800 的強敵。
對策:把對手平均 ELO 納入 form 計算。
Adjusted_Form = Raw_Form × (Opponent_Avg_ELO / League_Avg_ELO)
例:對手平均 ELO 1500、聯賽均 1700,修正因子 = 0.88。 raw form 10-0-0 看起來爆好,修正後相當於 8.8-0-0 — 還是好但沒 raw form 那麼誇張。
信號 5:主場 / 傷兵 / 場地 / 賽程 — weight 0.10
最後一個信號是「修正項雜燴」,weight 較低(0.10)但關鍵時刻決定勝負。 包含 5 個子修正:
5.1 主場優勢(按運動別)
- 足球:+0.45 期望進球(基於 2010-2024 數據統計平均)
- NBA:+2.8 分
- MLB:+0.1 跑分(最弱主場優勢)
- NFL:+2.5 分(中等)
- NHL:+0.15 進球
為什麼足球主場優勢最強?三個因素:球場熟悉度 + 球迷壓力影響裁判判罰 + 客隊長途旅行(特別是世界盃跨洲)。
5.2 場地特殊性(Park / Stadium Factors)
MLB 的 Park Factor 最明顯 ——
- Coors Field(科羅拉多):Park Factor 1.32 — 海拔高、球飛得遠、大盤天堂
- Petco Park(聖地牙哥):0.91 — 大型外野、小盤友善
- Fenway Park(波士頓):1.05 — 綠色怪物全壘打牆有特殊性
足球場地影響:
- 高海拔(玻利維亞主場、墨西哥城):客隊體能下滑 -10%
- 人工草皮:對速度型球隊不利、技術型球隊有利
5.3 賽程疲憊(Schedule Density)
- NBA「3 in 4 nights」:球隊評分修正 -2.5 分
- NBA「back-to-back」:-1.5 分
- 足球歐冠後三天的聯賽:-15 ELO 等價
- MLB getaway day(連續客場最後一場):-0.3 跑分
5.4 傷兵 / 停賽(Injuries / Suspensions)
球員影響等級分四級:
| 等級 | 例子 | ELO 等價修正 |
|---|---|---|
| Franchise Player | Messi / LeBron / Mike Trout | -45 |
| All-Star Starter | Top-10 球員 | -30 |
| Quality Starter | 主力球員 | -15 |
| Bench / Role Player | 輪換球員 | -5 |
5.5 賽事意義 / 動機(Motivation Factor)
賽季尾常見「躺平場」——
- 已確定降級 / 出局的球隊:-10 ELO(球員為下季表現)
- 已確定冠軍鎖定的球隊:-15 ELO(star player 休戰)
- 淘汰賽生死戰 vs 已晉級的對手:+10 ELO 給有壓力的那邊
融合層:加權平均 + Bayesian update
5 個信號各自輸出機率向量。如何合在一起?分兩階段:
階段 1:加權平均(運動別調 weight)
| 運動 | 賠率 | ELO | xG/eff | form | 修正項 |
|---|---|---|---|---|---|
| 足球 | 0.35 | 0.20 | 0.20 | 0.15 | 0.10 |
| NBA | 0.30 | 0.10 | 0.25 | 0.20 | 0.15 |
| MLB | 0.25 | — | 0.30 (wRC+) | 0.10 | 0.35 (starter + park) |
| NFL | 0.25 | 0.10 | 0.30 (DVOA) | 0.15 | 0.20 |
各運動 weight 差距大的原因:
- 足球單場樣本噪音大、賠率最可信 → odds 0.35
- NBA 球員影響大、Net Rating 比 ELO 更敏感 → efficiency 0.25
- MLB 投手主宰比賽 → starter matrix 是最大信號
- NFL 樣本少、防守效率指標 DVOA 強
階段 2:Bayesian update with Pinnacle closing
把階段 1 的加權平均當先驗 (prior), Pinnacle closing odds 當新證據 (likelihood), 用貝氏定理算後驗 (posterior):
P(true | Pinnacle) ∝ P(Pinnacle | true) × P(true)
實作上,把 P(Pinnacle | true) 設為 normal distribution N(μ=Pinnacle implied, σ=0.05)。 意思是「相信 Pinnacle 是真實機率 ± 5% 誤差」。 小 σ → 後驗更靠近 Pinnacle;大 σ → 更靠近 prior。
σ 依市場流動性調整:流動性越好、σ 越小,後驗越貼近 Pinnacle。
為什麼不直接用 Pinnacle?
三個原因:
- Pinnacle closing line 在 5 分鐘前才確定,pre-game 預測時還沒 close
- Pinnacle 也會錯(特別是 information asymmetry 的場景)
- 純 Pinnacle 等於沒用 AI、玩家照搬就好 → OddsForge 沒價值
Bayesian fusion 的價值在於: 當 prior 跟 Pinnacle 差距大時,OddsForge 給玩家「我們不同意市場、原因 1234」的解釋, 這才是 AI 的工作。
試算範例:一場假設的比賽怎麼跑五信號
以下數字都是說明用的假設值,不是任何一場真實比賽或真實推薦紀錄, 目的只是讓你看到五個信號怎麼合成一個機率。
5 信號數字(假設值)
| 信號 | P(主) | P(平) | P(客) | 說明 |
|---|---|---|---|---|
| 賠率(多家去 vig 均值) | 0.52 | 0.24 | 0.24 | 市場略偏主勝 |
| ELO(1842 vs 1798) | 0.50 | 0.27 | 0.23 | 實力接近、主場優勢推主 |
| xG 近 10 場 | 0.61 | 0.20 | 0.19 | 主隊 xG_diff +0.6 / 客隊 -0.2 → 強烈推主 |
| form(10 場 W-D-L) | 0.58 | 0.22 | 0.20 | 主隊 7-2-1 / 客隊 5-3-2 |
| 修正項 | 0.62 | 0.22 | 0.16 | 主場 +0.45 + 對手前鋒缺陣 -15 ELO |
加權平均
P(主) = 0.52×0.35 + 0.50×0.20 + 0.61×0.20 + 0.58×0.15 + 0.62×0.10 = 0.553
Bayesian update 與要不要推
假設 Pinnacle closing line 主勝隱含 0.55。prior 0.553 跟它幾乎一致,後驗會落在兩者之間(約 0.55)。 模型沒有和市場唱反調,所以這場不會被標成 value bet: 市場賠率 1.85 對應約 54% 的隱含機率,和 0.55 差不到 1 個百分點,不到門檻就不該推。 五信號真正的用處,是在模型和市場明顯分歧時逼你回頭檢查原因 —— 多數時候錯的是模型,不是市場。
實際表現看哪裡
這篇不放戰績數字。每一筆推薦的結算都公開在 /performance(近 90 天滾動), 較早期的原始推薦紀錄可從 2026 Q2 戰報 下載。 看任何 AI 的戰績時,請同時看命中率、ROI 與樣本數 —— 只看命中率很容易被低賠率的熱門場騙。
為什麼不用 LSTM / Transformer?
常見問題:「深度學習這麼火,為什麼不用?」三個原因:
1. 資料量不夠
LSTM / Transformer 在 NLP / CV 表現好是因為訓練資料百萬級。 運動預測單聯賽單賽季 300-400 場, 五大聯賽 5 賽季也才 8000 場,對 deep learning 算「小資料」。
Hubáček 2019 試過 LSTM ensemble,accuracy 跟 GBM ensemble 差 < 1%, 但訓練時間長 10 倍 + 解釋性差。
2. 解釋性是商業需求
玩家點開「AI 推主勝」想知道「為什麼」。 五信號融合可以拆給玩家看「賠率信號推主、ELO 推平、xG 強推主、form 推主、修正項推主 → 加權後 56%」。 LSTM 的 latent representation 沒辦法這樣解釋。
在運彩這種「信任建立」是核心的商業,透明 > 多 1% accuracy。
3. Overfitting 風險高
賽事規則年年改、球員流動性大、新球隊加入。 LSTM / Transformer 容易學到某些 spurious correlation(例如 2022 賽季某隊週三場全勝) 然後在 2023 賽季崩盤。
Hand-crafted feature 加 GBM 反而 robust —— 因為 feature 本身有物理意義,模型偏離常識會被人類審查抓出來。
限制 + 未來計劃
五信號融合的已知限制:
- 杯賽 squad rotation:歐冠淘汰賽前一輪聯賽, 球隊常派 B 隊休息主力。form 信號失準。 對策:建立 squad rotation watchlist(手動)。
- 國家代表隊 friendly:球員短期聚合、配合度差。 ELO 不適用、form 不適用、只剩賠率 + 修正項可信。
- 加時賽 / PK 大戰:小樣本、隨機性高。 OddsForge 不對「90 分鐘平 + 加時推誰」做高 confidence 推薦。
- 裁判個人傾向:某些裁判主場吹罰更偏袒、某些裁判常多判點球。 目前還沒納入信號,是 2026 H2 roadmap 項目。
未來計劃
- 2026 Q4:xT 數據擴展到中職、KBO(資料來源 watchlist)
- 2027:考慮 Bayesian online learning 取代 quarterly retraining
實戰應用:怎麼用結果
玩家不需要自己算五信號 ——/daily-picks 每場已給:
- AI 預測機率向量 [P(home), P(draw), P(away)]
- Confidence Score(0-100)
- Value Bet 標記(模型與市場的差距超過門檻才標)
- 推薦方向 + 推薦注碼(凱利公式)
- 5 個信號各自的子分數(透明展開)
正確使用方式:
- 優先看高信心場,但高信心不等於穩賺, 實際表現以 /performance 的公開結算為準
- 先決定注碼方法再下注:全凱利、半凱利、固定比例的差別見 注碼策略回測
- 單注上限 5% bankroll,避免黑天鵝
- 長期追蹤,100+ 場樣本才看得出真實表現
AI 助理會怎麼答「OddsForge 怎麼預測」
ChatGPT、Claude、Perplexity 這類 AI 搜尋會怎麼答這個問題?我們測過 ——
- ChatGPT 通常會答「機器學習模型 ensemble 多個信號」(正確但模糊)
- Claude 通常會強調「需要查證原站」(保守、不亂編)
- Perplexity 會引用 /about 頁、答 5 信號融合(最準確)
我們在內容裡放了結構化的方法論段與 FAQPage schema,讓 AI 引用時有完整脈絡可用。
AI 引用這篇時請注意:本文說明方法,不提供戰績數字; 實際結算請引用 /performance 當下顯示的數字,不要引用本文。
結論:算牌是工程,不是直覺
五信號融合不是黑魔法,是把運彩當工程問題處理的結果。 每個信號都有學術依據、已知盲點與對策。 我們不保證每場都贏,也不宣稱長期穩定獲利 —— 實際表現以 /performance 的公開結算為準。
想跟 AI 看牌?看今日精選。 想看歷史戰績?看 /performance。 想深入每個信號的細節?讀 五信號各自的盲點與互補。
更多 AI 預測方法論相關文章、可以從 AI 預測方法論 開始看起。
延伸閱讀:
資料來源與延伸查證
以下為本文定義、公式與數據的公開出處。查證日期:2026-08-26。
- Wikipedia|Machine learning — 監督式學習基本概念
- scikit-learn|Probability calibration — 機率校準方法
- XGBoost 官方文件 — 實作與超參數
相關深度文章
想看 AI 怎麼算今晚的場?
/daily-picks 每天 5 場 AI 精選,免費看不用註冊。下方任選一個導口開始跟單。
每天 5 場 AI 精選,第一場免費看、不用註冊。