356. NFL Big Data Bowl | nfl-big-data-bowl-2020
这是我记忆中最棒的比赛之一。
方法多样,分数从未停滞不前,真实的场景设置,没有数据泄露,还有有趣的数据 :)
所以我要感谢所有相关人员,包括主办方、Kaggle 管理员、竞争对手,当然还有我的队友们。
既然我意外获得了一枚金牌,我想写写我在这次比赛中的经历。
顺便说一句,我们的最终模型是一个单模型,TripleLift 对此做了最好的描述 (https://www.kaggle.com/c/nfl-big-data-bowl-2020/discussion/119331)。
我很早就开始了这次比赛,寄予了厚望。
我已经有一段时间没有认真尝试 Kaggle 了,我已经准备好全身心投入到这次比赛中。
比赛的指标基本上是每个码数的 RMSE,所以我为 199 个码数中的每一个都建立了一个 LightGBM 模型。
当然,这使得运行时间非常长,但因为只有 -5 到 15+ 码对得分真正重要,
我预测了 -5 到 15 码,并用平均值填充了其他码数。
这让我在当时获得了第一名,我被愚弄了,以为这会是一个获胜的方法(现在回想起来太傻了,哈哈)
过了一段时间,我开始掉到银牌区。
因为制作新特征能持续提高我的分数,我决定与我的队友 Emin 合并,他似乎有很多好的特征。
凭借他的神经网络(NN)和特征,我们接近了金牌区(但还不够)。
因为我们离顶尖还有很大差距,我在想一定有什么魔法。
我非常努力地搜索,注意到了 S 和 A(速度和加速度)在 2017/2018 年的差异,试图让“魔法”发生,但没能成功。
过了一会儿,我注意到将 S 和 A 调整为 2017 年的标准改善了我们的 LightGBM 模型,所以我坚持了那个调整。
事后看来,这真的很糟糕,因为我本应该尝试不同的 NN 方法。
这一点极其重要,因为我们赛后的实验表明,像 Patrick 那样调整为 2018 年的标准
(https://www.kaggle.com/c/nfl-big-data-bowl-2020/discussion/119314) 本可以给我们大致相同的分数(第2名)。
无论如何,我卡在了银牌区,我在最后一刻与 TripleLift 和 yuhao 进行了合并。
合并效果比我预期的要好得多。他们的模型与我们的完全不同,基本上没有特征,只有一个简单的嵌入神经网络。
我认为这可能就是所有的差异所在,所以我投入了大量精力来改进 NN。
我所做的最积极的改变是添加了“T+n”特征,即开始后 n 秒球员的位置。
我还根据我在这次比赛中的 GBDT 经验删除了很多垃圾特征,这可能改善了模型。
最后一部分是添加了多输出。我们当时在做 softmax 分类,所以我也添加了一个回归部分。
这个改变在某些折数上效果很好,尤其是在 LB(排行榜)上,所以我们使用了它,但不太确定它实际上有多积极。
这让我们在 Public LB 上刚好停在金牌区之下,考虑到我所有的殷切期望,这真的很令人失望。
我没想到 LB 会有太大的震动,因为我们的 CV 和 LB 在整个比赛中都非常一致。
然而,最后,我再次被证明错了,这次获得了一枚开心的金牌。
感谢阅读,祝大家未来好运 ;)