面向NBA球员的数据分析和可视化

2021-08-12 08:32金映言贾俊铖洪敏杰李云飞
计算机应用与软件 2021年8期
关键词:单场命中率上场

金映言 贾俊铖 洪敏杰 李云飞

(苏州大学计算机科学与技术系 江苏 苏州 215000)

0 引 言

篮球作为一种强对抗的运动,具有刺激性、观赏性、趣味性的特点,深受人们的喜爱。篮球比赛中美国男子篮球职业联赛(NBA)更是受到了广大篮球爱好者的追捧。近年来,越来越多的研究人员都在对NBA比赛数据进行分析。可是,大部分对篮球数据的分析都是基于某一个角度的数据来进行分析,例如投篮命中率、出手机会等,很少有从各个角度综合分析数据的工作。同时,大多数的数据分析结果都是使用折线图、柱状图等这些常见的显示图来表示数据分析结果,比较单一。

在可视化不断发展的情况下,出现了很多可以表示数据的形式,也可以综合多视图做数据展示。通过对原始数据直接或间接映射为可视化表达方式,可以更直接地展示数据的规律和变化趋势,从结果中迅速发现数据异常,并可通过多视图联动等交互方式辅助用户分析问题的原因。

因此为了解决缺少数据分析及可视化结构单一和在视图方面图例单一、图与图之间缺乏联动性的问题,本文系统利用获得的NBA整个赛季的比赛数据,多角度分析比赛数据并进行多元可视化。本文系统对获取的比赛数据进行整理统计,并进行组合比较、归一化等数据分析,然后分别从整个赛季和赛季中单场比赛这两个角度对NBA球员的比赛能力做如下分析。

(1) 分析整个赛季的球员数据:按照球员的位置进行分类比较,因为相同位置的功能是一样的,对球员的能力要求相同,在球队中所扮演的角色也是一样的,因此能够清晰地看出每个球员之间的数据对比和差距。从上场时间、得分、投篮命中率、助攻、篮板球、失误、犯规等各个角度来看每个选手的各项数据对比,可以分析出每个选手的特点。

(2) 分析选手的单场比赛数据:按照上场时间、得分、投篮命中率、助攻、篮板球、失误等各个角度来看该选手每场比赛的各项数据变化趋势,可以看出该选手的状态或者能力变化。利用单场比赛中双方球队相同位置的球员进行对比可以直观地发现两者在能力上的差距,发现该球员的不足之处。

1 相关工作

1.1 篮球数据分析

文献[1]将经济推理与大规模空间数据建模相结合,对NBA球队与球员战略进行新的分析。文献[2]通过比较国内和国外的球员比赛能力数据,虽然涉及了球员的得分、篮板球、助攻、抢断、盖帽、失误、犯规等多个方面,但其只是单纯地进行数据大小比较,并没有进行深入的分析比较。文献[3]用累积的胜利概率预测了篮球比赛中球队和个体球员的表现。文献[4]为了探讨运动员能力评估模型,主要运用多元分析的主成分分析和因子分析,借助SPSS软件对数据进行分析,从测量运动员技术水平的得分、助攻、投篮命中率等10个指标入手,得出各项指标和公因子表达式。文献[5]提出了两种用于分析NBA场地评分数据的新设备,两者都基于对加减统计量的简单概括,就是将正负值扩展到团队级别。文献[6]利用GPS设备实时获取球员位置的数据,通过统计和运动学来进行对球员的位置追踪,对于教练在团队和个人绩效分析方面很有价值。

1.2 可视化方法

文献[15]从学生成绩及其影响因素角度分析对于优化大学课程安排和提升教学质量的意义,根据成绩数据的特点,设计了多视图协同交互的学生成绩可视分析系统,通过矩阵热力图、平行坐标系与弧长链接图、节点链接树等多视图实现分别从课程、学生和教师角度出发的交叉分析与连贯推理。文献[17]提出了一个多视图合作的网络流量时序数据可视化分析原型系统,该系统由平行坐标系、矩阵视图、柱状图、树形结构视图四个协同交互、简单易用的可视图实现可视化。

