返回列表

Result of Late Submission: 2D-CNN + XGB + 1D-CNN (Private LB: 0.78703)

537. 1st and Future - Player Contact Detection | nfl-player-contact-detection

开始: 2022-12-05 结束: 2023-03-01 运动员表现 数据算法赛
延迟提交的结果:2D-CNN + XGB + 1D-CNN (Private LB: 0.78703)

延迟提交的结果:2D-CNN + XGB + 1D-CNN (Private LB: 0.78703)

作者:Bilzard | 发布时间:2023-03-13

为了供以后参考,我将分享比赛后的实验结果 (LB: 0.78703)。我的原始解决方案可在此处找到 (Private LB: 0.76741)。

首先,我感谢其他人分享的所有解决方案。我从他们的解决方案中获得了很多见解。例如,在 CNN 中使用独立通道处理数值特征来自 Team Hidrogen 的方案,而使用“球员-任何人”和“球员-地面”接触信息则是采纳了 Qishen 和 Bo 的方案(以及第 18 名团队的做法)。

我在延迟提交中所做的工作

  1. 使用减少球员重复的折分割
  2. 5 通道 2D-CNN(通道设计与Team Hydrogen 的方案相同,除了未使用 2.5D)。
  3. 添加第 1/2 阶段预测分数的组特征和滞后特征 (+group +lag)。
  4. 添加“球员-任何人”接触特征 (+group +lag)。
  5. 在“球员-球员”模型上添加“球员-地面”接触特征 (+group +lag)。
  6. 应用“球员-球员”序列级别的剪枝。
  7. 添加第 4 阶段的 1D-CNN。

讨论

5 通道 2D-CNN 相比我原来的架构(3 通道 2.5D-CNN)带来了显著的提升 (+0.54%),同时也大大减少了训练/评分时间。

最大的收益之一来自严格的 CV 分割。正如我在帖子中已经提到的,减少球员重复的折分割极大地改善了 CV/LB 的相关性。多亏了这种折分割,我可以通过第 3 阶段的附加特征进一步提升 LB (+0.87%)。

序列级别剪枝 (+0.16%) 和 1D-CNN (+0.26%) 进一步提高了分数,尽管在 CV 上没有增益。可能的原因之一是我使用的 CV 太严格了,而测试数据中可能包含少量也出现在训练数据中的球员。

加速评分时间的技巧

我还通过以下技巧减少了评分时间。

  • 使用 2D CNN 代替 2.5D (3-4小时 -> 2小时)
  • 加载图像时使用 @lru_cache (2小时 -> 1小时)
  • 使用 numpy 数组代替 JPEG (1小时 -> 45分钟)

未起作用的方法

  • 使用额外的 CNN 预测分数,该 CNN 训练带有“球员-任何人”接触的标签(与从“球员-球员”接触 CNN 提取的组特征相比,分数仅持平)。
  • 2.5D-CNN(分数仅与 2D-CNN 持平)。

分数结果

提交序号 CV Public LB Private LB 架构 描述 #特征(p2g)
1 0.7950 0.7701 0.7738 XGB + 2D-CNN(5通道) + XGB 阶段1特征 + 阶段2预测分数 1032
2 0.8038 0.7806 0.7773 XGB + 2D-CNN(5通道) + XGB #1 + 阶段2预测分数的滞后和组特征 1057
3 0.8035 0.7788 0.7799