NBA 举办编程马拉松 - 数据分析时代的到来
据 TechCrunch 报道:NBA 最近在纽约曼哈顿举办了一项邀请活动:编程马拉松(Hackathon)。 他们打算建立一种新的视角来看待比赛数据。
美国人很钟情于运动,棒球是其中之一。MLB(职棒大联盟)是使用统计分析和预测的先行者:打击、防守、投球、失误等。与此同时,NBA 近年来一直致力于提高评论员、教练和球员的统计分析能力--这次首届编程马拉松就是最新的尝试。
此次活动邀请的参赛人员包括本科生、研究生和博士生,200个程序员被分为三个等级,面对不同的挑战。
比赛规则很简单:每个团队对NBA提供的数据进行统计分析,数据本身不允许篡改,否则将被取消资格。时间从上午9点开始,在下午5:15结束,历时8小时15分钟。
这并不是件容易的任务:原始数据超过 5GB,包括投篮数据、回合数据、精确至1/25秒的球员追踪数据等。
最终,由哥伦比亚大学研究生 Alex Wainger、Zac Robertson、纽约大学本科生 Ella Kuzmenko 和佩斯大学本科生 William Robbins 组成的团队赢得了比赛冠军。
他们夺冠项目名为“反对英雄球”。
在分析数据库时,他们放弃了一些已有的可行建议,比如创建一个防御的效率公式或者分析如何能让投篮更准,而是选择将运动员在常规赛和季后赛中的运动趋势做一个对比。他们假设在常规赛中,运动员的打球方式更以团队为中心,而在季后赛中,他们更倾向于人们所谓的“英雄球”式的打法。最终他们用 python 处理了 5g 的数据库,抽丝剥茧取出了有用数据,建立一个 d3 的应用(d3.js,一个 JavaScript 库)挂载在 github 的网页上。一个坐标轴上显示常规赛的统计信息,另一个坐标轴上显示季后赛的统计信息,还有一个45度的直线表示在两种情况下的相同行为方式,可以选择一个数据并以交互的方式在图标上看团队的数据移动。数据表明最终在季后赛的队伍,相比常规赛,运动趋势数据中多了 15% 的运球,10% 站立,少了 4% 的传球和 4% 的持球得分。也就是说,球员在季后赛往往会更自私地打球。
问起他们为什么参加 NBA 编程马拉松,其中一名队员表示,他看到了在这里的学习机会。作为一个NBA的数据控,他对比赛背后的教练方法和数据分析非常感兴趣,通过这个活动可以认识更多在数据分析领域中杰出的人。
他们的项目也发布在了 Github 上:
https://github.com/alexwainger/NBASubstitutionPatterns
在线演示地址:
http://alexwainger.github.io/NBASubstitutionPatterns/
如今像篮球这样的运动都已经开始大量地依赖计算机程序做数据分析,可想而知,还有什么领域可以置身事外。如果现在还觉得,不是程序员,不是搞理工科的,是否懂计算机懂编程都无所谓,那这恐怕是个很危险的想法。不要再只顾着抱怨别人用脚本抢走你的月饼了,或许不久后的某一天,计算机就会抢走你的饭碗……
附:The NBA’s first hackathon: How is the future coming for the league?
https://techcrunch.com/2016/10/05/the-nbas-first-hackathon-how-is-the-future-coming-for-the-league/