1.3 体育可视化

文献[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) 本文系统不仅分析了每个球员综合能力和在每场比赛中的个人能力及表现,还比较比赛中相对位球员的表现及综合表示,可以让用户对比类似球员的能力,并且可以比较球员在球队中的表现及作用。

2 数据预处理和需求分析

2.1 数据预处理

本系统从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)

2.2 数据模型设计

由于数据类型及关系较复杂,本文设计了数据模型ER图,如图3所示,椭圆形加粗表示为该表的主键。

图3 ER图

本文把所有数据整理成球员表、球队表和球赛表三张表。

(1) 球员表包含球员的信息,包括姓名、球队名、打球位置、上场时间、罚球命中率、三分球命中率、投篮命中率、前场篮板、防守篮板、总篮板数、助攻、抢断、盖帽、失误、犯规、得分。(2) 球队表包含球队信息,包括名称和球员名。(3) 球赛表包含该场比赛的信息,包括编号、球队名、球员名、上场时间、罚球命中率、三分球命中率、投篮命中率、前场篮板、防守篮板、总篮板数、助攻、抢断、盖帽、失误、犯规、得分。

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) 单场比赛中,球员对球队的作用。根据球员每场比赛的各项数据表现和球队的各项数据,分别将相同类别的数据进行比较,可以清晰地看出该球员在该场比赛中对球队的数据贡献。

基于此,用户可以比较同球队同位置的球员们之间的能力情况和状态变化,有利于后期的训练安排和选择某个球员进行着重培养,也可以根据情况安排不同的球员上场。后期还可以根据打球位置的球员能力比较,买进想要的、符合球队要求的、适合球队球员能力的球员,利于球队的整体发展。

3 可视化设计

本文系统从不同角度设计了以球员为主体的可视化视图,有利于用户从多角度理解分析球员的能力和状态变化。

同时,在不同场景下,本文利用不同的可视化图形来展示数据分析的结果。具体地,本文通过使用Echarts所含有的可视化图形,包括桑基能量图、平行坐标系、雷达图、饼图、折线图等图形进行整合,综合多项数据通过多图表的形式表现对球员在多种角度下的能力分析结果。

3.1 球员赛季视图

3.1.1球员、球队、位置关系图

为了直观地表示球员所属球队、球队中所拥有的球员、球员所打位置,本文系统基于桑基图进行表示。桑基图即桑基能量分流图,也叫桑基能量平衡图,是一种特定类型的流程图,图中延伸的分支的宽度对应数据流量的大小。

如图4所示,第一列为total,作为起始,宽度为所有球员的数量,连接到所有球队;第三列是player,包含所有的球员名称,宽度为其所打的位置,因为球员打球的位置是一定的,所以宽度为1,连接到所属位置;第四列是position,里面包含所有球员打球位置,宽度为所属该位置的球员数量。

图4 球员、球队、位置关系

3.1.2赛季总体人员分析

本文系统整理了每个球员的赛季总成绩,包括上场次数、首发次数、上场时间、得分、命中率、 篮板数、助攻数、失误数、犯规数,同时去除掉球员没有参赛的场次,并且记录了该场次没有上场的原因。虽然已经从多角度反映球员本赛季的情况,但是用总成绩来反映球员的实力还是不太合理,本系统还利用加权(利用上场时间来做加权)平均成绩的结果来反映球员的能力。

利用整理好的多项数据对球员数据进行显示,利用平行坐标系来对球员的各项成绩进行排序,这样可以从多个角度观察一个球员的各项能力而不只是从单纯的得分情况。但是,由于总的球员数有四百多个,显示在一幅图上会很模糊,不能直观地看出区别,所以可以根据球员的打球位置将球员分类,这样不仅减少了比较数量,还因为每个位置所需要的能力相似,所以比较起来更合理、更明显。

