機(jī)器學(xué)習(xí)如何在足球比賽數(shù)據(jù)分析中應(yīng)用?
足球的還沒有實(shí)驗(yàn)過,但是籃球領(lǐng)域已經(jīng)有過類似的研究了:
下文已經(jīng)發(fā)表在第四范式專欄中。
鐺鐺or唰唰,機(jī)器學(xué)習(xí)預(yù)測(cè)科比的投籃中不中?
Part 1
科比·布萊恩特,廣大的中國籃球迷對(duì)于這個(gè)名字應(yīng)該非常熟悉,當(dāng)然也各自懷抱著不同的感情??墒菬o論你是黑還是粉,有一點(diǎn)應(yīng)該是被廣泛認(rèn)可的:科比是21世紀(jì)以來,整個(gè)NBA聯(lián)盟里進(jìn)攻方式最無解、得分技巧最全面的球員。他的每一次出手都伴隨著自信,令對(duì)手提心吊膽,即使可能在那之前他已經(jīng)連丟了許多投籃。橫亙20年的職業(yè)生涯,他的比賽錄像被一遍遍地研究,人們希望能總結(jié)出一些規(guī)律,用以限制這個(gè)幾乎無所不能的男人。
那么問題來了,我們可不可以結(jié)合經(jīng)驗(yàn)和已知的信息,用最科學(xué)的方式評(píng)估科比的某一次出手能夠命中籃筐的幾率呢?答案是肯定的,機(jī)器學(xué)習(xí)對(duì)于分析數(shù)據(jù)、理論預(yù)測(cè)最為在行。在大數(shù)據(jù)的思維下,即使面對(duì)體育比賽這樣瞬息萬變的場(chǎng)景,機(jī)器學(xué)習(xí)也可以發(fā)現(xiàn)其中的“蛛絲馬跡”。
問題起源于kaggle(一個(gè)數(shù)據(jù)科學(xué)社區(qū))上的一次公開競(jìng)賽,我們掌握的數(shù)據(jù)是科比20年NBA職業(yè)生涯中所有投籃出手(field goal attempts)的相關(guān)信息,包含以下這些條目:

