本文为 AI 研习社编译的技术博客,原标题 :
Insights From Raw NBA Shot Log Data and an Exploration of the Hot Hand Phenomenon
作者 | Aimun Khan
翻译 | 汪鹏   编辑 | 王立鱼
原文链接:
https://towardsdatascience.com/insights-from-raw-nba-shot-log-data-and-an-exploration-of-the-hot-hand-phenomenon-1f1c6c63685a
注:本文的相关链接请访问文末【阅读原文】,赠书中奖结果在文末公布。

by:Michael Arthur,Caleb Johnson,Aimun Khan,Nimay Kumar,Reid Wyde

总览

数据科学和篮球比赛之间的关系每年都在变得越来越紧密。休斯敦火箭队的高强度的以三分为中心的进攻使他们成为NBA中的精英球队之一。他们的总经理(GM)Daryl Morey十多年来一直是高级分析的开放支持者,并且在过去的几年里,很明显莫雷的策略正在被联盟的总经理们竞相模仿。费城76人现在正在收获由前总经理,数据专家Sam Hinkie带来的好处,他的非正统的团队建设策略引起了整个联盟的极端争论,并最终导致他在2016年辞职。虽然他可能失去了工作,但他的数据驱动工作的结果是不可否认的。 76人现在是联盟中最强的球队之一,这主要由Hinkie选中的年轻球员提供的动力。
我们小组认为篮球分析还有很多有趣的工作要做,我们想要探索原始数据集并对自己的数据集进行一些分析。具体来说,我们的团队希望获取原始的NBA拍摄日志数据,从中提取有意义的信息,并创建引人注目的图形来显示我们的发现。此外,我们想要探索“热手”现象的统计意义。换句话说,我们想知道一名球员连续多次投篮的先验知识是否会改变我们对他们下一次投篮是否会进入的期望。

数据

数据采集
除了NBA网站之外,很难找到像我们使用的数据那样的原始空间拍摄数据。不幸的是,几年前NBA终止公开其API。我们需要抓取他们的网站来获取当前数据。我们对项目的分析和可视化方面比抓取更感兴趣,因此我们使用了2014-2015赛季的数据集,该数据集是在公共API仍然可用时获得的。我们的分析可以很容易地扩展到新数据,因为它可用。下面可以看到数据集的示例。

原始NBA拍摄日志数据集的片段
数据清理
正如NBA官方数据集的预想,这些数据得到了相当好的维护;然而,有一些令人惊讶的差异还是需要清理。许多名称在整个数据集中拼写错误,这导致了我们分析中会出现异常值。此外,CLOSEST_DEFENDER和player_id功能中的名称必须采用相同的格式才能使我们的分析更容易。一旦我们使用相同格式的名称并拼写正确,我们就可以进行一些预处理和特征提取并进行一些分析。
特征提取
由于拍摄日志数据几乎不能直接让我们发现它的规律,我们需要为我们所做的每种不同类型的分析进行大量的特征提取。我们将在“见解和分析”部分的每个不同子部分中做必要的预处理,而不是在本节中以很少的上下文解释我们的所有预处理工作。

见解和分析

最佳攻防一体球员

我们想要开始我们的分析,只需简单评估一下NBA中一些最好的攻防一体球员可能在2014 - 2015年。一个好的攻防一体球员是对进攻和防守都有效的球员。我们决定通过创建包含三个功能的数据框来实现此目的:{player_id,pts_scored,pts_allowed}。通过对SHOT_RESULTS列中每个“制作”栏目的所有PTS_TYPE特征求和,计算每个玩家的得分。允许的积分是通过将每个制作的栏目相加来计算的,其中给定的玩家在CLOSEST_DEFENDER功能中列出。下面是新数据框的一个示例:

一旦我们有了这个数据帧,我们就创建了一个散点图(下图),以便更好地可视化数据。

