Python分析 誰是2018世界盃奪冠最大熱門?

tianxiaoxu發表於2018-06-26

【本文轉自Python資料之道 作者Lemonbit 
2018年,世界盃小組賽已經在如火如荼的進行中。在上篇文章的基礎上【世界盃:用Python分析熱門奪冠球隊-(附原始碼)】,我們繼續分析世界盃32強的實力情況,以期能夠更進一步分析本次世界盃的奪冠熱門球隊。

文中有獲取本文原始碼的方式

三十年河東三十年河西,對於世界盃而言,這個時間可能4年就足夠。

前幾場爆冷,使得天台上已經擁擠不堪,跳水的股市更是讓天台一度混亂。

在文章開始之前,提醒大家:

賭球有風險,看球須盡興

本文的重點是通過分析32強之間的比賽,透過歷史資料來預測奪冠熱門球隊。

本次分析的資料來源於 Kaggle, 包含從 1872 年到今年的資料,包括世界盃比賽、世界盃預選賽、亞洲盃、歐洲盃、國家之間的友誼賽等比賽,一共大約 40000 場比賽的情況。

本次的環境為

·window 7 系統

·python 3.6

·Jupyter Notebook

·pandas version 0.22.0

先來看看資料的情況:

Python分析 誰是2018世界盃奪冠最大熱門?

該資料集包含的資料列的資訊如下:

·日期

·主隊名稱

·客隊名稱

·主隊進球數 (不含點球)

·客隊進球數 (不含點球)

·比賽的型別

·比賽所在城市

·比賽所在國家

·是否中立

結果如下:

Python分析 誰是2018世界盃奪冠最大熱門?

1、 獲取所有世界盃比賽的資料(含預選賽)

建立一個新的列資料,包含獲勝隊伍的資訊,以及獲取所有世界盃比賽的資料,包含預選賽。

Python分析 誰是2018世界盃奪冠最大熱門?

結果如下:

Python分析 誰是2018世界盃奪冠最大熱門?

2、 世界盃戰績分析 (含預選賽)

從前文來看, 在世界盃歷史上,實力最強的5支球隊是 德國、阿根廷、巴西、法國、西班牙。

接下來,我們將比賽的範圍擴大至包含世界盃預選賽,通過5支球隊之間的比賽情況來進行分析。

Python分析 誰是2018世界盃奪冠最大熱門?

在世界盃歷史上,5支球隊在共有43場比賽相遇。

通過這43場比賽分析後,5支球隊的勝負場數排名如下:

Python分析 誰是2018世界盃奪冠最大熱門?

結果如下:

Python分析 誰是2018世界盃奪冠最大熱門?

下面,著重來分析下這5支球隊,在世界盃上,兩兩對陣時的勝負情況。

首先自定義兩個函式,分別獲得兩支球隊獲勝場數情況以及自定義繪圖函式

Python分析 誰是2018世界盃奪冠最大熱門?

基於上述函式,分析結果如下:

2.1 世界盃戰績:巴西 vs 其他4支球隊

Python分析 誰是2018世界盃奪冠最大熱門?

結果如下:

Python分析 誰是2018世界盃奪冠最大熱門?

統計現象1:

在世界盃上的戰績,統計獲勝場數如下(不含平局):

巴西1:1德國,巴西6:3阿根廷,巴西1:2法國,巴西3:1西班牙

巴西隊,輸贏不好判斷……

2.2 世界盃戰績:德國 vs 其他3支球隊

程式碼跟2.1部分是類似的,結果如下:

Python分析 誰是2018世界盃奪冠最大熱門?

統計現象2:

在世界盃上的戰績,統計獲勝場數如下(不含平局):

德國4:1阿根廷,德國2:1法國,德國2:1西班牙

德國在這5支球隊裡,獲勝的優勢相對比較明顯。

2.3 世界盃戰績:阿根廷 vs 其他2支球隊

程式碼跟2.1部分是類似的,結果如下:

Python分析 誰是2018世界盃奪冠最大熱門?

統計現象3:

在世界盃上的戰績,統計獲勝場數如下(不含平局):

阿根廷2:0法國,阿根廷1:0西班牙

但阿根廷不敵巴西和德國

2.4 世界盃戰績:西班牙 vs 法國

Python分析 誰是2018世界盃奪冠最大熱門?

綜合小結論:

從歷屆世界盃上的表現情況來看,分析5強之間兩兩對陣後,發現德國隊的表現是最好的。其次巴西和阿根廷的表現也不錯。

考慮到,歷屆世界盃的資料,時間跨度很大,很多球隊其實已經發生了很大變化。

球隊真實的情況,可能選擇近幾年的比賽,以及包含不同級別的比賽,可能分析效果要更好些。

文中有獲取本文原始碼的方式

下面,重點來分析2014年以來包含所有比賽的情況。

3、2014年以來,所有比賽的戰績對比

首先,時間選擇2014年之後(含2014年),距離現在的時間比較近,相對來說,球隊人員的組成變化小一些。

當然,這裡的時間選擇,對於結果是有影響的。 大家可以探討下這個因素帶來的影響。

3.1 2014年以來所有球隊所有比賽勝負情況概覽

Python分析 誰是2018世界盃奪冠最大熱門?

2014年以來,共有3600多場比賽。

針對3600多場比賽分析後,勝負場數情況如下:

Python分析 誰是2018世界盃奪冠最大熱門?

Python分析 誰是2018世界盃奪冠最大熱門?

