金映言 賈俊鋮 洪敏杰 李云飛
(蘇州大學計算機科學與技術系 江蘇 蘇州 215000)
籃球作為一種強對抗的運動,具有刺激性、觀賞性、趣味性的特點,深受人們的喜愛?;@球比賽中美國男子籃球職業聯賽(NBA)更是受到了廣大籃球愛好者的追捧。近年來,越來越多的研究人員都在對NBA比賽數據進行分析。可是,大部分對籃球數據的分析都是基于某一個角度的數據來進行分析,例如投籃命中率、出手機會等,很少有從各個角度綜合分析數據的工作。同時,大多數的數據分析結果都是使用折線圖、柱狀圖等這些常見的顯示圖來表示數據分析結果,比較單一。
在可視化不斷發展的情況下,出現了很多可以表示數據的形式,也可以綜合多視圖做數據展示。通過對原始數據直接或間接映射為可視化表達方式,可以更直接地展示數據的規律和變化趨勢,從結果中迅速發現數據異常,并可通過多視圖聯動等交互方式輔助用戶分析問題的原因。
因此為了解決缺少數據分析及可視化結構單一和在視圖方面圖例單一、圖與圖之間缺乏聯動性的問題,本文系統利用獲得的NBA整個賽季的比賽數據,多角度分析比賽數據并進行多元可視化。本文系統對獲取的比賽數據進行整理統計,并進行組合比較、歸一化等數據分析,然后分別從整個賽季和賽季中單場比賽這兩個角度對NBA球員的比賽能力做如下分析。
(1) 分析整個賽季的球員數據:按照球員的位置進行分類比較,因為相同位置的功能是一樣的,對球員的能力要求相同,在球隊中所扮演的角色也是一樣的,因此能夠清晰地看出每個球員之間的數據對比和差距。從上場時間、得分、投籃命中率、助攻、籃板球、失誤、犯規等各個角度來看每個選手的各項數據對比,可以分析出每個選手的特點。
(2) 分析選手的單場比賽數據:按照上場時間、得分、投籃命中率、助攻、籃板球、失誤等各個角度來看該選手每場比賽的各項數據變化趨勢,可以看出該選手的狀態或者能力變化。利用單場比賽中雙方球隊相同位置的球員進行對比可以直觀地發現兩者在能力上的差距,發現該球員的不足之處。
文獻[1]將經濟推理與大規??臻g數據建模相結合,對NBA球隊與球員戰略進行新的分析。文獻[2]通過比較國內和國外的球員比賽能力數據,雖然涉及了球員的得分、籃板球、助攻、搶斷、蓋帽、失誤、犯規等多個方面,但其只是單純地進行數據大小比較,并沒有進行深入的分析比較。文獻[3]用累積的勝利概率預測了籃球比賽中球隊和個體球員的表現。文獻[4]為了探討運動員能力評估模型,主要運用多元分析的主成分分析和因子分析,借助SPSS軟件對數據進行分析,從測量運動員技術水平的得分、助攻、投籃命中率等10個指標入手,得出各項指標和公因子表達式。文獻[5]提出了兩種用于分析NBA場地評分數據的新設備,兩者都基于對加減統計量的簡單概括,就是將正負值擴展到團隊級別。文獻[6]利用GPS設備實時獲取球員位置的數據,通過統計和運動學來進行對球員的位置追蹤,對于教練在團隊和個人績效分析方面很有價值。
文獻[15]從學生成績及其影響因素角度分析對于優化大學課程安排和提升教學質量的意義,根據成績數據的特點,設計了多視圖協同交互的學生成績可視分析系統,通過矩陣熱力圖、平行坐標系與弧長鏈接圖、節點鏈接樹等多視圖實現分別從課程、學生和教師角度出發的交叉分析與連貫推理。文獻[17]提出了一個多視圖合作的網絡流量時序數據可視化分析原型系統,該系統由平行坐標系、矩陣視圖、柱狀圖、樹形結構視圖四個協同交互、簡單易用的可視圖實現可視化。
文獻[7]簡述了根據不同體育項目的特性,設計了適合其體育項目的可視化圖像,敘述了利用文本數據、視頻數據等相關數據顯示籃球、棒球、乒乓球、足球、臺球的相關圖示,并且從運動員個人、團隊、場地等多個方面分析并可視化該角度的特點和數據特征,用戶可以根據該視圖直觀地發現想要的結果。文獻[8]利用boxscore data、tracking data和meta-data三種數據使用不同的數據可視化方法研究各項運動的情況,通過不同的方式角度顯示各運動項目的數據。
iTTVis[9]是一種新穎的交互式乒乓球可視化系統,是第一個用于分析和探索乒乓球數據的視覺分析系統。 iTTVis從時間導向、統計和戰術分析三個主要角度提供了整個比賽的整體可視化,具有多個協調視圖的系統,不僅支持通過統計和模式檢測來確定相關性,還可以通過交叉分析獲得洞察。
Baseball Timeline[10]是一項關于如何在2D圖表上清楚地描繪玩家行為的研究,以時間軸的形式表示時空信息,即通過時間變化來展示棒球比賽中的運動員位置的移動。
現有的很多籃球數據分析可視化很多都是與投籃技術相關。文獻[11]是從投籃的角度分析球員,它主要利用投籃的位置做可視化,表現出投籃位置與命中率的關系。文獻[12]也是從投籃的角度分析球員的能力,提出了一種量化NBA球員投籃范圍的新方法,并提出了衡量、繪制和揭示NBA球員投籃能力差異的方法,通過可視化讓用戶直觀地在圖上看到投籃位置、投籃命中率。文獻[13]引入了一套新的防守性指標,通過數據來判別防守情況,旨在通過豐富防守性的測量來提升籃球分析領域的水平,并通可視化的方法顯示防守站位情況和站位對防守成功率的影響程度。文獻[14]提供了一個可視化系統,通過boxscore、play-by-play、視頻等資源數據從整個賽季、單場比賽、一節比賽這三個不同的角度顯示了每個球隊的比賽情況,而本文系統是從不同的角度分析球員的比賽數據,分析球員的各項能力。GameViews[16]分別從體育工作者和球迷兩個角度,根據他們不同的需求對所獲取的比賽數據進行展示。
基于上述研究,本文系統創新如下:
(1) 分析籃球數據的方法多數都是針對某一個方面的具體分析,而本文系統是從多方面來分析球員的比賽數據情況。通過賽季、單場比賽數據等多數據角度來分析球員的比賽表現。
(2) 本文系統不僅分析了每個球員綜合能力和在每場比賽中的個人能力及表現,還比較比賽中相對位球員的表現及綜合表示,可以讓用戶對比類似球員的能力,并且可以比較球員在球隊中的表現及作用。
本系統從ESPN網站上獲取了2016—2017賽季賽的比賽數據,包括所有比賽的單場球員數據boxscore和所有比賽的統計數據teamstats,其中boxscore數據如圖1所示。

