返回博客

MuchSci-對話+智能體+編程|我讓 AI 寫了個競彩預測模型:240 場回測 + 5 輪實戰,結果讓我冷靜了

01 朋友天天曬紅單,我決定用數據說話 事情起因是同學群。上個月開始,有個老同學每天在群裡曬競彩紅單,兩天紅一天黑,紅的時候特別高調,黑的時候裝作沒看見。我問他整體賺了沒有,他回我一句「別算帳,算帳就沒意思了」。這話我熟——所有不肯算帳的事情,帳一般都不太好看。 我沒急著反駁他。正好,這是我手上 MuchSci「編程」功能

AI AgentAI 辦公助手智能體AI辦公助手辦公助手

01 朋友天天曬紅單,我決定用數據說話

事情起因是同學群組。上個月開始,有個老同學每天在群組裡曬競彩紅單,兩日紅一日黑,紅的時候特別高調,黑的時候裝作看不見。我問他總體賺了沒,他回我一句「別算帳,算帳就沒意思了」。這話我熟——所有不肯算帳的事情,帳一般都不太好看。

我沒急著反駁他。正好,這是我手上 MuchSci「編程」功能還沒正經測過的場景:讓 AI 寫一個像樣的賽事預測模型,用公開賽果回測,再紙上跟幾輪,看看「AI 預測足球」這件事的真實成色。數據是公開的,模型是教科書級的,結論不用猜,跑一遍就知道。

▲ 圖 1|把問題交給 MuchSci,把時間還給研究——這次我的「問題」是:一個泊松模型,到底能不能贏過亂猜

先把立場寫在最前面:這篇不教人買彩票,全程紙上模擬,我沒有花一分錢。這篇要回答的問題只有一個——AI 寫出來的預測模型,到底是個什麼水平。答案在第四節,不太體面,但很值錢。

02 讓 AI 寫個泊松模型:10 分鐘出第一版

數據用的是公開渠道能查到的英超 2025-26 賽果:每場一行,主隊、客隊、主隊入球、客隊入球。我把 CSV 丟進對話,要求寫得明確:用兩隊近 10 場的場均入球/失球算進攻/防守強度,推出各自的預期入球 λ,再用泊松分佈算出 0:0 到 6:6 每個比分的概率,匯總成勝、和、負三向概率。

10 分鐘出了第一版腳本,跑得挺快——然後我就發現它錯了。它把「主隊入球」和「客隊失球」當成兩個獨立資訊重複計了一次強度,λ 雙重計入,主勝概率全部飄在 70% 以上。我把口徑寫成註釋讓它重跑,第二版才正常。

▲ 圖 2|泊松模型的核心輸出:主隊預期入球 λ=1.8,最可能的單場入球數是 1 和 2;客隊 λ=1.1,最可能是 1。整場比賽每個比分的概率,就是這兩條分佈相乘算出來的

這個分佈有什麼用?把主隊入 k 球的概率和客隊入 j 球的概率相乘,就得到每一個比分的概率;再把所有主隊入球多的比分加起來,就是主勝概率。聽起來很粗糙——它確實粗糙,足球不是獨立事件的紅白球——但它是所有賽事模型的起點,足夠當這次實測的主角。

▲ 圖 3|模型對一場比賽的輸出:主勝 53%、和局 22%、客勝 25%。最扎心的是底部那行——市場賠率 1.88 隱含的主勝概率也是 53%,模型和市場想到一塊去了

模型能算出「誰更可能贏」,算不出「賠率有沒有給夠」——而後者才決定你能不能賺錢。

第三張圖是整個實測裡我最意外的一張。我以為模型算出來的概率會是獨家情報,結果它和市場賠率幾乎重合。賠率是全市場真金白銀投出來的概率,一個用入球/失球平均數搭起來的泊松模型能跟它對上大方向,說明模型「沒毛病」;但也說明,它知道的,市場早就知道了。

03 回測 240 場:比亂猜強,但沒強過市場

光看一場不算數。我讓 AI 加了個回測腳本:把 2025-26 賽季前 240 場按時間順序餵給模型——每場只用之前的歷史數據算 λ,輸出三向概率,取概率最高的一項當預測,跟真實賽果對答案。怕有運氣成分,同一套流程我讓它跑了三遍取平均:

▲ 圖 4|240 場回測:純隨機命中 33%(79 場),泊松模型 47%(113 場),市場賠率隱含 51%(122 場)。模型比亂猜強 14 個百分點——但離「能賺錢」還差著關鍵的一截

47% 這個數字怎麼讀?好消息:它明顯高於亂猜的 33%,說明模型確實從數據裡學到了東西。壞消息有兩層:一是離市場還差 4 個點——賠率裡集合了傷停、狀態、賽程動機這些我模型裡沒有的資訊;二是 47% 的命中配上競彩的賠率結構,大概率是虧的,第四節會用真實數據驗證。

回測之外,我讓它把每輪預測整理成一份報告,模擬實際使用的樣子,長這樣:

