返回列表

1st place solution The Zoo

356. NFL Big Data Bowl | nfl-big-data-bowl-2020

开始: 2019-10-09 结束: 2020-01-06 赛事预测 数据算法赛
第1名方案:The Zoo

第1名方案:The Zoo

作者: dott, Psi (philippsinger)
发布时间: 2019-11-28

我们很高兴发布由 @dott1718@philippsinger 提供的 The Zoo 解决方案文章。

我们要衷心感谢主办方和 Kaggle 促成了这次比赛。我们在构建解决方案的过程中获得了很多乐趣,因为有必要跳出思维定势,想出一些真正反映场上情况的东西。特别感谢 Michael Lopez 积极参与比赛相关的所有讨论和活动。这确实增加了我们改进的动力,让我们相信我们可以为 NFL 分析带来一些价值。我不记得上一次看到主办方如此深入参与比赛是什么时候了。

数据几乎没有问题(2017年的测量差异已被披露),并且 CV(交叉验证)和 Public LB(公开排行榜)之间存在很好的相关性。由于 Private LB 将基于未来数据,因此也没有真正的作弊机会。我们还要感谢所有参赛者没有利用 Public LB 中可能存在的漏洞。

我们真的希望 Private LB 数据不会出现意外,并希望我们的 Kernel 能够顺利运行。在这类 Kernel 比赛中,总会有失败的风险,这当然是灾难性的。

无论发生什么,我们都为我们的解决方案感到非常自豪,并坚信它可以成为未来 NFL 分析工作的宝贵资产。

太长不看版: 这是一个仅基于相对位置和速度特征的 2d CNN(二维卷积神经网络)。

解决方案动机

简单介绍一下我们是如何想出这个模型结构的。为了简化,我们假设一次冲球进攻由以下部分组成:

  • 一名跑卫,其目标是尽可能向前跑
  • 11名防守球员,试图阻止跑卫
  • 10名剩余的进攻球员,试图阻止防守者阻挡或擒抱跑卫

这种描述已经暗示了哪些球员之间的联系是重要的,哪些可能是无关紧要的,后来我们在 CV 和 LB 上证明了情况确实如此。这是我们使用的比赛可视化示例(基于 Rob Mulla 修改后的 Kernel [1])

Players 1

如果我们专注于跑卫并移除其他进攻队员,这看起来就像一个简单的游戏:一名球员试图逃跑,其他11人试图抓住他。我们假设,一旦冲球开始,无论位置如何,每一名防守者都会专注于尽快阻止跑卫,并且每一名防守者都有机会做到这一点。防守者擒抱跑卫的机会(以及估计的擒抱位置)取决于他们的相对位置、速度和移动方向。

Players 2

我们遵循的另一条重要规则是不对球员进行排序,因为这会强制将任意标准引入模型,这并不是最优的。此外,上面的图片让我们有理由相信每一名防守者都应该以类似的方式对待。

这指向了一个想法:对单个防守者使用相对位置和速度进行卷积,然后在顶部应用池化。

起初,我们实际上忽略了关于10名进攻球员的数据,并围绕跑卫和防守者建立了一个模型,这已经足以在 Public LB 上接近 0.013。如果调整得当,甚至可能低于 0.013。

为了包含进攻队员,我们遵循同样的逻辑——如果有跑卫被阻止的风险,这10名球员将试图阻挡或擒抱任何一名防守者。因此,为了评估防守者的位置,我们要遍历所有进攻队员,使用他们相对于防守者的位置和速度,然后进行聚合。为此,我们再次应用卷积和池化。所以我们需要的就是老式的卷积 - 激活 - 池化。

模型结构

上面的逻辑让我们想到了将一次进攻的数据重塑为防守 vs 进攻的张量,使用特征作为通道来应用 2d 操作。

有5个向量特征很重要(如果算上 X 和 Y 轴上的投影,则是10个数值特征),我们添加了几个,但它们的贡献微不足道。这些向量是相对位置和速度,因此为了推导它们,我们只使用了数据中的 'X'、'Y'、'S' 和 'Dir' 变量。其他都不重要,甚至风向或球员的生日也不重要 ;-)

简化的神经网络结构如下:

同比赛其他方案