除此之外,自然還存在一個(gè)label:shot_made_flag,即本次出手是否命中。所有三萬多條數(shù)據(jù)中的5000條選作測(cè)試集,其label值被隱去,最終的工作就是要在學(xué)習(xí)其余數(shù)據(jù)的基礎(chǔ)上,預(yù)測(cè)這5000次出手命中的可能性。
在預(yù)測(cè)5000次出手命中的過程中,我們也發(fā)現(xiàn)了一些有意思的結(jié)果:
重要的單一特征主要有 3 類,出手類型(細(xì))、出手區(qū)域類型和出手距離。預(yù)測(cè)科比是否能投中,最重要的是一個(gè)組合特征是出手方式(細(xì))和出手距離,特征重要性 0.6099。出手方式和出手距離組合起來,我們能學(xué)習(xí)到在不同的出手距離時(shí),科比不同的出手方式對(duì)最終是否命中有顯著的影響。出手方式和賽季的組合特征也非常有效,特征重要性 0.6049,這兩者結(jié)合起來可能是大數(shù)據(jù)反映出科比在不同賽季拿手或常用的得分方式不同。出手方式和對(duì)手球隊(duì)名被組合起來了,因?yàn)椴煌蜿?duì)的防守傳統(tǒng)不一樣,有些球隊(duì)專注于培養(yǎng)外線鐵閘,有些球隊(duì)熱衷內(nèi)線巨獸;那么面對(duì)不同的防守重心,科比選擇攻擊籃筐還是外線投射在成功率的差別也被挖掘出來了。本節(jié)剩余秒數(shù)、出手類型以及比賽地點(diǎn)經(jīng)度(代表打球的場(chǎng)館)的三階特征組合是很好的指標(biāo),特征重要性 0.5556。比賽編號(hào)也是一個(gè)重要特征,這說明了科比的手感在比賽中有一定的持續(xù)性,有時(shí)候可夜晚非常準(zhǔn),例如對(duì)猛龍的比賽,而有的時(shí)候就會(huì)打鐵一整晚??票瘸鍪贮c(diǎn)的球場(chǎng)位置也有很強(qiáng)的預(yù)測(cè)性,但其中出手點(diǎn)的 x 坐標(biāo)(球場(chǎng)寬邊的坐標(biāo))要比 y 坐標(biāo)更重要(球場(chǎng)長(zhǎng)邊的坐標(biāo))?;谶@些特征,我們最終可以預(yù)測(cè)科比的投籃是否命中,以logloss為評(píng)估指標(biāo)。目前kaggle最好的效果是 0.56529。Part 2
好了,介紹完背景,準(zhǔn)備好數(shù)據(jù),接下來就該第四范式斥巨資開發(fā)的先知平臺(tái)登場(chǎng)了。借助于這個(gè)科學(xué)方便的機(jī)器學(xué)習(xí)平臺(tái),我們可以系統(tǒng)、直觀地完成這個(gè)機(jī)器學(xué)習(xí)課題。
要想讓計(jì)算機(jī)學(xué)會(huì)評(píng)估科比的投籃成功率,我們自然得提供已知的范例來“教會(huì)”它。有了前面列出來的這些信息,事情就好辦了。其實(shí)只有三個(gè)問題需要明確:
1.科比的投籃成功率和什么有關(guān)?
每一個(gè)信息條目,就代表著科比此次出手的一項(xiàng)特征(feature)。既然是特征,那么肯定與是否命中這一結(jié)果息息相關(guān),例如:
比賽剩余時(shí)間:影響著科比出手時(shí)的興奮和緊張程度出手距離:直接決定瞄準(zhǔn)難度賽季:區(qū)分出年齡和傷病因素等等仔細(xì)觀察某些特征,還能發(fā)現(xiàn)不少有趣的東西。例如球隊(duì)名這一項(xiàng)就體現(xiàn)不出什么價(jià)值,因?yàn)榭票榷甓即谕恢蜿?duì);對(duì)手這一變量更是饒有意味,舉個(gè)例子來說,熟悉科比的球迷應(yīng)該都知道,他一打猛龍就來勁。
2.有哪些因素應(yīng)該組合起來描述科比的投籃?
在很多時(shí)候,單一特征不足以完整反映此次出手的某個(gè)性質(zhì),我們需要將若干特征組合在一起使用,以更合理地幫助計(jì)算機(jī)訓(xùn)練模型。
第四范式提供自動(dòng)的特征組合算法——FeatureGo,簡(jiǎn)單地使用“自動(dòng)特征組合”算子,先知平臺(tái)就可以開始他的表演。

有一組被組合起來的特征是shot_zone_area(出手區(qū)域,包括左側(cè)、右側(cè)等)和shot_zone_basic(出手區(qū)域類型,包括中距離、外線、禁區(qū)等),這兩項(xiàng)特征被組合起來的理由易于理解,同時(shí)確定了角度和距離才可以定位科比出手的位置,組合起來使用是科學(xué)的方式。
還有一組特征,action_type(出手方式,包括跳投、上籃等)和opponent(對(duì)手球隊(duì)名)也被組合起來了。乍一看這是沒有什么聯(lián)系的一組,可是仔細(xì)一分析卻會(huì)有收獲:球隊(duì)各自的防守傳統(tǒng)不一樣,有些球隊(duì)專注于培養(yǎng)外線鐵閘,有些球隊(duì)熱衷內(nèi)線巨獸;那么面對(duì)不同的防守重心,科比選擇攻擊籃筐還是外線投射在成功率上的區(qū)別應(yīng)該有所體現(xiàn),因此,先知平臺(tái)從數(shù)據(jù)層面發(fā)現(xiàn)了這一專家經(jīng)驗(yàn),幫助我們更優(yōu)地提取特征。
3.哪些因素對(duì)科比投籃影響最大?
特征種類很多,相關(guān)度自然有高有低。我們最關(guān)心的,當(dāng)然是對(duì)結(jié)果影響力最強(qiáng)的那些特征,先知平臺(tái)可以很方便地幫我們尋找出來。
我們通過先知完成特征抽取之后,可以連接“特征重要性分析”算子,通過計(jì)算后就可以得到各項(xiàng)特征在機(jī)器學(xué)習(xí)過程中的重要性排序。

