返回列表

Private 7th(Public 12th) solution&code with keras GCN library

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

开始: 2019-10-09 结束: 2020-01-06 赛事预测 数据算法赛
Private 7th(Public 12th) solution&code with keras GCN library

Private 第7名 (Public 第12名) 解决方案及代码 (使用 keras GCN 库)

作者: vinmuk | 比赛排名: Private 7th / Public 12th

非常感谢竞赛组织者和 Kaggle 举办这场精彩的比赛。比赛中涌现了许多不同的方法,如 CNN、Transformer、GCN、MLP、提升树(Boosted Trees)以及大量的特征工程,让我学到了很多 :)

概览

  • 数据修正 (Data fix)
    • 没有修改数据。
    • 虽然某些特征存在分布差异,但在我的尝试中,通过调整均值和标准差来修正它们反而导致分数下降。
  • 模型 (Model)
    • 带有多个输出的 2 层 GCN(图卷积网络)。
    • 每个 GCN 层之后跟随一个注意力求和池化层(注意力是通过可训练权重与每个球员特征的点积计算得出的)。
    • GCN 层是我原创的层,结合了图注意力网络 (GAT) 和 GraphConvSkip 层。
  • 优化器
    • Adam (学习率 lr=1e-3)
  • 损失函数
    • 最后一层使用二元交叉熵 和 MAE。
    • 在每个 GCN 层之后紧接着设置了将输出分为 50 个部分的二元交叉熵损失。这加快了收敛时间。
  • 数据增强
    • 翻转 Y 轴。
    • 添加几秒钟后的数据没有效果。
    • TTA (测试时增强) 没有效果。
  • 特征工程
    • 每个球员 115 个特征。
    • 将球员特征和比赛特征分开处理反而使分数变差。
    • 以下 0~2 秒后的特征显著提高了分数:
      • 每个球员周围的对方球员数量。
      • 移动一定距离后是否会与跑卫 发生碰撞。
      • 与跑卫的距离。
  • 后处理
    • 对于从当前位置无法到达的部分,用 0 或 1 进行填充。
同比赛其他方案