圖1 ESPN上boxscore數據
本文系統利用爬蟲技術將所有球隊的所有比賽抓取下來,然后將爬取下來的數據按照球隊分類形成文件。
每個球隊有boxscore和teamstats兩張表,如圖2所示。boxscore表具體顯示整個賽季該球隊所有的比賽數據,包含每場比賽的參賽隊伍及比分、每個球隊上場的球員名單及其表現數據,如圖2(a)所示,其每一行顯示了上場球員的該場數據表現,從左往右分別表示球員名、打球位置、是否首發、上場時間、投籃命中率、三分球投籃命中率、罰球投籃命中率、進攻籃板、防守籃板、總籃板、助攻、搶斷、蓋帽、失誤、犯規、正負值、得分。teamstats顯示了該球隊賽季所有比賽的單場雙方球隊各項表現數據,如圖2(b)所示,數據類型除了和boxscore表中的數據類型一樣之外,還包含不同失誤的數據統計,包括個人犯規、技術犯規、惡意犯規,但是在表中只顯示部分數據。

(a) boxscore數據格式
利用各球隊的boxscore中每場比賽的上場隊員情況,整理出每隊每個球員的參賽情況及參賽的各項數據。如果該球員沒有上場,則除了顯示基本的球員信息以外,在“上場”的這個類別上說明該球員未上場的原因并且令之后的數據表現類別為空,如表1所示。根據每個球員表,整理出每個球隊的隊員表和每個位置的球員表,如表2所示。并根據球員表,把每個人的賽季總成績除去沒有上場的情況,統計整個賽季的情況。

表1 球員所有比賽數據

表2 球員、球隊、位置表
利用整理完的球員表和球員位置表,將球員按照位置進行分類,相同位置的球員所有比賽數據放在一張表中。為了便于比較,將所有除球員基本信息數據以外的各項比賽數據按列(數據類別)進行歸一化:
(1)

由于數據類型及關系較復雜,本文設計了數據模型ER圖,如圖3所示,橢圓形加粗表示為該表的主鍵。

