原作者: lucas winter
鏈接: https://medium.com/better-programming/predicting-nba-all-stars-e03655021f63
使用 random forest模型
Photo by TJ Dragotta on Unsplash
在我參加大會(huì)的數(shù)據(jù)科學(xué)沉浸式項(xiàng)目中,我們的任務(wù)是完成幾個(gè)與數(shù)據(jù)科學(xué)基礎(chǔ)相關(guān)的項(xiàng)目释簿,每一個(gè)項(xiàng)目都建立在另一個(gè)項(xiàng)目之上.
首先寒亥,我們對SAT和ACT數(shù)據(jù)進(jìn)行了探索性數(shù)據(jù)分析(EDA)。接下來,我們用線性回歸法預(yù)測了愛荷華州艾姆斯市的房價(jià)。然后,我們使用自然語言處理(NLP)和分類模型對兩個(gè)相似的subreddit帳戶的帖子進(jìn)行分類.
這種穩(wěn)定的構(gòu)建最終以完成一個(gè)頂點(diǎn)項(xiàng)目而告終蜈出,每個(gè)學(xué)生都必須針對自己選擇的主題制定一個(gè)問題陳述,并嘗試在沒有指導(dǎo)的情況下使用整個(gè)課程中教授的技能和技巧來解決它.
我的項(xiàng)目
在我的項(xiàng)目中涛酗,我想選擇一個(gè)我不僅對之充滿激情而且能讓我與眾不同的話題.
我的決定很簡單:必須是關(guān)于運(yùn)動(dòng)的铡原。在我的生活中,沒有什么比成為一個(gè)不屈不撓的體育迷更能帶給我快樂和痛苦的了煤杀。如果你是亞特蘭大隊(duì)或密歇根大學(xué)的球迷眷蜈,那么你知道我在說什么.
我的目標(biāo)是解決一個(gè)對專業(yè)運(yùn)動(dòng)隊(duì)有實(shí)際應(yīng)用價(jià)值的問題,并可能提高我所熱愛的運(yùn)動(dòng)隊(duì)的決策能力沈自。
問題
盡管獲得的數(shù)據(jù)和信息比以往任何時(shí)候都多,但專業(yè)運(yùn)動(dòng)隊(duì)的前廳和球探部門仍在努力做出正確的選秀決定辜妓。
在職業(yè)體育中枯途,選秀中選擇合適的球員對球隊(duì)未來的成功至關(guān)重要忌怎。這是以一種成本效益高的方式建立團(tuán)隊(duì)深度的最佳方法之一,也是決定最佳業(yè)余運(yùn)動(dòng)員命運(yùn)的地方酪夷。起草一名球員是一門不精確的科學(xué)榴啸,但是有一種方法可以預(yù)測球員未來的成功,這將使球隊(duì)起草決定變得更加容易晚岭,并使他們在競爭中占優(yōu)勢鸥印。
在NBA,擁有多個(gè)全明星球員的球隊(duì)已經(jīng)被證明可以贏得冠軍坦报。2019年的NBA冠軍多倫多猛龍隊(duì)有三名前全明星球員在他們的名單上(卡峡馑担·倫納德、凱爾·洛里和馬克·加索爾)片择,金州勇士隊(duì)潜的,這十年最好的球隊(duì),在他們的三次總冠軍征程中有五名前全明星球員在他們的名單上(斯蒂芬·庫里字管、克萊·湯普森啰挪、德雷蒙德·格林、凱文·杜蘭特和安德烈·伊古達(dá)拉)嘲叔。
我的目標(biāo)是建立一個(gè)模型亡呵,可以預(yù)測選秀合格的大學(xué)生籃球運(yùn)動(dòng)員成為NBA全明星球員的可能性。
多年來硫戈,成為全明星的過程已經(jīng)發(fā)生了變化锰什,但目前兩支球隊(duì)的首發(fā)陣容都是通過球迷、球員和媒體投票(分別為50%掏愁、25%和25%)的加權(quán)組合選擇的歇由。
預(yù)備隊(duì)由教練員投票選出。我的目的是通過分析一個(gè)選秀合格的大學(xué)生籃球運(yùn)動(dòng)員的哪些特點(diǎn)果港,來預(yù)測他成為全明星球員的可能性沦泌。
數(shù)據(jù)收集和清洗
數(shù)據(jù)收集和清理是解決任何數(shù)據(jù)科學(xué)問題最耗時(shí)、最困難和最重要的部分之一辛掠。
對于我的項(xiàng)目來說谢谦,這也不例外。我在尋找2005年選秀合格的大學(xué)生籃球運(yùn)動(dòng)員的資料萝衩。這一年高中球員不再有資格繞過大學(xué)直接進(jìn)入NBA回挽。不幸的是,由于數(shù)據(jù)限制猩谊,我只能收集2008年的球員數(shù)據(jù)千劈。
我收集的數(shù)據(jù)來自兩個(gè)來源: Sports-Reference.com 和 Bart Torvik. 在Sports-Reference.com上運(yùn)行了一個(gè)查詢之后,我就可以收集NBA選秀名單和全明星賽名單的數(shù)據(jù)牌捷,并將這些數(shù)據(jù)合并到Pandas數(shù)據(jù)框中墙牌。巴特托維克的數(shù)據(jù)是通過巴特自己提供的一個(gè)JSON文件收集的涡驮。
我總共收集了55939個(gè)大學(xué)籃球賽季的數(shù)據(jù)。這個(gè)數(shù)值包括了自2008年以來所有打過大學(xué)籃球的球員喜滨。如果一個(gè)人參加了多個(gè)賽季的比賽捉捅,那么他們每個(gè)賽季都有多個(gè)觀察結(jié)果。國際和高中運(yùn)動(dòng)員沒有被包括在分析中虽风,因?yàn)榕c大學(xué)籃球相比棒口,這些數(shù)據(jù)并不是一個(gè)簡單的比較。大學(xué)籃球運(yùn)動(dòng)員也占NBA球員總數(shù)的83%以上(RPI評分).
在數(shù)據(jù)清理過程中辜膝,我確定了哪些球員是被征召的无牵,哪些是全明星賽的。我只在我的分析中加入了選秀球員内舟,因?yàn)樵谶^去的10年里合敦,沒有一個(gè)球員在全明星賽中沒有入選。
我還將數(shù)據(jù)集縮小到只包括一個(gè)球員在大學(xué)里的最后一個(gè)賽季验游。包括一個(gè)球員的所有賽季可能會(huì)影響我的目標(biāo)變量充岛,因?yàn)榍騿T會(huì)被列為一個(gè)全明星賽多次。上個(gè)賽季有人在大學(xué)里打球往往是他們表現(xiàn)最好的賽季耕蝉,也是球隊(duì)前臺最看重的崔梗。
最終,數(shù)據(jù)集包括581個(gè)大學(xué)籃球賽季垒在,其中30個(gè)賽季包括全明星球員(目標(biāo)變量)蒜魄。為每個(gè)球員收集的數(shù)據(jù)包括了該賽季的許多個(gè)人統(tǒng)計(jì)數(shù)據(jù),以及球員上學(xué)的地點(diǎn)场躯、會(huì)議谈为、甚至身體測量的信息。下面是我最后一個(gè)數(shù)據(jù)集的片段踢关。
數(shù)據(jù)集前五名球員
探索性數(shù)據(jù)分析
在構(gòu)建模型之前伞鲫,我需要更詳細(xì)地了解數(shù)據(jù)集。
為此签舞,我進(jìn)行了探索性數(shù)據(jù)分析秕脓。我想看看在給定某個(gè)特性的情況下,有多少球員可以打全明星賽儒搭,以及有多少百分比的球員可以打全明星賽.
我還研究了連續(xù)的特征(玩家統(tǒng)計(jì)數(shù)據(jù))吠架,將那些已經(jīng)參加過全明星賽的球員和那些不知道他們之間是否有顯著差異的球員的數(shù)據(jù)分開。
我看到的第一個(gè)特征是學(xué)校的全明星搂鲫。由于許多學(xué)校在過去10年中沒有全明星傍药,我決定從我的數(shù)據(jù)集中刪除這個(gè)特性,因?yàn)樗粫?huì)為模型提供太多信息。正如你在下面看到的怔檩,自2008年以來褪秀,只有三所學(xué)校產(chǎn)生了超過一個(gè)全明星——其中肯塔基州產(chǎn)生的全明星最多蓄诽。
當(dāng)今全明星上學(xué)的地方
也許通過大學(xué)會(huì)議來觀察全明星能提供更多的相關(guān)信息薛训。在我的清潔過程中,我將會(huì)議分為主要會(huì)議和非主要會(huì)議仑氛。主要會(huì)議包括ACC乙埃、Big 10、Big 12锯岖、pac12介袜、SEC和Big East。非主要包括其他一切出吹。非主流被列為一個(gè)類別遇伞,因?yàn)榇蠖鄶?shù)參與者往往是從大型會(huì)議中起草的.
左邊的圖表顯示了從那個(gè)會(huì)議中選出的球員中有多少人成為全明星賽的一員。右邊顯示的是當(dāng)前全明星在大學(xué)期間參加的會(huì)議捶牢。
結(jié)果相當(dāng)令人驚訝鸠珠。我沒想到非主流會(huì)議的全明星比例會(huì)高于除了Pac 10以外的所有其他會(huì)議(pac10自2011年以來就不存在了)。歷史上秋麸,ACC是最好的大學(xué)籃球會(huì)議渐排,這讓人震驚地看到他們的百分比最低。
我想看的另一個(gè)方面是一個(gè)運(yùn)動(dòng)員在大學(xué)里的比賽年限灸蟆。從下面的圖片可以看出驯耻,大多數(shù)全明星在第一季或第二季之后就離開了大學(xué)。這些球員往往是高中畢業(yè)后的新兵炒考,而且更成熟可缚。很少有全明星在大學(xué)的最后一個(gè)高年級留下來。
對于一個(gè)球員來說斋枢,在過去的一年里打大部分比賽有多重要帘靡?從下圖來看,這是非常重要的杏慰。 幾乎所有的球員在大學(xué)最后一個(gè)賽季都打了30到40場比賽测柠。凱里·歐文是唯一一個(gè)在他被征召入伍前本賽季至少25場比賽沒有上場的球員。這表明所有明星在大學(xué)里都是健康的缘滥,在賽季后期都會(huì)上場轰胁。
傳統(tǒng)的統(tǒng)計(jì)數(shù)據(jù)重要嗎?例如朝扼,每場比賽的分?jǐn)?shù)是不是一個(gè)很好的預(yù)測未來成功的指標(biāo)赃阀? 如下表所示,情況可能并非如此。與其他人相比榛斯,傳統(tǒng)的統(tǒng)計(jì)數(shù)據(jù)對全明星來說只是稍微好一點(diǎn)观游。他們每場比賽的平均分只高出一分⊥运祝或許更先進(jìn)的指標(biāo)能夠更好地說明問題懂缕。
1 = All Stars
特征工程
我使用的一些特性在計(jì)算中有一些重疊。 例如王凑,罰球命中率(FTM)和罰球未遂率(FTA)用于計(jì)算罰球命中率(FT%)搪柑。 在消除一些在計(jì)算中重疊的特征之前,我計(jì)算了Bayesian映射估計(jì)值來調(diào)整它們的值索烹。在刪除FTM和FT a特性之前工碾,我使用先前的知識(過去10年的歷史平均值)和似然函數(shù)調(diào)整了FT%。這為我提供了一個(gè)更準(zhǔn)確的統(tǒng)計(jì)數(shù)據(jù)百姓,并幫助解釋球員的嘗試遠(yuǎn)遠(yuǎn)少于其他球員渊额。
用Bayes映射估計(jì)調(diào)整罰球率
建模
在完成EDA之后,我開始了分類建模過程垒拢。 我把數(shù)據(jù)分成訓(xùn)練和測試兩部分旬迹。訓(xùn)練數(shù)據(jù)包括2008-2018年的球員,測試集包括2019年NBA選秀的大學(xué)生球員子库。 在選擇要包含在分析中的特性后舱权,我首先對訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練/測試拆分。然后仑嗅,我開始使用GridsearchCV構(gòu)建幾個(gè)分類模型宴倍,以優(yōu)化最佳超參數(shù)。下面是使用的分類模型列表仓技。
- Logistic regression
- KNearest neighbors
- Decision tree
- Random forest
- AdaBoost
評價(jià)
使用的最佳模型是random forest模型鸵贬,它具有最高的準(zhǔn)確性和最低的方差,但也具有基于先驗(yàn)知識的最現(xiàn)實(shí)和可解釋的概率脖捻。
我能夠正確地預(yù)測一個(gè)球員在職業(yè)生涯中的某個(gè)時(shí)刻是否已經(jīng)成為全明星99%的時(shí)間在訓(xùn)練場上阔逼,94%的時(shí)間在測試場上。該模型有點(diǎn)過擬合地沮,在測試集上的表現(xiàn)并不比基線好嗜浮,但這并不奇怪,因?yàn)槟繕?biāo)類是如此不平衡摩疑。
在查看了模型中的頂級特性之后危融,我很快就能發(fā)現(xiàn),球員效率指標(biāo)比傳統(tǒng)統(tǒng)計(jì)數(shù)據(jù)更能預(yù)測成功雷袋。最好的預(yù)測指標(biāo)是BPM吉殃,它是對一個(gè)球員超過一個(gè)聯(lián)盟平均水平的100次財(cái)產(chǎn)的正/負(fù)的盒子分?jǐn)?shù)估計(jì)。基本上蛋勺,當(dāng)一個(gè)球員在比賽中瓦灶,他的球隊(duì)得分是比對手多還是少?BPM較高的球員往往在NBA表現(xiàn)出色抱完。
顯然贼陶,傳統(tǒng)的統(tǒng)計(jì)數(shù)據(jù)并不能說明全部情況。更重要的是要知道一個(gè)球員是如何獲得個(gè)人數(shù)據(jù)的乾蛤,而不是總數(shù)據(jù)每界。乍一看,一個(gè)每場得分30分的球員看起來很有前途,但如果你深入挖掘经柴,發(fā)現(xiàn)他得到了這個(gè)數(shù)字紧索,因?yàn)樗痘@次數(shù)多,效率低虑啤,那么情況可能就不是這樣了。
從2008年到2018年,選秀和成為全明星的可能性之間存在著積極的關(guān)系(見下文)酪捡。選秀權(quán)越高,我的模型預(yù)測的概率就越高纳账。
這表明逛薇,前臺大部分時(shí)間都做得很好,但也很容易看到異常值和錯(cuò)誤疏虫。在選秀的前十名中永罚,絕大多數(shù)入選者入選全明星隊(duì)的幾率不應(yīng)該低于20%。他們應(yīng)該是最好的應(yīng)征球員卧秘。這也提出了一個(gè)問題:對于在第二輪(選秀30人之后)入選的全明星球員呢袱,球探錯(cuò)過了什么。
德雷蒙德·格林是第35名翅敌,但我的模型產(chǎn)生的全明星概率是第五高的羞福。他已經(jīng)成為三次全明星賽和三次NBA冠軍,那么前廳錯(cuò)過了什么蚯涮?
當(dāng)你深入挖掘的時(shí)候治专,很容易發(fā)現(xiàn)格林有非常高的效率。他的BPM明顯高于應(yīng)征球員的平均水平遭顶,他是一名出色的防守球員张峰。他的選秀職位可能已經(jīng)下降,因?yàn)樗皇且粋€(gè)偉大的運(yùn)動(dòng)員液肌,他離開大學(xué)后挟炬,他的高年級賽季。
該模型對2019年未公開的數(shù)據(jù)也有類似的結(jié)果。選秀和全明星概率與散布在各地的一些異常值正相關(guān)谤祖。與2008-2018年類似婿滓,大多數(shù)球員的全明星概率低于20%。
2019 Unseen Data
該模型預(yù)測粥喜,錫安威廉森成為全明星的概率最高凸主。在過去的一年里,錫安威廉姆森在大學(xué)里是一個(gè)超凡脫俗的球員额湘,同時(shí)也是第一個(gè)獲得總成績的球員卿吐。該模型還顯示了從早到晚選秀概率范圍大于5%的剩余球員。如果歷史允許的話锋华,這個(gè)選秀中只有三名選手將成為全明星嗡官。
2019 All-Star probabilities ranked
排名第二的球員是來自岡薩加的布蘭登·克拉克。他碰巧被選為第21名毯焕,這不是一個(gè)范圍內(nèi)的所有恒星通常采取衍腥。與Draymond Green類似,Brandon Clarke的BPM遠(yuǎn)遠(yuǎn)高于平均水平纳猫,具有良好的防御指標(biāo)婆咸。
看看布蘭登·克拉克是否會(huì)和德雷蒙德·格林有著相似的職業(yè)生涯,成為全明星會(huì)讓懷疑論者大吃一驚芜辕。他開局不錯(cuò)尚骄,因?yàn)樗辉u為今年NBA夏季聯(lián)賽的最有價(jià)值球員。
結(jié)論和下一步
利用我的模型侵续,前臺可以評估大學(xué)籃球運(yùn)動(dòng)員在被征召前成為NBA全明星球員的可能性倔丈。
這是一個(gè)工具,可以作為傳統(tǒng)偵察的補(bǔ)充询兴。在第二輪選秀中乃沙,如果前臺可以使用這種模式,像德雷蒙德·格林這樣的球員不太可能被選中诗舰。我們很快就會(huì)看到警儒,我預(yù)測的一些更高的可能性是否會(huì)證明球探是錯(cuò)的,并在NBA取得成功眶根。
將來蜀铲,我想收集更多的數(shù)據(jù)。這包括2008年以后的數(shù)據(jù)属百。它還包括新功能的數(shù)據(jù)记劝。我想包括的一些新特征是球員的高中招生排名,在大學(xué)的獲勝次數(shù)族扰,以及來自NBA聯(lián)合會(huì)的運(yùn)動(dòng)測量厌丑。我還想收集國際球員的數(shù)據(jù)定欧,以及那些從高中直接選秀出來的球員的數(shù)據(jù)。
另一個(gè)補(bǔ)充是量化游戲的心理方面怒竿。知道一個(gè)球員在場上的數(shù)據(jù)是很好的砍鸠,但也有其他場外因素可以導(dǎo)致成功。例如耕驰,了解一個(gè)球員的籃球天賦爷辱,了解他們的個(gè)性和行為,對于找到一個(gè)成功的球員和一個(gè)適合某個(gè)特定球隊(duì)的球員至關(guān)重要朦肘。如果能知道球員是否觸犯了法律饭弓,那也是件好事。
這是一個(gè)非常好的項(xiàng)目媒抠,我學(xué)到了很多關(guān)于數(shù)據(jù)科學(xué)工作流程從開始到結(jié)束弟断。我希望以后能提供更多類似的帖子,代碼可以在我的GitHub上找到.