为了账号安全,请及时绑定邮箱和手机立即绑定

基于机器学习优化防守对位策略

处理一个问题

在过去十年里,篮球策略已经演变,旨在提升球员的表现,重点在于优化投篮选择。虽然数据分析在现代篮球决策中几乎无处不在,但在选择防守对位方面仍然显得相当原始。自从个人防守策略出现以来,普遍的做法是让身高相似的球员进行对位防守,以保持防守阵容的平衡。虽然这种做法是标准的,但也会根据防守能力和对手的主要得分威胁进行一些调整,比如将最佳防守球员分配给对手的主要得分威胁。

我并不天真地认为数字在决定对阵时不起作用,特别是在NBA级别上,但这影响并没有到那种程度。一些进攻球员在面对不同于他们通常遇到的身体类型时,得分会遇到困难,例如,面对一个短而快的防守者或一个长臂的防守者。

我的目标是通过这个项目开发一个模型,用以识别为了最小化每位美职篮进攻球员的得分,最理想的身体条件。然后,我找到了当前球员中,最接近这些理想标准的身体条件者,从而成为最有可能有效防守对方球员的最佳人选之一。

匹配影响模型

我的第一步是尝试通过数值数据来回答防守球员如何防守进攻球员的问题。hoopR包中有一个很有用的函数,可以让我加载每组球员对决的详细数据。这个数据集包括了进攻球员和防守球员的姓名,他们的对位时间,以及关键的统计数据,例如投篮尝试、得分、犯规、盖帽、失误等等。

我整理了过去5个赛季中每场攻防对位数据,每个赛季至少有25次控球回合。我选择这个门槛是因为想排除样本量过小的数据,但仍保持一个较低的门槛值以包括非典型对位,例如较矮的防守者对较高的进攻球员,反之亦然。我按年份划分这些对位,并将每项比赛统计按每回合计算。

为了量化防守者的有效性,我建立了一个多重线性回归模型,使用每回合得分作为目标变量。在排除多重共线性并移除了一些统计项目后,最终模型包含了投篮命中率、每次持球造成的对手犯规次数、每次持球的封盖次数和每次持球的失误次数的标准化后的值。

在运行模型之后,我将系数用作权重,创建了一个新的指标叫做Matchup Impact Score。这个统计量将对战的所有方面综合成一个数字,以体现每个输入的重要性。我认为这比单独使用诸如得分或对手投篮命中率等指标更有效,因为它提供了更多的上下文。

为了更好地理解规模,对阵影响得分范围从-5到12(得分越低表示防守表现越好),中位数是-0.05。

这里有一些过去5个赛季中,在面对特定防守者时个人进攻表现最佳(如下)的比赛。

这里是针对特定防守者的最差个人进攻。

排名倒数10位的所有成员对各自防守方都得了0分,所以主要区别在于他们各自失误了多少次。

数据准备工作

我想在对阵数据框中的进攻和防守球员中增加更多的背景资料。因此,我导入了2000-2024年所有NBA联合试训的身体测量数据,以提取每个球员的无鞋身高和臂展。我注意到,这个数据存在两个主要问题:一些球员,例如维克多·文班亚马,没有参加联合试训,而另外一些球员可能在新秀赛季之后身高有所增长。为了解决这些问题,我从CraftedNBA获取了当前赛季所有球员的身高和臂展数据。我使用的对战数据涵盖了最近五个赛季,所以结合了CraftedNBA的数据和联合试训的数据,我为大约99%的球员收集到了相关的数据。

接下来,我想描述每个进攻球员的投篮分布和质量。我提取了每个球员的投篮位置,并将每次投篮尝试分为篮筐附近、近中距离、远中距离或三分尝试。然后,我计算了他们在每个区域的投篮频率和投篮效率,具体针对该赛季的表现。

然后,我将这些数据与比赛对战数据集进行了合并,添加了进攻和防守球员的身高和臂展数据,以及进攻球员的进攻统计数据。

预测对阵影响得分

