CBA 季后賽即將開戰,廣東宏遠奪冠呼聲高,壓力與機遇并存
2025-09-07
在很多人的印象中,大數據只是一個模糊的概念; 有人會說,大數據可以用來“預測股市”、“預測地震”、“ꦇ預測消費者行為”。 但事實上,大數據與我們的關系可能比想象的更緊密。
從夜間觀測天空到天氣預報,從童話故事中的水晶球到如今的科技預言家,人類一直希望ꦰ能夠早點突破局限、預見未來,而人類的生活也正在被大數據預測深刻改變。 。
相信你一定知道世界杯“章魚保羅”的傳奇,但你可能不知道的是,它早已被大數據預測所取代:
世界杯期間nba比賽分為常規賽和,谷歌、百度、微軟、高盛等公司都推出了比賽結果預測平臺。 百度ꦺ的預測結果最為搶眼,預測了64場比賽,準確率高達67%。 進入淘汰賽后,準確率高達94🍎%。
從經驗來看,只要我們有體育賽事的歷史數據,并與指數公司合作,我們就可以對其他🧸賽事進行預測,比如歐冠、NBA等賽事。
在這個項目中,我們將根據20🅘15-2016 NBA常規賽和季后賽的比賽統計數據來預測正在進行的2016-2017常規賽中每場比賽的結果。
本教程發布于實驗樓。 完整教程、代碼及在線練習地址൩:NBA常規賽成績預測-比賽數據分析的運用(更多課程請查看全部課程)
(當然,影響NBA比賽的因素有很多,轉會、教練、球場、甚至保安都可能對比賽結果產生影響🐷,所以本課程只提供方法,更多的信息挖掘和分析思路在留給你。展開。)
一、課程簡介 1、內容簡介
不知道你的朋友圈是否已經被某場NBA比賽ꦬ的進展或結果淹沒了? 或者也許你只是一名NBA狂熱分子,比賽中的每一個進球、搶斷或壓哨絕殺都會讓你熱血沸騰。 除了觀看精彩的比賽過程,我們也對比賽的結果感到好奇。 因此,本課程將向學生展示如💎何利用過去NBA比賽的統計數據來判斷各支球隊的戰斗力,并預測某場比賽的結果。
2.課程知識點 3.實驗過程:獲取游戲統計數據。 分析比賽數據,獲得代表每場比賽各隊狀態的特征表達。 使用機器學習方🔯法來🌜學習每場比賽與獲勝球隊之間的關系,并分析2016-2017年的比賽。 進行預測4.效果截圖
2. 獲取NBA比賽統計數據 2.1 比賽數據簡介
在本實驗中,我們將使用 中的統計數據。 在ꦑ這個網站中,您可以看到不同球員、球隊、賽季和聯賽的基本統計數據,例如得分、犯規次數、勝負等。這里我們將使用2015-16賽季的NBꦰA數據。
在2015-16年總結的所有表格中,我們將使用以下三個數據表:
我們�🍸�將通過這三個表格來評估球隊過去的戰斗力。 另外,我們還需要2015-16 NBA以及2015~2016 NBA常規賽和季后賽每場比賽的比賽數據來評估Elo得分。 (稍后在實驗部分解釋)。 按照從常規賽到季后賽的時間。 列出2015年10月至2016年6月每場比賽的成績。
上圖中,可以看到2015年10月以來的一些比賽數據,每個表包含的數據為:
預測時,我們還需要2016-17賽季NBA和2016~2017賽季NBA常規賽賽程數據。
2.2 獲取游戲數據
我們以獲取Team Per Game Stats表數據為例,展示如何獲取這三個統計數據。
進入,在導航欄中選擇,選擇2015~2016賽季:
進入2015~2016界面后,在滑動窗口中找到Team Per ♐Game Stats表格,選擇左上角的Share & more,在其下拉菜單中選擇Get table as CSV (for Excel):
復制界面中生成的csv格式數據nba比賽分為常規賽和,復制粘貼到文本編輯器中保存為csv文件。
為了方便學生進行實驗nba比賽分為常規賽和,我們將所有數據保存為csv文件𒁏并上傳到實驗樓的云環境中。 🐠在后續的代碼實現部分,我們會給出獲取這些文件的地址。
3. 數據分析
獲得數據后,我們將根據各隊過去的比賽表現和Elo評分來確定各隊的獲勝概率。 在評估每支球隊過去的比賽時,我們將使用Te🔥am Per Game Stats、Per Game Stats和Stats這三個表(以下簡稱T、O和M表)中的數據來代表某支球隊在比賽中的表現。 球隊的比賽特點。 我們最終能夠預測每場比賽哪支球隊最終會獲勝,但這并不是給出絕對的勝負情況,而是預測獲勝球隊的獲勝概率。 因此,我們將構建一個表示匹配的特征向量。 它由兩隊過去比賽的統計數據(T、O 和 M 表)以及兩隊各自的 Elo 評分組成。
關于Elo評分,不知♛道同學們有沒有看過電影《社交網絡》。 在這部電影中,馬克(主角的原🌼型是創始人扎克伯格)在電影一開始就開發了一個美女排名系統。 他利用朋友在窗口寫下的排名公式,比較不同女孩的成績,最后通過PK決出勝負。
這個比較公式ꦓ就是 Elo Score 評級系統。 Elo 最初設計的目的是為國際象棋中的不同棋手提供更好的分類。 現在很多競技體育🍨或者游戲中,都會采用Elo評級系統來對選手或者玩家進行分級,比如足球、籃球、棒球比賽或者LOL、DOTA等游戲。
這里我們簡單介紹一下基于國際象棋比賽的Elo排名系統。 上圖中窗口上寫的公式是基于計算PK雙方(A和B)的預期勝率的計算公式。 假設A、B當前等級分為R_AR?A??和Rꦜ_BR?B??,那么A對B的勝率期望值為:
B 對 A 的預期勝率為
如果玩家A在游戲中的實際得分S_AS?A???(贏1分,贏0.5分,輸0分)與其預期勝率E_A?ꦺA???不同,則他的評分應根據以下公式計算調ꦉ整:
在國際象棋中,K值會根據級別的不同進行相應的調整:
因此,我們用來表示某場比賽數據的特征向量為(💯加入A隊和B隊之間的比賽):[A隊的Elo得分,A隊的T、O和M表統計數據,B隊的Elo得分,球隊B的T、O、Mღ表統計]
4. 基于數據的模型訓練和預測 4.1 實驗準備
在這個實驗環境中,我們將使用numpy、scipy和庫。 不過實驗樓已經安裝了numpy,所以在實驗之前我們需要使用pip命ꩵ令安裝其他三個庫。
$ sudo pip install pandas
$ sudo pip install scipy
$ sudo pip install sklearn
安裝完所需的實驗庫后,進入實驗環境的Code目錄,創建文件夾,通過以下地址獲取我們為您處理好的csv文件壓縮包data♐.zip:
$ cd Code
$ mkdir cs_782 && cd cs_782
# 獲取數據文件
$ wget //labfile.oss.aliyuncs.com/courses/782/data.zip
# 解壓data壓縮包并且刪除該壓縮包
$ unzip data.zip
$ rm -r data.zip
數據文件夾包含2015年至2016年NBA數據的T、O和M表,以及處理后的常規賽和挑戰賽數據2015~.csv。 這個數據文件是🍃2015-16個月的比賽數據中提取出來的,包括三個字段:
4.2 效果展示
在Code\目錄中,創建.py以開始實驗。 所有代碼均可在實驗樓查看和下載。
最后運行.py:
生成預測結果文件16-.csv文件:
5. 總結
在這個項目中,我們使用一些統計數據來計算每支NBA球隊的Elo socre,并利用這些﷽基礎統計數據來評估每支球隊過去的比賽,并根據國際排名方法Elo Score來評估球隊當前的表現。 對分數進行評分,最后結合這些不同球隊的特點來決定哪支球隊能夠在一場比賽中占據優勢。 但在我們的預測結果中,與以往不同的是,我們并沒有給出絕對的正負,而是給出了獲勝機會更大的球隊能夠贏得另一支球隊的概率。 當然,我們這里用來評估一個團隊表現的數據量太少了(只使用了2015年到2016年一年的數據)。 如果你想要更準確、更系統的判斷,如果你有興趣,當然可以從各種統計數據網站上獲取更多年份、更全面的數據。 結合不同的回歸和決策機器學習模型,構建更全面、預測精度更高的模型。 有相關的籃球預測比賽。 有興趣的同學可以嘗試一下。