圖3 ER圖
本文把所有數據整理成球員表、球隊表和球賽表三張表。
(1) 球員表包含球員的信息,包括姓名、球隊名、打球位置、上場時間、罰球命中率、三分球命中率、投籃命中率、前場籃板、防守籃板、總籃板數、助攻、搶斷、蓋帽、失誤、犯規、得分。(2) 球隊表包含球隊信息,包括名稱和球員名。(3) 球賽表包含該場比賽的信息,包括編號、球隊名、球員名、上場時間、罰球命中率、三分球命中率、投籃命中率、前場籃板、防守籃板、總籃板數、助攻、搶斷、蓋帽、失誤、犯規、得分。
根據所獲取的不同角度的數據,用戶可以分別從整個賽季和單場比賽情況兩個角度,來查看球員的能力情況和狀態變化,有利于更好地分析球員能力和狀態變化,可以給球員提供合適的訓練方式。
2.3.1賽季分析
1) 球員、球隊、位置關系分析。描繪所有球員所屬球隊和打球位置關系,并且進行顯示。用戶可以先從整體框架上了解這個球員的所屬情況,也可從這個框架里了解球員情況。
2) 按照打球位置分類,相同位置球員賽季能力比較。因為所有的球員人數太多,不利于排序比較和觀察,所以本系統選擇從打球位置的類別來進行排序。這樣,由于相同位置對球員的能力要求基本也是一致的,這樣對于能力的比較也是一致的,有利于更加直觀地查看到球員的能力差別。
相同位置球員,按照球員名字排序,顯示球員在上場時間、得分、命中率、籃板數、助攻數、失誤率等不同方面的數據,并且將每項數據都進行排名,有利于用戶直觀地看出每個球員在各項數據上的排名和各項能力。
3) 球員賽季能力分析。通常對一個球員的能力表現主要以得分為主,但是這樣分析是不客觀的,應該從多角度來評判球員的各項能力。所以,在本系統對分數排序的基礎上,還對投球命中率、籃板球數、助攻次數、犯規次數等進行分析。如此有利于用戶從球隊角度,來全面地了解球員的各項能力。
由于整個賽季每個人上場的場數和時間都不一樣,所以依照賽季總數據雖然能看到每個人的綜合數據對比,但是要是完全依據總成績來評判一個球員的能力是不合理的,基于此,本文系統又取了總成績按照上場時間的加權平均值進行比較,可以看到球員的真實能力。可以從總成績和平均成績兩個角度來分析球員能力。Y球員第j項數據類別的加權平均值計算為:
(2)
式中:yij為球員Y個人數據表中的第i行第j列的數據,即為第j個數據類別的第i個數據;n為球員Y的數據條數,即為其上場的次數。
2.3.2單場比賽分析
1) 單場比賽數據變化。本文系統根據每次單場比賽數據,對該球員整個賽季的得分、投籃命中率、上場時間、籃板數、助攻數、搶斷數、失誤數、犯規數等各項數據進行比較,發現該球員的狀態起伏和能力變化。
2) 單場比賽中,球員與對手的數據比較。本文系統根據單場比賽中,對方球隊相同位置的選手的能力對比,展現出雙方的實力差距。由于球隊比賽一般有多場,用戶可以利用多場比賽數據來比較球員能力。
3) 單場比賽中,球員對球隊的作用。根據球員每場比賽的各項數據表現和球隊的各項數據,分別將相同類別的數據進行比較,可以清晰地看出該球員在該場比賽中對球隊的數據貢獻。
基于此,用戶可以比較同球隊同位置的球員們之間的能力情況和狀態變化,有利于后期的訓練安排和選擇某個球員進行著重培養,也可以根據情況安排不同的球員上場。后期還可以根據打球位置的球員能力比較,買進想要的、符合球隊要求的、適合球隊球員能力的球員,利于球隊的整體發展。
本文系統從不同角度設計了以球員為主體的可視化視圖,有利于用戶從多角度理解分析球員的能力和狀態變化。
同時,在不同場景下,本文利用不同的可視化圖形來展示數據分析的結果。具體地,本文通過使用Echarts所含有的可視化圖形,包括桑基能量圖、平行坐標系、雷達圖、餅圖、折線圖等圖形進行整合,綜合多項數據通過多圖表的形式表現對球員在多種角度下的能力分析結果。
3.1.1球員、球隊、位置關系圖
為了直觀地表示球員所屬球隊、球隊中所擁有的球員、球員所打位置,本文系統基于桑基圖進行表示。桑基圖即?;芰糠至鲌D,也叫?;芰科胶鈭D,是一種特定類型的流程圖,圖中延伸的分支的寬度對應數據流量的大小。
如圖4所示,第一列為total,作為起始,寬度為所有球員的數量,連接到所有球隊;第三列是player,包含所有的球員名稱,寬度為其所打的位置,因為球員打球的位置是一定的,所以寬度為1,連接到所屬位置;第四列是position,里面包含所有球員打球位置,寬度為所屬該位置的球員數量。

