1. 程式人生 > >機器學習預測世界盃:巴西奪冠

機器學習預測世界盃:巴西奪冠

640?wx_fmt=gif

640?wx_fmt=jpeg

  新智元報道  

來源:Medium,Github,KDnuggets等

【導讀】2018年世界盃開幕在即,誰會贏得最後的冠軍?機器學習預測是巴西,而統計方法則認為德國會贏。

3天后,2018年俄羅斯世界盃開打,首場比賽是東道主俄羅斯對陣沙烏地阿拉伯,將於6月14日拉開序幕。

每屆世界盃最受關注的當屬決賽,上屆2014年巴西世界盃,東道主巴西隊意外爆冷,只獲得第四名,無緣決賽。今年的世界盃,不少機構/研究人員給出預測:德國將和巴西爭奪冠軍,並且,巴西隊奪冠的概率更大些。

綜合各種預測和民意調查,冠軍幾乎肯定在巴西、德國和阿根廷之間展開,雖然強強爭鋒喜聞樂見,但似乎也少了些驚喜。

機器學習和大資料的方法正越來越多地被用在比賽結果預測上,不僅是世界盃,也不僅是結果,球隊組成、戰術選擇和球員訓練都已經開始見到機器學習的身影。對於球迷和觀眾而言,人工智慧也將展開一種全新的參與/觀看體育賽事的體驗。

機器學習預測結果:巴西獲得冠軍

肯亞的投資銀行Genghis Capital Investment Bank的投資銀行分析師Gerald Muriuki,日前在Medium上公佈了他使用機器學習預測FIFA 2018的結果——巴西將贏得冠軍

這一結果跟微軟的AI和資料科學專家Sorin Peste的預測結果一致。

實際上,預測世界盃冠軍是一個典型的機器學習問題,你首先預測每場比賽的獲勝者,接著再預測小組賽、半決賽和決賽的冠軍。在這個過程中,你需要進行資料整合、特徵建模和結果預測。因此,很多機器學習或資料科學家,都做過類似的專案。

Muriuki和Peste兩個人都是根據足球比賽的歷史資料,建立機器學習模型,模擬比賽,並預測這些比賽的結果。下面我們分別來看看。

使用邏輯迴歸進行預測

Muriuki使用了兩個來自Kaggle的資料集,包含了從1872年到2017年國際足球比賽的結果。他先分析了兩個資料集,做了一些特徵工程,選擇跟2018年世界盃最相關的特徵進行預測,再足控了一些資料增強。

在模型的選擇上,Muriuki用的是邏輯迴歸,一種分類器演算法。邏輯迴歸通過使用邏輯函式預估概率,從而衡量分類因變數和一個或多個自變數之間的關係。簡單說,給定一組相關的資料後,邏輯迴歸能夠預測結果(在世界盃的情況下,就是預測是輸還是贏)。

這是他的模型預測最初幾場比賽的結果:俄羅斯vs沙特,俄羅斯勝利;烏拉圭vs埃及,烏拉圭勝利;伊朗vs摩洛哥,平局。4天以後就可以驗證這個結果是對還是錯了。

640?wx_fmt=png

16強的結果是這樣的:

640?wx_fmt=png

四分之一決賽將在葡萄牙vs巴西,以及德國vs阿根廷之間展開。

640?wx_fmt=png

最終巴西vs德國,巴西獲勝。

640?wx_fmt=png

使用隨機森林進行預測

另一方面,微軟的AI和資料科學專家Sorin Peste的預測過程則更加完善。在資料的選擇上,除了歷年世界盃結果,Peste還使用了歐洲盃、奧運會等大型比賽的資料,以及這些比賽的勝率分佈。

640?wx_fmt=png

此外,Peste還考慮了比賽的地址,也即是在主場、客場還是在雙方都無關的中立場所,以及比賽是否“friendly”,在踢friendly比賽時,目的不是為了贏球,而是為了觀察對手的球員和策略。

