用21条微博,来组建一支球队,这是NBA

发布时间:2016-12-2 23:50:17   点击数:

早在八月份的时候,NBA就宣布了「编程马拉松」的开幕。联盟举办该项赛事旨在激发分析人员在面对挑战性问题或者关键问题时提出创造性的解决方案。由于该赛事仅限于学生参赛,因此来自莱斯大学的森西尔和来自斯坦福大学的克里斯就利用学生身份的便利,代表NylonCalculus参赛。作为本届赛会的前瞻森西尔和克里斯将会给大家介绍一些在赛会中遇到的具体问题以及他们自己提出的解决方案,这些都是他们通过邮件来沟通解决的。

克里斯·皮卡德(CP):在森西尔和我开始正式向大家介绍赛会的相关问题之前,我想要先来解释一下「编程马拉松」的举办方式,这一赛事似乎在硅谷以外的世界里还没有那么赫赫有名。有时候我的家人或者朋友都会问起这个问题,因此我们还是现在这里先做一个简要的说明。

真正的比赛将会从今天9上午九点开始,届时组织者们将会给参赛者们提供一些与篮球分析相关的问题,供大家选择。目前为止我们只得到了两条提示信息。

每支队伍都将挑选一个问题,并在8小时内提出该队的解决方案,最终以展示的方式向组委会提交。

在所有公开数据的基础上,参与此次比赛的选手还将获得NBA授权使用部分未公开的数据以帮助选手们解决问题。

最终评委会将选出进入决赛的代表队,这些选手将进入下一轮的展示环节并角逐最终的三个大奖。

赛事规模将限制在30-40支队伍,每支队伍不得超过4人,每个队员都必须回答一个核心问题。来解释相应的问题。例如:

假如你是一支NBA新军的总经理,那么你在联盟内挑选球员的方法和依据是什么。在选择过程中,哪些数据和信息将左右你的决定?

但在比赛中提供的规则和山猫队在年加入联盟时的截然不同。例如,联盟中薪酬最高的五位球员和新秀合同期内的球员将不在考虑范围之内,并且硬性工资帽也会起作用。因此看上去如果方法合理,似乎有可能促成一支类似于勇士队那样的巨头球队,并且很快就能成为总冠军的有力争夺者。尽管限制条件很宽松,但也不会让这场竞赛失去其原本的目的:作为球队的总经理,你将如何区分球员的价值,并且在有限的选择下组建一支球队呢?解决方案?你得用21条微博那么长的文字(词以内)把这个问题说清楚。下面就是克里斯和森西尔为了解决这个问题而互通的邮件。

森西尔·纳塔拉詹(SN):为一支新球队选拔球员实际上考验的是经理人的篮球哲学,因此要解决这个问题,就得从一些最基本的问题出发。首先,既然新秀并不在选择范围之内,我们首先不妨先从那些立刻能给球队带来帮助的球员开始考虑。这也就意味着,我们将选择的球员可能已经没有什么潜力可挖了。接下来,我们就可以按照新军扩充条款在球员库里挑选我们需要的球员。

为了平衡打法与效率,我们可以先从每个球员最有用的16项统计数据出发(其中每一项都换算为每次进攻回合内取得的数值):2分出手数,3分出手数,罚球出手数,进攻篮板,防守篮板,助攻,抢断,封盖,得分,2分命中率,3分命中率,有效投篮命中率,罚球命中率,使用率,防守场上正负值以及站立摸高。我们还可以在此基础上把球员的出手选择添加进来。为了减少无效数据的干扰,我们还应该将该球员与相同位置球员的平均值进行回归分析。

在提取出所有球员的基本数据后,我们可以用两步法来确立我们的建队原则。

首先,我们可以采用分簇策略(在这里我们可以采用K-mans聚类算法或者高斯混合模型)来对联盟中不同类型的球员归类(找到他们真实的「位置」),最终每一位球员都是一个位点,而他们的这16项统计数据则是他们个人的十六个维度。接下来,我们可以利用「模仿联盟」的概念在现有的球队阵容中选出一个我们希望采用的模版(比如说,年的雷霆队,双子星的阵容结构)并找出适合我们的建队思路的阵容。这种方法能告诉我们究竟会在首发阵容中选出哪五种类型的球员,在此基础上我们将进一步选出跟首发阵容最能形成互补的替补阵容。

接下来我们就需要从全局角度来对球员库中每一个球员进行评估,该数据也是基于每个进攻回合得到的结果,能够反映该球员在任意一个赛季中可能打出的表现。接下来,我们将查看每一支季后赛球队在最近一次季后赛中的数据并进行简单的回归分析,找出首发球员可能的评分基线(该球队的首发球员与其他球队相比,首发阵容究竟有多强)。

最后就是参数优化的问题了。首先,作为一个数据基线,我们会在球队所需的每种类型球员中选择数值最高的那个球员,然后再用多维梯度下降法来筛选出评分最高的那个组合,并按照工资帽的限定条件来逐级筛选。梯度下降法将在每一步中都能以最小的代价得到满足条件的最优值,最终得到每个位置上所能达到的最高薪酬。

我们将在Python框架下进行数据的筛选,最终以一幅简单易懂的可视化结果呈现出来。