先知告訴我們,與科比投籃成功率關(guān)聯(lián)相對(duì)最大的一項(xiàng)特征是action_type(出手方式,包括跳投、上籃等),原因可能在于不同的出手方式,其命中率差別本身就較大,例如科比的上籃(包括扣籃)的命中率肯定會(huì)高于其中距離跳投,而中投的成功率和三分相比又會(huì)略勝一籌。類似的,下面是其他一些重要的特征:
action_type,shot_distance(組合):出手方式和出手距離組合起來,我們能學(xué)習(xí)到在不同的出手距離時(shí),科比不同的出手方式對(duì)最終是否命中有顯著的影響。action_type,season(組合):出手方式和賽季,這兩者結(jié)合起來可能是大數(shù)據(jù)反映出科比在不同賽季拿手或常用的得分方式不同。shot_zone_basic:出手區(qū)域的類型,包括禁區(qū)、中距離、外線等,這也是對(duì)命中率區(qū)分度較大的因素。shot_distance:出手距離,這項(xiàng)單一特征的影響力不用解釋。combined_shot_type:粗分的出手方式,同樣對(duì)命中率產(chǎn)生影響。shot_zone_range:出手區(qū)域,包括左側(cè)、右側(cè)等,這可能反映出科比進(jìn)攻選擇時(shí)在不同區(qū)域舒適度有高低。有了對(duì)于特征重要度的分析報(bào)告,我們?cè)谔幚碇匾院芨叩奶卣黜?xiàng)時(shí)就應(yīng)該更加注意,謹(jǐn)慎考慮是否分桶、其泛化性如何等等關(guān)鍵問題。
Part 3
有了上述的分析,我們已經(jīng)打好了堅(jiān)實(shí)的基礎(chǔ),當(dāng)然,預(yù)測(cè)科比的投籃沒有這么簡(jiǎn)單,但是先知的“黑科技”也不遠(yuǎn)止于此,我們一步一步來實(shí)現(xiàn)它。
首先,我們需要將整個(gè)數(shù)據(jù)上傳至先知平臺(tái),可以看到其中包含了科比職業(yè)生涯一共30697次出手的相關(guān)數(shù)據(jù)。

引入數(shù)據(jù)后,我們拖入“數(shù)據(jù)拆分”算子,先將這三萬條數(shù)據(jù)拆成訓(xùn)練集和測(cè)試集,對(duì)于訓(xùn)練集中的兩萬五千條數(shù)據(jù),簡(jiǎn)單地按照9:1的比例隨機(jī)拆分成訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)。
拆分?jǐn)?shù)據(jù)完成之后,就是提取特征的過程,這一過程針對(duì)不同變量有著不同的提取方式:有些離散值可以直接使用,有些連續(xù)變量則需要分桶;小數(shù)位保留太多泛化性不夠,就需要向下取整;單一變量不足以完整反映某項(xiàng)特性,就要多個(gè)組合起來……這些復(fù)雜、技巧性強(qiáng)的過程先知平臺(tái)都可以輕松幫你搞定:拖入“特征組合”算子,設(shè)定好學(xué)習(xí)率和隨機(jī)調(diào)參次數(shù)之后,先知會(huì)為我們算出若干種特征抽取和組合方式,由于 logloss 和 AUC 具有數(shù)學(xué)一致性,選擇其中AUC最高的一種來使用即可。

