453. MLB Player Digital Engagement Forecasting | mlb-player-digital-engagement-forecasting
这真是一场极其激烈的比赛。鉴于数据的广度,任何时候都不乏新的尝试。为此,我要感谢 MLB 和 Kaggle。
滞后特征对于本次比赛的重要性已经不是什么秘密了。我也发现了这一点,有一段时间我的解决方案严重依赖滞后的目标变量。我怀疑大多数高分提交也是如此。然而,对于真实数据与推理期间之间的间隔会有多大,存在很多不确定性。我曾考虑过进行一些增强以提高鲁棒性,比如随机丢弃最近 n 天的目标滞后值,但这直接破坏了我的模型性能。所以,我最终放弃了这个策略。虽然我的解决方案中确实包含了一些目标特征聚合,但就滞后特征而言,我的最终提交仅依赖于已知特征的滞后,比如比赛数据、积分榜和比赛特征。
我尝试了很多不同的模型,但都没有奏效。这里是一个快速总结:
完全无效的:
效果尚可,但不够好的:
我的最终提交是一个 GRU 和一个 Transformer 的集成,它们依赖于非目标滞后特征。GRU 是我最好的模型,单独得分约 ~1.25。Transformer 单独得分约 ~1.27,但在集成中证明非常有用。
我做了一个简单的时间序列分割。在训练数据更新之前,我使用了 2020 年的 7 月和 8 月,以及 2021 年的 4 月。在更新数据发布后,我使用了 2020 年 8 月以及 2021 年 6 月和 7 月。
下面是我使用的所有类型特征的列表。所有滞后特征回溯 2 周。
我尝试利用数据的缩放特征,比如找出球员目标特征之间的最小增量,并将他们的目标特征重新缩放为非缩放的“实际”特征,但这对我的模型并没有真正的帮助。我对此感到非常惊讶。
我注意到包含尽可能多的数据有巨大帮助,所以我知道我想让我的最终解决方案中至少有一个是在 100% 可用数据上训练的模型。然而,我的 Transformer 和 GRU 的训练曲线都相当颠簸。因此,在 100% 数据上进行盲训练时,我从第 1500 步开始每 200 个轮次保存一次检查点。我还跨多个随机种子进行了集成。
为了保险起见,我的第二次提交使用的模型将最后 30 天的可用数据作为验证数据。这实际上只是一种对冲手段,但我很想知道它的表现如何。