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

yuwei
yuwei
Sep 3, 2018 · 6 min read
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

Written by

yuwei

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

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade