AI教你世界盃足彩怎麼買(含預測)

AI教你世界盃足彩怎麼買(含預測)

小賭怡情,大賭傷身,佛系看球!

寫在前面

AI教你世界盃足彩怎麼買(含預測)

四年一度的世界盃又來了,作為沒什麼時間看球的碼農,跟大家一樣,靠買買足彩給自己點看球動力和樂趣,然而總是買錯球隊,面對各種賠率也不知道怎麼買才划算,足彩是不是碰大運的?如何提高自己的預測水平,成為預言帝,升職加薪迎娶白富美走上人生巔峰?

本文采用機器學習方法,試圖通過特定指標進行訓練,對世界盃剩下的比賽勝負平做預測,並判斷足彩給出的賠率是否值得買,以贏得博弈遊戲的勝利。選取的數據量較少,僅提供一種思路。

以下為我的程序 6.28 日的預測結果(第二列為主隊獲勝概率,0~1):

AI教你世界盃足彩怎麼買(含預測)

7 月 2 日以後預測(不斷更新中):

AI教你世界盃足彩怎麼買(含預測)

本文主要寫給跟我一樣對機器學習的實際應用感興趣的,但沒有入門的小白程序員。初步嘗試,拋磚引玉,如有大牛看出計算方法和數據的問題,歡迎指點討論。字數較多,詳細研究推薦在 web 端觀看。

本文基於以下假設:

  1. 足彩靠服務費賺錢,選擇的場次不存在假球因素
  2. 你的資金規模足以支撐長期買足彩

作為簡化,不考慮幾場組合串、讓球勝平負、大小球、比分、進球數之類的場景。只考慮勝平負情況及賠率因素。本文不討論莊家如何通過調整賠率和雙方下注額獲利,只討論下注用戶如何盈利。

機器學習的一般步驟: 定義問題、數據預處理、特徵工程、機器學習建模及訓練、模型應用。為了定義問題,說清楚為什麼要解決這個問題,我們首先需要先學習些基本概率賠率知識。

概率賠率基本知識

我們用初中數學知識來學習 EV 知識,並繞過兩個常見的賭場陷阱。

賠率陷阱

我們先來看一個拋硬幣的場景,假設正反面出現概率就是 50%,你每次需要投入 1 元,你贏了給你 1.8 元( 即賠率 1.8 ),輸了就沒有,這個遊戲你應該玩嗎?

這就要引入 EV(期望值)公式了:

EV = 盈利×獲勝率 - 損失×失敗率 ,EV 是每回合遊戲你的平均盈利 / 虧損值。EV 為正,長期來看你是盈利的,EV 為負,長期看虧損。

具體到這個例子 就是 EV = (1.8-1)×0.5 - 1×0.5 = - 0.1 , 平均來說,你每輪會虧損 0.1 元,所以你不應該玩這個。 更直觀點,你玩了兩輪,第一輪贏,得到 0.8 元,第二輪輸,失去 1 元,所以兩輪是 -0.2 元,平均就是 -0.1 元 / 輪。

賭場會有各種賠率陷阱,套用這個公式大體上都能識別出來,賭場就是靠這些賠率陷阱有了微弱的優勢來盈利的,例如百家樂賭場優勢是 1.2%,21 點賭場優勢最小(0.58%),長期來看都是負 EV。即使真有正 EV 的遊戲,也會因為賭場龐大的資金量和你不對等的小資金量導致你在某次小概率事件裡破產,所以理性看待,這裡只做數學分析。

賭徒謬誤陷阱

賭徒謬誤大意是指將前後相互獨立的隨機事件當成有關聯的事件,例如拋硬幣時,無論拋幾次,任意兩次之間都是相互獨立的,並不相互產生影響。道理雖簡單易懂,但有時仍會糊塗。比如,當你連拋了 5 次正面時,到了第 6 次,你可能會認為這次正面出現的概率會更小了(< 1/2),反面出現的概率會更大(> 1/2)。