得分与积分相对应的得分图
正如预期的那样,一些最精英的攻防一体球员如德维恩·韦德,拉塞尔·威斯布鲁克和勒布朗·詹姆斯被列在图的右下角,因为他们得分很多,但没有被列为最接近的防守者。其他球员如Klay Thompson,Steph Curry和James Harden也被列出。虽然这些球员的防守效果不是很好(根据这个分析),但他们的得分能力使他们与其他球员处于精英阶层。
关于这张图的一个奇怪的事情是贾马尔克劳福德在精英攻防一体球员中的存在。贾马尔克劳福德一般被认为是一名可怜的防守者。他在图表区域的意外存在可以通过他在团队中的角色的性质来解释。克劳福德的角色是替补球员的能力较弱,并且在球队最好的球员休息时承担进攻的负担。这个角色导致克劳福德比在图表上显示的其他玩家减少了大约30%,并且相对于他上场的分钟数,与其他玩家相比,这也导致他得到了大量的进攻机会。换句话说,这种特殊类型的分析真的有利于像克劳福德这样的球员,显然这不是一个完全描述球员价值的指标。实际上,任何高级体育指标都会固有地偏向某些类型的玩家而不是其他玩家,这取决于指标优先考虑的比赛的哪些方面。
球员得分效率
为了评估个人球员的表现,我们希望收集更多关于他们所投篮镜头的背景信息。在深入研究之前,我们首先必须使用特征提取来开发数据,详细说明球员的平均投篮距离,每个区域的投篮百分比,以及他们能够从各个区域进行投篮的次数。这些信息让我们更全面地了解了球员在游戏中通常采取的类型。然后,我们创建了一个模块,该模块采用输入播放器名称,并将其投篮距离,投篮时间和投篮结果数据输出到新的数据帧中。我们工具的屏幕截图如下所示:

一旦我们获得了新的数据帧,所有投篮都被SHOT_DIST和SHOT_CLOCK组织成144个独特的分区。 投篮距离分为6个距离范围<5英尺,5-10英尺,10-15英尺,15-20英尺,20-25英尺和25-30英尺。时间分为24个区间,每个区间1秒钟 ,从0-24秒。 然后将每个区间映射到该区间中投篮的进球量以及投篮的量。
然后,我们对这些数据进行了2D热图,Y轴上为距离,X轴上为投篮时间。