在完成特征提取的工作之后,下一步就要應(yīng)用學(xué)習(xí)算法來生成一個(gè)預(yù)測(cè)模型了。數(shù)據(jù)經(jīng)過特征自動(dòng)組合之后已經(jīng)全部離散化,因此我們選擇邏輯回歸算法來做訓(xùn)練。同樣地,我們面臨調(diào)參這個(gè)讓人頭大的問題,別擔(dān)心,先知依然可以幫你快速搞定。我們使用“邏輯回歸自動(dòng)調(diào)參”算子,只需要設(shè)定調(diào)參次數(shù)、參數(shù)范圍這樣一些基本的指標(biāo),就可以達(dá)成反復(fù)試驗(yàn)以得到最佳參數(shù)的目的。


經(jīng)過自動(dòng)調(diào)參后,我們把最佳的參數(shù)填入邏輯回歸的參數(shù)表中,這樣輸出就將是一個(gè)訓(xùn)練好的機(jī)器學(xué)習(xí)模型。下面就需要對(duì)其質(zhì)量做一個(gè)檢驗(yàn),利用之前訓(xùn)練集分出來的測(cè)試數(shù)據(jù)做模型預(yù)測(cè)。由于評(píng)估標(biāo)準(zhǔn)是logloss,在輸出后連接一個(gè)SQL算子,計(jì)算預(yù)測(cè)結(jié)果的logloss值。


可以看見,logloss值還較小,測(cè)試通過。最后一步,我們需要把這個(gè)模型應(yīng)用到label未知的測(cè)試集上,以得到最終的結(jié)果。出于模塊化的考慮,我們把這個(gè)模型導(dǎo)出,重新命名發(fā)布,那么之后就可以直接使用這個(gè)訓(xùn)練好的模型了。由于測(cè)試集中各數(shù)據(jù)的label為空,而先知平臺(tái)目前暫時(shí)還不能對(duì)空集做特征抽取,因此我們引入一個(gè)PySpark自定義腳本,把這個(gè)空值設(shè)為0。接著,我們使用與前面一致的特征抽取方法對(duì)測(cè)試集特征做處理,再套上先前的模型,就可以很方便地輸出結(jié)果了。


Part 4
至此,我們完成了利用機(jī)器學(xué)習(xí)評(píng)估科比單次投籃命中概率的全過程。整體看下來,先知平臺(tái)完成一個(gè)機(jī)器學(xué)習(xí)項(xiàng)目所表現(xiàn)出的靈活性與方便性都非常突出。通過先知,我們可以省去很多繁瑣復(fù)雜的步驟,克服很多頗具難度的問題,不僅提高了效率,也降低了機(jī)器學(xué)習(xí)應(yīng)用的門檻。
回到這個(gè)課題本身,讓我們來看看結(jié)果里的數(shù)據(jù),概率高的那些情形,科比一定是最飄逸、最擅長(zhǎng)的;概率低的那些情形,科比可能是最無助、最偏執(zhí)的。這個(gè)留在無數(shù)少年青春里的男人,完成了那么多壯舉,也背負(fù)了那么多罵名,如今都過去了。封存在那一串串?dāng)?shù)字里的,有他的痛點(diǎn),有我們的回憶,可更多的,是一種堅(jiān)持。
明白了這些,或許你就能化身懂球帝,對(duì)著墻上張貼的海報(bào)說:
科比,我已經(jīng)看穿了你。
如果你對(duì)我們感興趣,請(qǐng)?jiān)谶@里申請(qǐng)先知平臺(tái):https://prophet.4paradigm.com
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由財(cái)神資訊-領(lǐng)先的體育資訊互動(dòng)媒體轉(zhuǎn)載發(fā)布,如需刪除請(qǐng)聯(lián)系。