在模型的選擇上,Peste用的是隨機森林(深度500),一種根據呈現給它的特徵生成多個決策樹的演算法,並且每個單獨的樹對每個新輸入向量的結果“投票”。隨機森林的速度快,相當準確,可以對泛化誤差進行無偏估計,因此不需要交叉驗證。

下圖展示了迭代1000次後的結果,巴西獲勝,阿根廷第二。

640?wx_fmt=png

統計的方法:德國戰車險勝巴西

當然,除了機器學習,還有更多預測是使用大資料方法。KDnuggets上一位狂熱球迷用統計的方法,預測德國隊會奪冠。他的操作步驟如下:

收集資訊:

國際足聯世界排名:這是所有211支國家足球隊的排名系統。使用積分系統,積分是基於所有FIFA認可的國際比賽的結果。然而,這並不是最好的系統,而且有很多缺點。

Elo評級:該系統最初是為國際象棋聯合會FIDE開發的,目的是給棋手打分。它的複雜矩陣根據比賽的型別分配點數,並考慮到雙方的淨勝球差異。它和國際足聯的主要不同之處在於,它也統計了友誼賽的數量。

TransferMarkt team value:這個總部位於德國的網站提供了關於足球各個方面的資訊,包括每個知名球員的估計市值。他們列出了參與國的名單和他們的團隊價值。

投注賠率:使用投注比較網站OddsChecker,採用每個國家最慷慨的賠率。

TransferMarkt的數字是歐元,而FIFA和Elo有他們自己的評級系統,投注賠率是分數。作者將每一個系統都標準化,使它們具有可比性。在統計中,標準分數(也稱為z分數/值,正常分數或標準化值)是數值與平均值不同的標準偏差數。

640?wx_fmt=jpeg

2018年世界盃,四個流行的預測來源

640?wx_fmt=jpeg

KDnuggets預測的z分數

如果KDnuggets的預測是正確的,那麼世界盃小組賽的結果會是下面這樣的:

640?wx_fmt=png

研究結果引出了一些有趣的結論:

  • 德國排名第一,但僅略高於巴西。緊隨其後的是西班牙和法國。

  • Elo排名系統和投注機率看起來最相似,都列出了相同的前五名(上面提到的四個球隊和阿根廷)。

  • 在整個體系中有一些鮮明的對比,其中最引人注目的是祕魯在國際足聯(FIFA)和Elo排名中z分數都排在第10位,而在TrasferMarkt的球隊價值排名卻在第30位。

民意調查:德國、巴西、阿根廷最受歡迎

除了KDnuggets上的預測,還有諸多世界盃賽前的其他預測:

《每日電訊報》對每支球隊進行了廣泛的分析,最後進行了一項投票,讓讀者預測冠軍,投票結果如下:

640?wx_fmt=jpeg

此外,據中新網報道,俄羅斯彼爾姆國立研究大學學生維克多•扎科派洛建立了一個能預測2018年世界盃冠軍的神經網路,神經網路綜合各項引數進行分析計算後得出結論稱,世界盃前三名將是德國隊、巴西隊和阿根廷隊

四年前,巴西在家門口以1:7輸給了德國隊,創下了自1920年0:6輸給烏拉圭以來最大的世界盃輸球記錄,震驚全國人民。最終,德國隊奪得了當年的世界盃冠軍。

今年的俄羅斯世界盃,諸多機構預測巴西和德國將上演冠軍大戰。巴西能否一雪前恥,德國能否成功衛冕?我們拭目以待。

資料來源:

1、Muriuki邏輯迴歸預測:https://medium.com/@itsmuriuki/predicting-fifa-world-cup-2018-using-machine-learning-dc07ad8dd576

2、Peste隨機森林預測(附程式碼):https://notebooks.azure.com/sorinpeste/libraries/footballpred/html/worldcup.ipynb

3、統計預測結果:https://www.kdnuggets.com/2018/06/football-world-cup-predictions.html

4、基於Elo的世界盃預測模型:https://arxiv.org/pdf/1806.01930.pdf

640?wx_fmt=jpeg

640?wx_fmt=gif

640?wx_fmt=jpeg


點選下方“閱讀原文”瞭解【人工智慧實驗平臺】↓↓↓