W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
本文轉載至知乎ID:Charles(白露未晞)知乎個人專欄
下載W3Cschool手機App,0基礎隨時隨地學編程>>戳此了解
利用Python簡單地預測一下NBA比賽結果。。。
這大概就叫蹭熱度吧。。。
畢竟貌似今天朋友圈都在刷NBA相關的內容。。。
雖然我并不能看懂。。。
但這并不妨礙我瞎預測一波。。。
So,
以下內容純屬瞎玩,如有雷同,算我倒霉。。。
NBA忠實球迷請自動忽略不好結果。。。
網盤下載鏈接: https://pan.baidu.com/s/1EwdkonbYY54AxnIgqx9yYA
密碼: 1n93
(1)數據選取
獲取數據的鏈接為:
https://www.basketball-reference.com/
獲取的數據內容為:
每支隊伍平均每場比賽的表現(xiàn)統(tǒng)計;
每支隊伍的對手平均每場比賽的表現(xiàn)統(tǒng)計;
綜合統(tǒng)計數據;
2016-2017年NBA常規(guī)賽以及季后賽的每場比賽的比賽數據;
2017-2018年NBA的常規(guī)賽以及季后賽的比賽安排。
(2)建模思路
主要利用數據內容的前四項來評估球隊的戰(zhàn)斗力。
利用數據內容的第五項也就是比賽安排來預測每場比賽的獲勝隊伍。
利用方式為:
數據內容的前三項以及根據數據內容的第四項計算的Elo等級分作為每支隊伍的特征向量。
Elo等級分介紹(相關文件中有):
為方便起見,假設獲勝方提高的Elo等級分與失敗方降低的Elo等級分數值相等。
另外,為了體現(xiàn)主場優(yōu)勢,主場隊伍的Elo等級分在原有基礎上增加100。
(3)代碼流程
數據初始化;
計算每支隊伍的Elo等級分(初始值1600);
基于數據內容前三項和Elo等級分建立2016-2017年常規(guī)賽和季后賽中每場比賽的數據集;
使用sklearn中的LogisticRegression函數建立回歸模型;
利用訓練好的模型對17-18年常規(guī)賽和季后賽的比賽結果進行預測;
將預測結果保存到17-18Result.CSV文件中。
Python版本:3.5.4
相關模塊:pandas模塊、numpy模塊、sklearn模塊以及一些Python自帶的模塊。
環(huán)境搭建
安裝Python并添加到環(huán)境變量,pip安裝需要的相關模塊即可。
在cmd窗口運行Analysis_NBA_Data.py文件即可:
結果:
文章的初衷是為了讓公眾號推送的關于Python的小項目涉及的應用領域更加豐富多彩。從而激發(fā)部分Python初學者的學習熱情,僅此而已。
這篇文章的技術含量并不高,模型簡單,數據處理方式也比較隨意。。。
可以優(yōu)化的地方大概包括:
增加訓練數據(如多利用幾年數據);
優(yōu)化訓練模型(如sklearn中其他機器學習方法或者利用深度學習框架搭建相應的網絡進行模型訓練)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: