詹皇生涯得分數據分析(使用Python)

yuwei
Jacky’s blog
Published in
Sep 3, 2018
source

因為本人是詹皇死粉,這篇主要會用Lebron James的得分數據來對在ptt NBA板裡面著名的話題,今天擲了多少點做分佈分析和爆擊率,極端爆擊率,烙賽率和極端烙賽率做視覺化(Visulaization),用的Python 套件有matplotlib , Pandas, Numpy 來對過去Lebron 的數據做一個詳盡的解說, 如果對詳盡的code 有興趣,煩請多開一個分頁移駕到我的Github , 那裏會有完整的Jupyter Notebook Python Code。

本次探討Lebron常規賽數據

這次的分析流程如下

  1. 瀏覽nba數據分析網站針對所需的資料進行爬蟲
  2. 資料整理和清洗並填補缺失值
  3. 觀看Lebron James得分分佈
  4. 標出異常值並對其比賽日期進行特別標註
  5. 合理判斷Lebron 該場比賽擲出的骰子點數
  6. 結論

因為本人尚為coding菜逼八,如有更好的方法歡迎加我的信箱 jacky308082@gmail.com 一起討論

爬蟲

這裡主要是參考該數據網站進行網路爬蟲,所使用的套件為beautyfulsoup(俗稱美麗湯)和 urlopen裡面的request

request: 建立各種HTTP請求,從網頁伺服器取得想要的網頁內容, 此模組獲取的主要是網頁裡html, css, Javascript的code 和其架構

beautyfulsoup: 可以快速擷取該網頁中有興趣的資料,並針對tag屬性去做特別篩選,這邊的個人理解主要是延續使用requests所獲取的網頁內容,並尤其針對該網頁裡感興趣的部分進行擷取

Lebron生涯數據前五場比賽

資料整理

接下來可以看到columns目前是沒有名字的都是數字,所以我要把它調整成大家(包括我)都能立即辨識的特徵名稱

將columns中文化

接下來開始檢視資料是否齊全,判斷是否有NaN(空值),以及資料是否有錯的資料型態

這張圖我們可以看到沒有NaN,但是資料的型態是有誤的,ex. 二分球命中數不應該是以’object’的型態來表示,應將其轉換成’int’ 或’float’已使其可以運算,另外時間也是應該以’時間’的資料型態

經過一番調整後

透過dataframe,我們可以了解在’贏(幾分)’裡在我們視覺化的時候,該欄的呈現方式有點奇怪,所以我現在要把欄位切開分成兩欄,但做此事之前,我們同樣看到了在主/客場的奇怪符號,’@‘代表的是客場

在這裡我把主場改成int(0) 客場改成int(1),原本的‘贏(幾分)’整個欄我已經把它拋棄掉,加上了勝分(代表原來的’幾分’)和輸贏(‘贏’)

這時候可以開始進行視覺化的分析了,來看Lebron的表現到底有多驚人

首先是詹皇的得分分佈

得分分佈圖代碼

這樣大家可以看出Lebron得分區間主要還是在(20~40分),要注意,Lebron總是說他不僅僅是為得分手

再來,會讓大家看在得分時各項統計資料

各項統計數據

上圖表示,Lebron曾經最少得過3分而已,而最多則是得到了61分,雖然沒有超強得分手Kobe來得多,但也著實是一項偉大的成就,你們可能會問骰子指數是怎麼透過計算的,在這裡我是使用變異係數來做計算,分數越大,也代表離散程度越大,也代表很容易在不同比賽中有與前面比賽平均得分差距較大的表現,但其時變異係數主要是拿來和其他不同的選手來做比較較好,所以我之後會再特別針對骰子指數做探討

接下來則是根據統計數據,我做了一個箱形圖,裡面特別標註了離群值的部分,並特別標出了得分的日期

箱型圖

這張圖很明顯的表示出,Lebron的低分都是來自生涯初期,可以合理推斷因為18歲就進入了NBA,得分會出現比較大的波動,而爆量的得分演出主要還是來自生涯中期,最猛獸和最一手遮天的階段

看到這張圖之後,你是不是也想知道Lebron爆量演出的機會有多少,或者是烙賽的機會有多少?這邊我也做了一個統計,分別透過Lebron的生涯數據,和其2017~2018常規賽的數據做個比較

普通爆擊率:根據統計數據,我取第三分位數32分和極端值(前面箱型圖計算出的)47分中的所有數據/(有得分場次)

超級爆擊率:高於極端值/所有數據

普通烙賽率:第一分位數22分和極端值7分中的所有數據

極端烙賽率:低於極端值/所有數據

生涯與2017賽季

可以藉由這張圖,相信你已經很清楚Lebron在2017賽季是高於自己生涯水準的表現,比生涯高1%的爆擊率,降低了超過3%的烙賽率,你還有可能忽略的是他是一個已經33歲的老將

最後是附贈骰子點數分配圖,可以明確的告知各位想知道Lebron今天得分是骰到幾點的,我用一張Lebron分成四個得分區間的圓餅圖來呈現

1點:3~19分 有17.32%的機會

2點:19~24分 有19.86%的機會

3點:24~27分 有16.8%的機會

4點:27~31分 有16.89%的機會

5點:31~34分 有12.42%的機會

6點:35~61分 有16.71%的機會

結論

這篇文章主要是從數據面探討Lebron從2003年至今的得分數據,希望不是從表面Lebron所展現的統治力來述說他的強,而是希望能從確實的數據數字來呈現,未來也會繼續對Lebron,更對整個NBA的球員數據分享,也讓大家更了解Lebron。

如果各位大哥大姐有什麼對NBA想要探討的議題,都可以跟小弟討論,可以寄信來我的信箱 jacky308082@gmail.com

--

--

yuwei
Jacky’s blog

Curious Data scientist. Strong Lebron James’s fan. #StriveForGreatness #JustAKidFromTaiwan https://www.linkedin.com/in/yu-wei-chung/