圖4 球員、球隊、位置關系
3.1.2賽季總體人員分析
本文系統整理了每個球員的賽季總成績,包括上場次數、首發次數、上場時間、得分、命中率、 籃板數、助攻數、失誤數、犯規數,同時去除掉球員沒有參賽的場次,并且記錄了該場次沒有上場的原因。雖然已經從多角度反映球員本賽季的情況,但是用總成績來反映球員的實力還是不太合理,本系統還利用加權(利用上場時間來做加權)平均成績的結果來反映球員的能力。
利用整理好的多項數據對球員數據進行顯示,利用平行坐標系來對球員的各項成績進行排序,這樣可以從多個角度觀察一個球員的各項能力而不只是從單純的得分情況。但是,由于總的球員數有四百多個,顯示在一幅圖上會很模糊,不能直觀地看出區別,所以可以根據球員的打球位置將球員分類,這樣不僅減少了比較數量,還因為每個位置所需要的能力相似,所以比較起來更合理、更明顯。
根據每個位置的特點,本文系統總結出了與每個位置相關的最重要的數據,并列出了前十名的排名,如圖5所示,其中C(中鋒)位置的重要數據就是籃板球次數。

圖5 球員賽季各項數據展示
3.1.3賽季球員能力分析
本文系統不僅利用了平行坐標系來看比較球員之間的各項數據排名,還利用能力圖來直觀地展示球員的整體能力。使用歸一化的方法將每個數據都控制在[0,1]之內,以便更好地將所有球員的數據表現在能力圖中,有利于比較球員的總體能力。
根據球員賽季總體數據和平均數據,使用如圖6所示的能力圖表現出在兩個角度的球員能力分布,可以發現即使是同一個球員在總體數據和平均數據上面都會存在一定的數據差異,說明該球員因為其上場時間足夠,所以他的總體數據就會很高,但是從平均成績上來看,就能發現一定的問題,其在上場時間內的有效率可能沒那么高。

圖6 單人球員分析
3.2.1球員各單場數據比較
根據球員整個賽季的表現,如圖6所示,利用折線圖反映出球員首發、上場時間、總投籃命中率、投籃數、三分球投籃命中率、三分球投籃數、罰球命中率、罰球數、籃板數、助攻數、搶斷數、失誤數、犯規數、得分數等各項數據的整個賽季的表現,可以發現球員的能力表現和狀態變化。圖中的零值點表示該球員并沒有上場。
3.2.2單場比賽球員對比
根據單場比賽的數據,比較兩支球隊的相同位置的球員單場能力,如圖7所示,利用雷達圖來表現兩個球員在該場比賽中的能力表現。利用平行坐標系來表現出該場比賽兩位球員各項能力的數據對比,這樣可以全面地看出兩位球員在次場比賽中的表現對比。并且比較他們在重要數據上的整個賽季數據變化,發現此場比賽在其以往的比賽中發揮情況,畢竟不能因為一場比賽就能比較出兩者的差距。

圖7 球員對比
根據此場比賽的兩支球隊勝負情況,將該場比賽輸的隊伍使用綠色表示,贏的則用紅色表示。
3.2.3單場比賽球員在球隊中表現
根據單場比賽球員數據和球隊數據,總結出此場比賽中該球員在球隊中的各項表現。利用餅圖來顯示球員在比賽中投籃命中的次數、籃板、助攻、失誤、犯規、分數在隊中的百分比,可以明顯看出該球員對球隊的作用。
以2016—2017賽季Cavaliers隊的LeBron James為例,Cavaliers隊一共比賽81場,其中James報名參賽80場,出場參賽73場,并且首發出場73場。
從整個賽季來看,因為James打得是SF(小前鋒)的位置,所以我們在位置上選擇SF。頁面展現出所有球員中這個位置的數據情況,如圖8所示,可以粗略地看出James的各項能力的數據排位。James在得分這一數據模塊上是最多的,表現出來他的得分能力是很強的。同時,他的籃板數和助攻數也是在同位置球員中最多的,其他數據也在前列。但是,很明顯James的失誤量也是最大的,這就反映出他的不穩定性,一定要注意失誤的產生,盡量減少失誤。