根据每个位置的特点,本文系统总结出了与每个位置相关的最重要的数据,并列出了前十名的排名,如图5所示,其中C(中锋)位置的重要数据就是篮板球次数。

图5 球员赛季各项数据展示

3.1.3赛季球员能力分析

本文系统不仅利用了平行坐标系来看比较球员之间的各项数据排名,还利用能力图来直观地展示球员的整体能力。使用归一化的方法将每个数据都控制在[0,1]之内,以便更好地将所有球员的数据表现在能力图中,有利于比较球员的总体能力。

根据球员赛季总体数据和平均数据,使用如图6所示的能力图表现出在两个角度的球员能力分布,可以发现即使是同一个球员在总体数据和平均数据上面都会存在一定的数据差异,说明该球员因为其上场时间足够,所以他的总体数据就会很高,但是从平均成绩上来看,就能发现一定的问题,其在上场时间内的有效率可能没那么高。

图6 单人球员分析

3.2 球员单场表现视图

3.2.1球员各单场数据比较

根据球员整个赛季的表现,如图6所示,利用折线图反映出球员首发、上场时间、总投篮命中率、投篮数、三分球投篮命中率、三分球投篮数、罚球命中率、罚球数、篮板数、助攻数、抢断数、失误数、犯规数、得分数等各项数据的整个赛季的表现,可以发现球员的能力表现和状态变化。图中的零值点表示该球员并没有上场。

3.2.2单场比赛球员对比

根据单场比赛的数据,比较两支球队的相同位置的球员单场能力,如图7所示,利用雷达图来表现两个球员在该场比赛中的能力表现。利用平行坐标系来表现出该场比赛两位球员各项能力的数据对比,这样可以全面地看出两位球员在次场比赛中的表现对比。并且比较他们在重要数据上的整个赛季数据变化,发现此场比赛在其以往的比赛中发挥情况,毕竟不能因为一场比赛就能比较出两者的差距。

图7 球员对比

根据此场比赛的两支球队胜负情况,将该场比赛输的队伍使用绿色表示,赢的则用红色表示。

3.2.3单场比赛球员在球队中表现

根据单场比赛球员数据和球队数据,总结出此场比赛中该球员在球队中的各项表现。利用饼图来显示球员在比赛中投篮命中的次数、篮板、助攻、失误、犯规、分数在队中的百分比,可以明显看出该球员对球队的作用。

4 实例分析

以2016—2017赛季Cavaliers队的LeBron James为例,Cavaliers队一共比赛81场,其中James报名参赛80场,出场参赛73场,并且首发出场73场。

4.1 赛季总体分析

从整个赛季来看,因为James打得是SF(小前锋)的位置,所以我们在位置上选择SF。页面展现出所有球员中这个位置的数据情况,如图8所示,可以粗略地看出James的各项能力的数据排位。James在得分这一数据模块上是最多的,表现出来他的得分能力是很强的。同时,他的篮板数和助攻数也是在同位置球员中最多的,其他数据也在前列。但是,很明显James的失误量也是最大的,这就反映出他的不稳定性,一定要注意失误的产生,尽量减少失误。

图8 位置为SF(小前锋)的所有球员的赛季各项数据比较图

由于整图数据量还是很大,所以可以选择想要比较的一些球员,如图9所示。Andrew Wiggins虽然上场时间是最长的,分数排第二,但是他的投篮命中率并不是那么高,而且其他数据都是比较平均的,说明他创造机会的能力比较强,得分比较厉害。Trevor Ariza是抢断最多的,其他的数据表现都一般,而且控球比较多,所以很明显他的分工角色不是主要的得分点。

图9 筛选球员比较

(a) 赛季总能力 (b) 赛季平均能力图10 James赛季能力比较

(a) James赛季单场三分球命中率

(a) James在第一场比赛中对球队的作用

4.2 赛季个人分析