賭場中著名的輸後加倍下注系統(Martingale)便是利用此心態的實例:賭徒第一次下注 1 元,如輸了則下注 2 元,再輸則變成 4 元,如此類推,直到贏出為止。賭徒誤以為在連續輸了多次之後,勝出的概率會變大,所以願意加倍又加倍地下注,殊不知其實概率是不變的,賭場的遊戲機沒有記憶,不會因為你輸了就給你更多勝出的機會。

這時候就要用到上文的 EV 公式,某次的成功並不改變後果,你的期望值沒有變,怎麼做這種倍數努力都是沒用的。 而且下注都有上限,如果你的資金無窮大且允許你下注無窮大,那麼加倍下注確實能贏。可惜現實裡做不到,小概率事件會把你弄的傾家蕩產 TT。

反等價鞅法則、凱利公式感興趣的可以研究下,這裡不再展開。我們只要知道正 EV 情況下我們才應該買足彩就好。

足彩賠率及返還率推導

AI教你世界盃足彩怎麼買(含預測)

買足彩如何獲利的呢?

根據之前的賠率知識,當計算出我們獲勝的勝率,再結合足彩給出的賠率,我們認為獲勝時候 EV 為正,那麼就可以下注。而不是說看賠率高就無腦以小博大,那樣還是在賭博。

足彩的賠率又是怎麼計算出來的呢?其實是根據勝率和返還率倒推的。

首先需要了解返還率這個指標 。一場比賽 假設 W、D、L 各代表主勝、平賠、客勝的賠率,P 為主勝的概率, 假設我們投入 1 元,在 0EV 狀況下有:

(W-1) × 1 × P - 1× (1-P) = 0

W-1 為盈利, 1 為輸的時候的虧損。那麼 求解方程 P = 1/W , 同理 平的概率是 1/D , 客勝的概率是 1/L ,加起來是 100%。

在沒有干預的情況下: 返還金額 / 投注金額 = 1 /(1/W + 1/D + 1/L ) = 100%可是足彩或者博彩公司是要盈利的,那麼他們就會從總投注資金裡抽取一部分, 於是返還金額就

例如勝場,賭場估計的概率就是 1/W×返還率 。 返還率 也可以用1 /(1/W + 1/D + 1/L ) = 1/ ( (W×D+W×L+D×L) / (W×D×L)) = (W×D×L) / (W×D+W×L+D×L) 計算,更方便。

於是你看到開出的勝平負賠率 ,就可以算出勝平負的概率和足彩的返還率了 。例如勝 2.34 平 3.05 負 2.80,返還率為 (W×D×L) / (W×D+W×L+D×L) = 90% 博彩公司對該項比賽的概率估計為主隊勝 0.9/2.34 =0.384=38.4% 。 實際預算的時候是先有勝負概率再出賠率的,博彩公司根據各種因素指標,計算出了主隊勝率, 然後主隊的賠率就有了: W = 返還率 / 勝率 。 平和負的計算方法也是類似。

我們如何獲勝呢?只能假設博彩公司概率估低,給出的賠率高了,這樣套用 EV 公式 EV = (2.34-1) ×P - (1-P) >0 , 即 P >1/W= 42.735% , 即 足彩告訴我們他們計算主場勝率是 38.4%,而我們認為主隊勝率大於 42.735% 時候就可以下注了 ,這時我們有微弱的優勢,而且自行分析概率後就不容易被誤導 ^^ 大家可以自行推倒二串一、三串一這種是否划算,不過早期比如提前幾天的時候因為局勢不明,是有可能有比較高的賠率。

定義問題,特徵選取,數據抓取

繞了一大圈,其實簡單來說,我們要做的就是自行計算勝平負的概率,然後套用 EV 公式看根據賠率投注是否划算。