圖8 位置為SF(小前鋒)的所有球員的賽季各項數據比較圖
由于整圖數據量還是很大,所以可以選擇想要比較的一些球員,如圖9所示。Andrew Wiggins雖然上場時間是最長的,分數排第二,但是他的投籃命中率并不是那么高,而且其他數據都是比較平均的,說明他創造機會的能力比較強,得分比較厲害。Trevor Ariza是搶斷最多的,其他的數據表現都一般,而且控球比較多,所以很明顯他的分工角色不是主要的得分點。

圖9 篩選球員比較

(a) 賽季總能力 (b) 賽季平均能力圖10 James賽季能力比較

(a) James賽季單場三分球命中率

(a) James在第一場比賽中對球隊的作用
對James賽季總能力進行比較,本文系統通過兩個角度來分析James整個賽季的能力表現,如圖10所示??梢钥闯觯痘@命中率、助攻、搶斷和失誤并沒有因為做了平均值而產生很大的改變,而籃板球和犯規值變化卻很大,很明顯上場的時間長度影響了數據分析。單位時間內James的籃板數并不是很高的,雖然這不能說明他的籃板能力不強,但是也證明了有比他籃板能力更強的球員,一味地相信總數據也是不合理的。
很明顯,如果只依據總成績來分析個人能力的話,就會誤會James的失誤比較多,只是因為上場時間過長,更加容易失誤,因此在同樣的單位時間上,James的失誤率并沒有那么高。
本文系統又分析了James整個賽季的所有單場比賽數據,并且將不同角度數據顯示在不同的折線圖上,特別指出里面的零值為James沒有上場的場次。以總投籃為例,如圖11所示,為了有利于比較,本文系統將投籃命中率的折線圖和投籃次數的折線圖同時顯示。可以看出,總體的投籃數還算是比較穩定的,基本上穩定在每場比賽15~25次之間,投籃命中率在0.4~0.7之間波動。但是仔細分析兩幅圖,可以發現當投籃次數少的時候,投籃命中率也會較低,反之投籃次數多的時候,投籃命中率也會較高,所以當投籃機會變多,手感也會變好,命中率也會較高。
以Cavaliers與Pacers這兩只球隊的比賽為例,這兩只球隊2016—2017常規賽階段總共比賽4次,但是由于其中一場James沒有上場,本系統并沒有顯示此場比賽。以James和同位置的球員Paul George作比較,球員能力圖與前文所示類似,故不再展示。
由三場比賽的兩個人的能力圖可見,George的表現起伏比較大,而James相對來說比較穩定。James的投籃命中率都高于George,在其他方面James總體都比George發揮得要好,主力球員的狀態和能力也決定了球隊的實力。
利用單場比賽的各項數據,使用餅圖清晰地看出James的各項成績占球隊總成績的百分比,即在該場比賽中對球隊所做出的貢獻。
三場比賽的餅圖,如圖12所示??梢钥闯?,James投籃數、助攻數和得分基本上占了全隊的25%,三分球的占比在逐漸提高,籃板在球隊中作用并沒有那么大,并不像總體數據顯示的那樣,也有可能是由于對手的緣故,這一方面還要做更多的研究。
通過對球員James的具體分析,詳細說明了本文系統的使用,以及能夠利用本系統從多角度分析球員能力,而不是單一的只著重其中一點,本文系統能夠讓球員從數據方面意識到自身的不足之處。
為了對NBA球員的能力進行全方位的分析,本文介紹了一個利用賽季數據從多角度分析NBA球員各方面能力的系統。該系統分別從賽季總數據和單場比賽數據角度分析了球員的包括上場時間、投籃命中率、籃板數、助攻數、搶斷數、失誤數、犯規數、得分數等方面的能力,根據打球位置的不同綜合分析了各位置、各球員的能力差距。本文通過對球員James的數據分析,詳細介紹了系統的使用方法,體現了系統的實用型和有效性。該系統給籃球教練、分析師及球員提供了全面的球員數據分析,更加直觀地讓他們了解球員的各項能力,能給他們的訓練和排兵布陣提供幫助。
未來將繼續豐富和加強該系統。一方面,將提高系統的數據量,不單單是一個賽季數據,這樣有利于更全面更客觀地分析球員的各項能力;另一方面,將加強數據的維度,除了boxscore和teamstats數據之外,可以利用play-by-play這種單場比賽中發生的所有情況的數據,將每場比賽進行細化,還原每場比賽的實時數據,使得對球員的能力分析更加細化。