在将数据整理成合适的格式后,我使用了xgboost(梯度提升决策树)模型,根据对战的射门数据和身体指标来预测对战评分。每个输入对决定得分的重要性如下。

防守者的身高最重要,其次是臂展和臂展长度。最关键的投篮要素是篮下命中率,以及他们从短中距离投篮的频率,这一点挺有意思的。最不重要的因素是篮下出手频率和进攻球员的身高。篮下频率最低这一点让我感到意外,因为我原先以为那些更频繁接触篮筐的球员整体效率会更高。

这些预测被添加到了更大的数据框里,所以我们现在有了预期的对战影响分数,以及实际数据。

针对优化匹配
调整匹配

我现在对创建预测模型已经相当熟悉了,但接下来的部分对我来说是未知领域(感谢尼克·卡利诺夫斯基的引荐)。我利用贝叶斯优化(Bayesian Optimization),一种优化算法,试图找到最佳的防守球员身高和臂展,以最小化预期的对位影响得分(Matchup Impact Score)。基本上,输入一名进攻球员,它会找到最佳防守尺寸,如身高和臂展。运行这个机器学习函数需要一定的时间,例如,为每个单独的球员计算大约需要5分钟。

获得最佳防守者的身高和臂展后,我想看看哪些现役NBA球员最接近这些尺寸。为此,我创建了另一个函数。这个函数不考虑防守者的质量,只是比较身体数据。我没有考虑防守者的质量,当我想要关注对手体型时,模型会过于偏向优秀的防守者。

2025年特雷杨的优化函数结果示例如下。

这个模型表明,保护特雷最好的办法是用一个身材较矮小但臂展很长的防守者。再说一次,说特里·罗齐尔是最优防守者,这只是基于他的身体尺寸考量,这并不反映防守者的质量。

这是凯文·杜兰特的一个例子的结果。

最好是用一个臂展较长的防守球员来防杜兰特,比他矮几英寸的防守球员可以更好地干扰他的跳投。

另一种我们可以用来展示防守者表现的方法是使用聚合六边形图表。请注意,数值越低,防守表现越好。

就像这张图表所展示的,最成功的防守球员身高大约为6英尺,臂展在6英尺7英寸到6英尺8英寸之间。特雷·杨最擅长对抗身高大约6英尺4英寸,臂展也是6英尺4英寸的防守者。

除了球员布阵策略之外,这些模型和可视化还可以用于识别需要引进的球员。例如,假设一支球队想要击败雷霆队但没有优秀的控卫来防守沙伊-吉尔杰斯-亚历山大。他们可以利用这个模型来创新并通过交易或自由球员市场获得一名球员,试图限制这位MVP候选人。你也可以更广泛地考虑,寻找符合某种特定位置模板的自由球员或新秀,而对手球员在这种模板下往往表现不佳。

下一步的计划和改进的方式

接下来的逻辑步骤是建立一个应用或列表,列出每个进攻球员的最佳防守身体条件,以及最匹配的防守球员。还可以有一个团队过滤器来解决类似“布鲁克林篮网队应该如何防守杰森·塔图姆?”的问题——例如,你可以选择一个球队,它会将杰森·塔图姆的最佳防守者身体条件与该球队的球员进行匹配,而是只在该队中寻找匹配的球员。在开发这个应用时的主要挑战是模型运行时间很长,因此我可能需要找到更快的解决方法。

构建这些模型肯定还有改进的空间。在Matchup Impact Score这个指标上,公式中失误的权重远比我预期的要低,因为迫使对方失误应当比允许对方投篮更有价值。理想情况下,我希望能够量化在特定对位中迫使对方失误对赢得比赛的影响(如果您有任何想法,请告诉我)。这将使Matchup Impact Score更好地体现防守的价值。

以下是该项目所有代码的链接:https://github.com/RyanMiele/NBA/blob/main/优化防守者对位

非常感谢您花时间阅读。如往常一样,任何建设性的批评或意见都欢迎,我们非常感激。特别感谢@kalidrafts和@Tejfbanalytics在模型上给的帮助。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消