這個問題抽象下,是一個預測類的問題。如果想要預測目標變量的值,可以選擇監督學習算法,否則可以選擇無監督算法。所以這個問題可以歸類認為是機器學習的監督學習,可以用線性迴歸去解決這類問題。

簡單地講,瀏覽一些數據網站,我們可以選定一些特徵和歷史比賽結果樣本,作為多元一次方程組去求解, 即 aX+bY+cZ = R 。 我們要做的就是求解參數 a、b、c。這種方法在機器學習裡就叫做多變量線性迴歸,有通用的解法。(PS:如果當年早知道,就可以順利解決 AppStore 排名預測問題了)

特徵選取:

根據某數據網站數據,這裡選擇主隊獲勝賠率、主隊平局賠率、主隊負賠率、主隊世界排名、客隊世界排名、主隊近期勝率、客隊近期勝率、主隊信心指數、讓球指數、讓球后主勝賠率、讓球后主平賠率、讓球后主負賠率作為特徵,結果集為最終勝平負賽果 ,簡單起見,定為主勝 值為 1(含平局)、主負值為 0 處理。

使用 python3+BeautifulSoup 寫爬蟲抓數據,代碼詳見 :

github https://github.com/sgp2004/world_cup_AI

AI教你世界盃足彩怎麼買(含預測)

模型建立,程序回測,預測勝率

28 日晚 22 點前總共 44 場比賽,我們使用 Logistic 迴歸 +Sigmoid 函數分類方式處理(詳情請閱讀參考文獻《機器學習實戰》),訓練算法為改進的隨機梯度上升算法:

AI教你世界盃足彩怎麼買(含預測)

選擇訓練集和測試集都為這 44 場比賽,這時的錯誤率為 28%,觀察干擾數據:

AI教你世界盃足彩怎麼買(含預測)

這就是足球的迷人地方,error 包含了韓國對德國這個超大冷門,我們的程序預測韓國勝率幾乎為 0。

用這個模型預測 28 日及以後的 8 場比賽, 步長改為更小,到時看看是否能達到 72% 的勝率:

 時間場次, 主隊勝率  日 本 VS 波 蘭,0 塞內加 VS 哥倫比,0 英格蘭 VS 比利時,0.95 巴拿馬 VS 突尼斯,0.001 法 國 VS 阿根廷,0 烏拉圭 VS 葡萄牙,0.869032 俄羅斯 VS 西班牙,0.001 克羅地 VS 丹 麥,0.77

7.2 日預測之後 5 場比賽:

 巴 西 VS 墨西哥,0.994871 比利時 VS 日 本,0.998338 瑞 典 VS 瑞士, 0.003197 哥倫比 VS 英格蘭,0.000737 烏拉圭 VS 法 國,0.820381

結論及展望

綜上,我們看球預測時,需要較精確地估算出一個勝率,然後看足彩給的賠率是否合適,如果勝率> 1/ 賠率,則適合下注,是個正 EV 的遊戲,而不是十分肯定地說某某隊會贏,畢竟莊家都不敢這麼預測。如何估算勝率?我們可以選擇一些特徵值,進行線性迴歸,確定特徵值對應的係數,然後預測下場比賽的賽果。

本文模型選的特徵值比較少,只依賴數據網站,缺少很多信息,準確率不高,迴歸係數沒有完全收斂,也不能評估出勝負外的概率,需要調整參數。本人會繼續改進。

參考文獻

賭徒謬誤:

https://zhuanlan.zhihu.com/p/26929562

《機器學習實戰》

別賭球了,你只是“莊家必贏公式”的玩偶

https://mp.weixin.qq.com/s/ig06FpzhqE_9dFOtziCxKA

爆冷讓人心慌?如何讓「下注」穩賺不賠?

https://mp.weixin.qq.com/s/baftxbdQQKTP-SEutM4uhw

沈冠璞,熊貓直播技術經理。專注服務端技術,關注機器學習。


分享到:


相關文章: