356. NFL Big Data Bowl | nfl-big-data-bowl-2020
首先,祝贺获胜者,并感谢 NFL 和 Kaggle 举办这次比赛!
这是我第一次参加 Kaggle 的大型比赛,最终能进入前 50 名让我感到非常惊喜,所以我想分享一些关于我解决方案的细节(我一直等到最后一刻才分享,是因为担心在最后几周代码会出现灾难性的错误)。我在 Public LB 上起初排在第 52 名,最终在第 37 名结束。
我主要专注于空间变量的特征工程,最终将这些特征输入到一个全连接神经网络中,结构为 128(全连接)x 64(全连接)x 199(Softmax)。
我的一个遗憾是在初始模型上花费了太多时间,该模型在特征方面存在根本性问题,而我却一直期待通过微小的调整来实现突破。
当我终于掌握了空间和时间特征的精髓后,对特征工程进行了彻底的重构,这才带来了突破。
作为输入的特征向量的第一部分是相当标准的持球者特定信息,这也是大家意料之中的,但向量的主要部分填充的是相对于持球者的防守队员的空间计数(包括方框和径向)。这是通过在 T = 0、T = 0.5、T = 1.0 时使用方框和径向计数来完成的,利用速度和方向字段将比赛“向前推进”。
图片总是更直观:

在每个时间点添加一些关于防守队员相对于持球者距离的汇总统计数据(最小值、平均值)后,最终模型中大约有 80 个特征。
我本想加入进攻球员的数据,但简单的计数并没有带来显著的改善。考虑到他们作为阻挡者的角色,需要更细致的处理方式。
除此之外,我大部分时间都在尽可能让代码健壮(而不是尝试任何特定的调整——如数据增强、后处理等),结果似乎还不错!