使用这些数据,我们计算了场上每个区域的联盟平均投篮命中率(#xins / #sotal shot)。
然后我们创建了一个二进制热图,显示一名球员是否高于或低于该区域的联盟平均值。 火热区域表示联盟平均值以上,黑色区域表示如下。 字母哥的二进制热图如下所示:

虽然热图有用,但它们在美学上并不十分美观,我们想要更好看的东西。
 在matplotlib中使用plot_trisurf(),我们制作了进球,投篮和二进制图。 以下这些是热图的3D可视化:


解释
使用这些图形,我们可以确定哪些玩家了解他们从哪个区域有效,以及哪些球员始终从他们缺乏技能的区域拍摄,以便始终如一地进行转换。 在Giannis Antetokounmpo(字母哥)的情况下,我们可以看到他的大部分投篮都接近篮筐,大部分时间仍然留在投篮时间。 Giannis作为一名高效的球员有着良好的声誉,这张图表显示他的绝大多数投篮都接近篮筐而且他是一名出色的射手。
布莱恩·罗伯茨就是一名球员,他在三分线上投出了大部分投篮,尽管他并不是一个特别出色的三分投手。 请注意,在第三张图中,当投篮时间在3秒以内时,他低于联盟平均值:



布莱恩 罗伯茨 投篮热点图

球员之间的互动

聚类

除了先前提取的数据集特征之外,我们还必须设计一种方法,将一些先进的防御性指标纳入我们的数据中。我们能够通过在每个球员的数据框末尾附加Defensive Box Plus Minus列来实现这一目的。这个指标让我们可以看到球员的个人防守对他们整个球队在球场上的防守表现有多大贡献。在提取了关于球员倾向和聚合统计数据的有用特征之后,我们想要比较不同球员之间相互得分的方式,以及我们是否可以找到这些球员关系中的任何趋势。
为此,我们考虑了两种聚类算法:K-Means和Mean-Shift。我们最终选择使用K-Means,因为平均移位对于不密集且具有许多异常值的数据表现不佳。鉴于我们的数据集中合格的NBA球员数量相对较少,并且两名球员不太可能有非常相似的投篮分布,我们认为K-Means是我们数据集的更好的聚类工具。
使用K-Means时最大的挑战是决定集群的数量。我们发现四到五个聚类对于这个数据集是最佳的,因为拥有更多的聚类会创建一些只有极少数玩家的小类,而拥有更少的聚类会导致类太过一般。使用k = 5导致两类高等级得分球员,一个中等级和两个低等级类。
可视化集群
接下来,我们想要想象一下这些部分如何影响球员的得分和防守。我们用于此可视化的工具是D3.js,因为它可以灵活地创建不同类型的可视化。我们选择创建一个导向图,其灵感来自我们在研究数据驱动文档时发现的一个例子。创建此图需要在Jupyter Notebook中进行大量数据预处理,以构建一个JSON文件,该文件的格式化方式从JavaScript容易进行操作。
首先,我们必须从投篮日志数据创建一个查找矩阵,以记录每个球员在每个其他球员上得分的分数。然后将此矩阵attack_defense_matrix.csv与players_kmeans.csv一起迭代,以构建节点和边的列表。每个节点都包含有关球员的信息,包括唯一标识符,他们的总点数,k-means定义的类别标签,以及球员的防守贡献指数(DBPM)。每个边缘反映了给定球员在另一个球员上得分的点数。然后将此数据作为邻接列表存储在JSON文件中,该文件解析JavaScript文件以填充图形。
我们从这些处理过的数据中创建了两个交互式力量导向图:一个可以显示球员的攻击能力,另一个可以突出他们的防御限制。在鼠标悬停时,攻击性图表会显示每个玩家从我们的得分效率工具生成的3D热图。防守图表显示每位玩家的调整后的DBPM。

进攻能力对NBA球员的导向图

图表解释

进攻图

进攻图中节点的大小表示球员的得分量。我们选择在鼠标悬停时显示玩家的投篮分布,以探索不同类型的玩家的进攻能力如何不同。节点的平均大小因类而异。节点的颜色表示由k均值聚类生成的不同组。红色和蓝色节点往往都是高水平的得分手,但他们通常在球场上的不同区域投篮。紫色节点是次要得分手,射门分布更均匀,绿色和橙色节点往往是更低输出的球员。我们发现这些k-Means定义的类是一种合理的有趣方式,可以将球员分组为经典篮球位置的替代品。
蓝色节点代表在篮筐附近完成大部分得分的球员。虽然这个小组主要由大个子组成,但是像Kyrie Irving和James Harden这样的一些突破手都属于这一类。大多数作为大个子的蓝色节点都是高度相关的,这意味着大个子通常会在其他中锋和大前锋上得分。这是有道理的,因为这些球员经常互相保护,并且在大多数防守球员身上往往靠近篮筐。
红色节点代表射手,主要是从三分线外获得大部分分数,如Steph Curry和Damian Lillard。这些球员中的绝大多数通常在其他后卫身上得分,这是有道理的,因为后卫是最经常防守长距离投篮的球员。其他K-Means集群包含对游戏影响较小的玩家。
防守图
防守图中节点的大小表示球员允许对其进行评分的镜头数。乍一看,似乎较大的节点代表较差的防守者,因为他们获得的得分最多,但这是误导性的,因为球员上场的分钟越多,节点就越有可能越大。此外,中锋和大前锋更有可能被列为我们数据中最接近的防守者,因为他们经常在篮下进行很多投篮。由于这些原因,我们的防守图表不公平地惩罚了“大个子”。

当用鼠标悬停在节点上时,我们图表的用户可以看到玩家的防守贡献值(DBPM)等级。这个评分是衡量一名球员对防守总体影响最广泛的评分,它可以作为我们的分析偏离球员普遍持有的观点的晴雨表。例如,图中保罗米尔萨普的节点大小意味着他是一个糟糕的防守者,但他的DBPM评分是26——联盟中最强的一个。

热手

一些球员(例如Klay Thompson)怎么可能“手冷”,换句话说,看似不可阻挡的高效比赛?我们想要知道,“加热”,或者球员在最后N次投篮中投篮的次数,对投篮准确性或得分有影响吗?
为了研究这个问题,我们开发了一个射击条件和球员热量的模型,然后我们看看这些因素如何影响击球准确性。
作者要感谢这种分析热门问题的处理方法。所有代码均由本文作者独立完成。
困难条件分为四类:
  • 比赛条件(主场/客场,比赛期间,总比赛时间,积分优势)
  • 投篮条件(篮框净距离,进攻剩余时间)
  • 防守条件(最接近的防守人距离,后卫技能(DBPM),身高优劣势)
  • 球员自有水平(球员真实投篮命中率)
我们进行多次回归以找出每个条件类别中要素的重要性。然后,我们对所有条件类别进行回归,以找出每个条件类别的相对重要性:



困难条件分析
在比赛条件图中,我们看到主场vs客场区别与点差和周期相比占主导地位。过去的比赛时间似乎基本没有效果。我们应该谨慎地解释这一点,因为与其他三个难度条件类别相比,比赛条件显得微不足道。
投篮条件和防守条件(分别以距离和后卫技能为特征)对射门难度产生相对相等的贡献,并且球员自有水平(真实投篮命中率)在投篮条件和防守条件的贡献中约为75%。
热度分析
我们必须将热量定义为相对于之前的一些镜头。对于在最后N次尝试中进行的K次射击,N热被定义为K / N.我们将N Heat得分与投篮得分数进行比较:

虽然这个模型可能暗示不同热量之间的显着影响差异,但我们在线性模型截距的背景下解释相对较低的量值分数:0.984232584029531。
这意味着热量对坐标点的影响相对微不足道。
一段时间内的热度
为了进一步研究热量的影响,我们做了另一次回归,这次控制了困难条件:

在最后的回归中,我们看到球员自有水平,即球员的真实投篮命中率,是平均热效应的8倍,并且是得分最重要的决定因素。 这并不奇怪,因为真实投篮命中率是在球员在一个赛季中的汇总,并且在定义上是衡量他们得分的指标。 防守条件也是一个相当大的贡献。 投篮条件基本上是投篮距离。 我们看到主场优势实际上不如热量重要。
“热手”是否存在? 这很难说,但与环境和球员统计数据相比,它看起来在NBA人群中可以忽略不计。 进一步的工作包括个人玩家分析,看看是否只有一些玩家展示了热门手。 可以探索球员置信度指标和更深入的投篮难度分析。

结论

在这个项目的过程中,我们清理了一个原始的NBA射击日志数据集,执行了特征提取技术,并创建了有用的分析工具,提供有用的视觉效果和洞察球员得分的方式。 虽然我们的工具目前仅提供基本的见解,但只需对源代码进行微小更改即可实现更高级的概念,并且可以相对轻松地删除和分析更新的镜头日志数据。
此外,我们发现“热手”现象没有统计学意义。 虽然我们没有探讨热门手问题的某些变化(例如某些特定球员是否有能力变热),但我们发现,一般来说,连续投入篮球并不会影响球员下一次投篮是否能投中。
我们希望你喜欢阅读我们的工作。 如果你有兴趣,请查看我们的Github存储库:https://github.com/reidwyde/hotHand
想要继续查看该篇文章相关链接和参考文献?

点击底部【阅读原文】即可访问:
https://ai.yanxishe.com/page/TextTranslation/1649
赠书名单公布
上周结束的赠书活动,由于小编端午节给自己多放了一天假,所以今天才公布中奖名单,希望大家不要打我
名单公布如下:
AI研习社:
AI研习社小助手:
稍后将会有消息通知,请注意查看微信的“服务通知”。
滑动查看更多内容
每天进步一点点
扫码参与每日一题
今天距离CVPR 2019开幕还有 2 天
扫码查看
ICML 2019 Google 成果集锦,Facebook 的可以在小组内查看哦

扫码查看
基于视频的目标检测算法研究
<<  滑动查看更多栏目  >>
 点击阅读原文,查看本文更多内容
继续阅读
阅读原文