從上圖來看,2014年以來,墨西哥,法國,德國、葡萄牙、巴西、比利時、韓國和西班牙表現相對較好。

結果是不是跟想象中的有些差異?

6月17日的小組賽,德國不敵墨西哥,看來也不是全無理由的。

但是,本次我們主要還是要考慮32強之間的對陣,這樣更能反映現實情況。

3.2 2014年以來32強相互之間在所有比賽中的概覽情況

Python分析 誰是2018世界盃奪冠最大熱門?

Python分析 誰是2018世界盃奪冠最大熱門?

從上圖來看,自2014年以來,巴西、法國、葡萄牙、阿根廷、墨西哥、比利時、德國、西班牙、英國為前9強。

下面我們來分析top9之間的勝負情況。

Python分析 誰是2018世界盃奪冠最大熱門?

2014年以來,top 9 之間一共踢了44場比賽(包括友誼賽)。

總體來說,比賽的場數不是太多,基於這些資料來分析,可能對結果會有較大的影響。

九強排名如下:

Python分析 誰是2018世界盃奪冠最大熱門?

Python分析 誰是2018世界盃奪冠最大熱門?

來檢視下都統計了哪些型別的比賽

Python分析 誰是2018世界盃奪冠最大熱門?

Python分析 誰是2018世界盃奪冠最大熱門?

從上面來看,友誼賽佔的比例較大。

考慮到友誼賽在有些情況下可能不能比較準確的反映出球隊的真實水平,且友誼賽站的場數比例較大,我們剔除友誼賽再來看看結果情況。

3.3 2014年以來32強剔除友誼賽後的勝負情況概覽

Python分析 誰是2018世界盃奪冠最大熱門?

剔除友誼賽後,比賽型別分佈如下:

Python分析 誰是2018世界盃奪冠最大熱門?

剔除友誼賽後,Top 9 的情況如下:

Python分析 誰是2018世界盃奪冠最大熱門?

在概覽中可以看出,是否剔除友誼賽(Friendly),對排名還是有影響的。

另外,剔除友誼賽後,總的比賽場數更少了(只有13場),9強之間有些隊伍沒有比賽,或者沒有贏過,這個資料用來分析的作用更有限。

當然,在分析中 是否要剔除友誼賽,應該是值得商榷的。

3.4 九強兩兩對陣的勝負情況概覽

這裡,我們後續分析採用包含友誼賽的資料,來分別分析9強之間兩兩對陣的情況,看看哪支球隊的勝率更高些。

首先自定義幾個函式,方便進行分析。

自定義獲取球隊某年至今獲勝比例函式

Python分析 誰是2018世界盃奪冠最大熱門?

自定義獲取兩支球隊歷史獲勝情況對比函式

Python分析 誰是2018世界盃奪冠最大熱門?

自定義兩支球隊歷史獲勝情況製圖函式

Python分析 誰是2018世界盃奪冠最大熱門?

這些函式有什麼用呢,首先我們來分析下 巴西 vs 德國 的情況,如下:

Python分析 誰是2018世界盃奪冠最大熱門?

Python分析 誰是2018世界盃奪冠最大熱門?

上述圖中,x軸代表的含義是從某年至今(資料集含有部分2018年的比賽資料),兩支球隊的勝負情況。

例如 2012對應的是 德國跟巴西從2012年至今,兩支球隊的勝負情況。

所以,時間越早,兩支球隊的比賽數量越多,資料曲線的波動可能要小些。但由於球隊的成員組成在不斷的變化,會導致越早的資料,其分析價值越弱。 因此,選擇合適的年份進行分析就顯得很重要。

有童鞋說,如果我要 同時分析德國對陣另外8支球隊呢?

這裡,用上面的函式,也是很迅速的,程式碼如下:

Python分析 誰是2018世界盃奪冠最大熱門?

執行上述程式碼後,將會繪製8張圖,下面只放上其中幾張圖。

同理,如果你喜歡巴西隊或者別的球隊,也可以用上述程式碼進行分析。

Python分析 誰是2018世界盃奪冠最大熱門?

Python分析 誰是2018世界盃奪冠最大熱門?

用上述函式可以快速的分析兩支球隊的歷史勝負情況,當然,有些球隊之間,相遇很少,或者近些年沒有遭遇過,那分析結果可能就不好用了。

當然,資料分析的只是歷史情況,足球是圓的,場上瞬息萬變。比如,阿根廷現在岌岌可危,梅西內心慌得一逼……

4 預測

本屆世界盃真的是爆冷太多。

義大利,荷蘭,連小組賽都沒進;

阿根廷,可以說現在已涼了半截;

德國隊,若不是最後的絕殺,也差不過可以送首涼涼了,不過現在看已回血大半。

最後,來放上我的神預測。

黑馬年年有,今年特別多,預測不準,坐等 pia pia 打臉。

Python分析 誰是2018世界盃奪冠最大熱門?

當然,其實我內心深處希望是下面這樣的。

怎麼樣,為強大的內心點贊吧~~

Python分析 誰是2018世界盃奪冠最大熱門?

特別說明: 以上資料分析,純屬個人學習用,預測結果與實際情況可能偏差很大,不能用於其他用途。

本文是一次比較綜合的專案實戰,希望可以給大家帶來一些啟發。如需獲取原始碼,請在公眾號【Python資料之道】後臺回覆“code”獲取。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31137683/viewspace-2156659/,如需轉載,請註明出處,否則將追究法律責任。

相關文章