CP:如果要从头建起一支球队的时候,我认为有两个主要的问题值得强调:首先要明确球队的人员构成(例如需要防守优先,或者强调低位进攻,明星球员亦或体系球员等等)。其次,在新军选秀规则下,我们需要制定一套衡量合适球员的准则,这样我们才能针对球队的人员构成选到最契合的人选,也就是从主教练的角度去考虑,选出最合适的一支球队。

因此,我将这个新军选秀的问题变成了一个正确衡量,筛选和定位球员的一个过程,最终我们将按照我们的构想选出一支球队。尽管这句话看上去似乎已经很明确了,但是整个事情的执行过程却并非如此。我的方法是采用一种我此前发表过的模型,它会对球员在每个进攻回合中的表现进行评分。为什么一定要平均到每个进攻回合呢?因为回合效率高的球队会在回合内得到更多的分数,同时让他们的对手得到更少的分数,并最终取得胜利。一个球员对球队每回合的效率实际上可以由他自己或者帮助队友,直接或者间接得分的几率所决定的,也是判断他对球队价值的一种指针。

每个进攻回合的产出可以通过一个二叉事件树来描述,相关事件发生的概率用数字(0-4)来表示。每位球员的得分取决于队友的表现,对手的表现以及他在场上时可能的表现。最终这个模型还将根据该球员在场上的出手选择来进行进一步优化。采用包含该球员在内的每场比赛回合记录,树型的内容和投篮选择,通过二元拉施模型能有效的拟合数据。该模型的优势在于它能够校正队友和对手对于球员在每个进攻回合的表现所产生的影响。

这个模型对于新军选秀而言具有很强的适用性,因为通过这种建模方法得到的球员数据是在相同的比较条件下得到的结果。而且它还能综合球员在场上的具体表现,与传统的数据统计具有截然不同的效果。此外,该方法还能输出进攻和防守的总数据,投篮位置以及根据核心球员和角色球员(比如三分射手)来进行区分。最重要的是,该模型与达瑞尔-莫雷的胜利替代贡献值理论能够相互兼容,因此可以适用于更多的场景。

通过将球员的胜利贡献值与薪酬建立联系,我们优化发现新军选秀不过是一个解决「背包问题」的组合优化过程。采用这种方法我们可以在工资帽的限定条件下得到一套能够帮助球队得到最多胜利的阵容。如果加上球队特点所需的筛选条件,该理论也能得到一套最符合「总经理」心意的阵容。

CP:我非常喜欢你在邮件中提到建队方法。我猜就像你在Ringr上发表的文章中提到的那样,联盟中的许多球队都非常的相似。因此,你认为找一个最喜欢的球队模版,然后根据它的阵容来遴选出一套相似的阵容,我认为这种想法非常不错。不过你觉得这样做可行性有多大呢?

我认为工资帽可能是一个主要的问题。最重要的是哪些球员值得付出高薪,而哪些球员不是呢?因此如果我们最好能找到某一位置上球员天赋和薪酬的差值,以确定该位置的球员得到合理的薪酬。在我看来,联盟中同一位置上最强的球员和比如说第20强的球员之间的薪酬差异还是相当大的。这样一来,我们可以根据这个标准来筛选球员,每个位置上的球员都不会出现能力和薪酬差距较大的情况了。

SN:这个建议真不错。根据我的经验判断,我们可以利用梯度下降的方法来优化出每个位置上价值最高的球员,如果受到工资的限制则再次进行迭代,找到最接近其「价值」的替代球员,直至最终找到得分最高的一套阵容,这种办法应该是可行的。

我现在差不多重新又编译了一遍原来的模型,现在它看起来更加清楚,紧凑,而且工资帽的限制也更加合理。目前该程序还是聚焦在辨识球员类型以及对球队表现预测等方面,但现在几乎所有的数据显示的都是其「真实」的位置。正如你提到的,我们在一开始就确定了每个位置的角色。我认为不同的人可能会选择不同的数据,别人也不见得会采纳我所选择的这16组数据;如果能在特征数据的选择上花更多的时间进行研究,我或许就能更加确定哪些数据与我的模型的相关性更大。

CP:我们的方法从不同的角度回答了同一个问题,这一点非常棒。尤其是,当两种方法耦合在一起后,将会是一种非常棒的新军选秀方案。我认为我的方法的优势在于,它与球员在每回合中的表现密切相关,而且覆盖到了许多相关的方面,但是我承认我在解决工资帽的问题时确实有些问题。尽管我可以通过胜利贡献值选出最棒的球员,但却没法在有限的工资帽下最大化我的球队价值。

SN:我认为你的模型最大的优势在于能够识别出个体球员的技能指数。至于工资方面,我认为,「高价」的球员并非是最强的球员,正如一支由昂贵的球员组成的球队也不一定就是最强的球队。我认为这也是我们应当避免的误区之一。总体看来,我非常认同你的观点——我们的模型还是能形成非常好的互补,并且有效的为新军挑选出合适的球员。非常棒的工作!

原文:NBAHackathon:Howtobuildanxpansiontamin21twts

作者:ChrisPickard

翻译:hh

洋葱圈体育社区系今日头条签约作者









































北京治疗白癜风最好的医院是哪家
白癜风有什么中药制剂


欢迎转载,转载请注明原文网址:http://www.hengdabio.com/szjs/3066.html
------分隔线----------------------------