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 层。
- 优化器
- 损失函数
- 最后一层使用二元交叉熵 和 MAE。
- 在每个 GCN 层之后紧接着设置了将输出分为 50 个部分的二元交叉熵损失。这加快了收敛时间。
- 数据增强
- 翻转 Y 轴。
- 添加几秒钟后的数据没有效果。
- TTA (测试时增强) 没有效果。
- 特征工程
- 每个球员 115 个特征。
- 将球员特征和比赛特征分开处理反而使分数变差。
- 以下 0~2 秒后的特征显著提高了分数:
- 每个球员周围的对方球员数量。
- 移动一定距离后是否会与跑卫 发生碰撞。
- 与跑卫的距离。
- 后处理
- 对于从当前位置无法到达的部分,用 0 或 1 进行填充。