▲ 圖 5|每輪跑出來的預測報告(界面為示意,結論按回測與模擬記錄整理)

這個報告我最看重的是側欄那行小字:它只能看到賽果數據,看不到世界。足球比賽的結果裡藏著大量模型永遠拿不到的資訊——誰受傷了、誰在護級、誰下週要打歐洲賽事把主力歇了。市場賠率之所以難贏,就是因為這些東西全被買進價格裡了。

04 紙上實戰 5 輪:命中率 48%,收益 -7.8%

回測是歷史,實戰才是照妖鏡。規矩定好:每輪從模型輸出裡挑置信度最高的 5 場,每場紙上 10 元,按競彩當期賠率記帳,跟 5 輪共 25 場。不碰真錢,全按真實賠率算:

▲ 圖 6|5 輪紙上跟單的累計收益率:第 1 輪 +12% 飄了,第 3 輪連錯三場高賠直接砸到 -21%,最終收在 -7.8%。25 場命中 12 場(48%),錢是負的(示意記錄,賠率按當期官網)

過程比結果有意思。第 1 輪 3 中 1 小虧變盈利,帳面 +12%,我差點就把「模型靠譜」寫進標題了。然後是第 3 輪:三場 2.3 以上賠率的「高價值場次」全黑,一夜回到解放前。復盤帳本發現一個特別工整的規律——命中的全是 1.5 到 1.7 的低賠,虧掉的全是 2.3 以上的高賠。模型看對比賽的次數不少,可惜看對的那幾場,賠率都沒給夠。

這不是模型不行,是數學不行:競彩的賠率裡已經抽走了返還率,命中 48% 配上這個賠率結構,長期期望就是負的。我同學兩個月「看起來在紅」,把黑的日子算進去,大概率跟我這本帳同一個顏色。這也是我把這篇寫出來的真正原因——模型把「感覺」變成了「概率」,概率把幻想變成了帳本,帳本是冷的。

05 先說清楚:這幾個地方它真的幫不上忙

五輪跑完,把三個硬限制擺在檯面上。

① 它看不到新聞,只看得見賽果。模型的世界裡只有比分,沒有傷停、輪換、護級動機。5 輪裡兩次明顯的翻車,都是主力門將缺陣這種「賽前新聞一目了然、賽果表裡永遠沒有」的資訊。想補這一塊,得自己加數據源,工程量翻幾倍。

② 數據要自己找、自己洗。公開賽果好找,但口徑很亂:有的源把中立場算成主隊,盃賽和聯賽混在一起,加時算和局還是分勝負各說各話。第一版腳本就是在「客隊失球重複計入」這種口徑問題上翻的車。洗數據花的時間,比寫模型多。

③ 它給的是概率,不是答案。47% 命中意味著超過一半的場次模型是錯的。連對 5 場之後,接下來大概率是均值回歸,不是「手感來了」。把模型的輸出當成「今晚買哪場」的答案,是對它最嚴重的誤用——它只能告訴你一件事在多大比例上發生,不能告訴你這一次發不發生。

那這東西到底什麼時候值得用?結論直接放這裡:

✓ 值得用的場合:想系統練「數據分析 + 讓 AI 寫模型」的人——足球賽果數據公開、免費、樣本量大、答案馬上揭曉,是練回測方法的好題材。這篇裡用的泊松、回測、口徑核對,換到銷量預測、用戶留存上一樣能用。

✗ 不適合的場合:想靠它穩賺的人——模型不比市場聰明,賠率長期抽水,期望為負是數學不是觀點;以及想問「今晚買哪場」的人——這篇沒有答案,也不應該有。命中率和收益率是兩回事,這篇 48% 對 -7.8% 就是證據。

如果只給一句實際建議:把彩票當娛樂預算,把模型當練習題。這五輪我最大的收穫不是那本虧 7.8% 的帳,是我現在能一眼看出「某某 AI 預測勝率 90%」這類話術的問題出在哪——回測區間沒說、樣本量沒說、賠率結構沒說。數據素養這東西,練一次就值回票價。

合規與邊界聲明

1. 本文全程紙上模擬,未進行任何真實投注,文中金額為模擬記帳。

2. 文中模型、概率與「預測」均不構成任何投注建議;彩票長期回報期望為負,請把它當娛樂消費。

3. 未滿 18 歲不得購彩。理性購彩,量力而行。

賽果與賠率為公開渠道資訊整理,回測與跟單數據為示意呈現,模型輸出以實際腳本運行為準。功能描述以當期版本為準。

---

本文為個人使用流程記錄。競彩預測模型基於公開賽果數據構建,僅用於演示「數據 → 模型 → 回測」的分析方法,不構成任何投注建議或收益承諾;文中回測與實戰數據為示意呈現,全程紙上模擬、未真實投注。彩票長期回報期望為負,未滿 18 歲不得購彩,理性購彩、量力而行。功能描述以當期版本為準。

返回博客列表