对James赛季总能力进行比较,本文系统通过两个角度来分析James整个赛季的能力表现,如图10所示。可以看出,投篮命中率、助攻、抢断和失误并没有因为做了平均值而产生很大的改变,而篮板球和犯规值变化却很大,很明显上场的时间长度影响了数据分析。单位时间内James的篮板数并不是很高的,虽然这不能说明他的篮板能力不强,但是也证明了有比他篮板能力更强的球员,一味地相信总数据也是不合理的。

很明显,如果只依据总成绩来分析个人能力的话,就会误会James的失误比较多,只是因为上场时间过长,更加容易失误,因此在同样的单位时间上,James的失误率并没有那么高。

本文系统又分析了James整个赛季的所有单场比赛数据,并且将不同角度数据显示在不同的折线图上,特别指出里面的零值为James没有上场的场次。以总投篮为例,如图11所示,为了有利于比较,本文系统将投篮命中率的折线图和投篮次数的折线图同时显示。可以看出,总体的投篮数还算是比较稳定的,基本上稳定在每场比赛15~25次之间,投篮命中率在0.4~0.7之间波动。但是仔细分析两幅图,可以发现当投篮次数少的时候,投篮命中率也会较低,反之投篮次数多的时候,投篮命中率也会较高,所以当投篮机会变多,手感也会变好,命中率也会较高。

4.3 单场比赛球员比较

以Cavaliers与Pacers这两只球队的比赛为例,这两只球队2016—2017常规赛阶段总共比赛4次,但是由于其中一场James没有上场,本系统并没有显示此场比赛。以James和同位置的球员Paul George作比较,球员能力图与前文所示类似,故不再展示。

由三场比赛的两个人的能力图可见,George的表现起伏比较大,而James相对来说比较稳定。James的投篮命中率都高于George,在其他方面James总体都比George发挥得要好,主力球员的状态和能力也决定了球队的实力。

4.4 单场比赛球员对球队的作用

利用单场比赛的各项数据,使用饼图清晰地看出James的各项成绩占球队总成绩的百分比,即在该场比赛中对球队所做出的贡献。

三场比赛的饼图,如图12所示。可以看出,James投篮数、助攻数和得分基本上占了全队的25%,三分球的占比在逐渐提高,篮板在球队中作用并没有那么大,并不像总体数据显示的那样,也有可能是由于对手的缘故,这一方面还要做更多的研究。

通过对球员James的具体分析,详细说明了本文系统的使用,以及能够利用本系统从多角度分析球员能力,而不是单一的只着重其中一点,本文系统能够让球员从数据方面意识到自身的不足之处。

5 结 语

为了对NBA球员的能力进行全方位的分析,本文介绍了一个利用赛季数据从多角度分析NBA球员各方面能力的系统。该系统分别从赛季总数据和单场比赛数据角度分析了球员的包括上场时间、投篮命中率、篮板数、助攻数、抢断数、失误数、犯规数、得分数等方面的能力,根据打球位置的不同综合分析了各位置、各球员的能力差距。本文通过对球员James的数据分析,详细介绍了系统的使用方法,体现了系统的实用型和有效性。该系统给篮球教练、分析师及球员提供了全面的球员数据分析,更加直观地让他们了解球员的各项能力,能给他们的训练和排兵布阵提供帮助。

未来将继续丰富和加强该系统。一方面,将提高系统的数据量,不单单是一个赛季数据,这样有利于更全面更客观地分析球员的各项能力;另一方面,将加强数据的维度,除了boxscore和teamstats数据之外,可以利用play-by-play这种单场比赛中发生的所有情况的数据,将每场比赛进行细化,还原每场比赛的实时数据,使得对球员的能力分析更加细化。

猜你喜欢
单场命中率上场
独自上场
除夕赴年夜饭
前臂肌群力量训练对篮球中远投篮命中率影响的实验研究
上场之前
让子弹飞
子弹不长眼
聪明的表演者