返回列表

6th place solution, team embedding

481. March Machine Learning Mania 2022 - Men’s | mens-march-mania-2022

开始: 2022-02-19 结束: 2022-04-05 赛事预测 数据算法赛
第6名方案:队伍嵌入

第6名方案:队伍嵌入

作者:AxotZero | 比赛排名:第6名

大家好,这是我的工作成果:Notebook

恭喜我获得了第一枚金牌,虽然离奖金只有一步之遥🥺。不过,我的方法在 March Machine Learning Mania 2022 - Women's 比赛中仅获得了 659 名中的第 472 名。

据我所知,我的方法与以往的工作有所不同,大多数以往的工作都是通过特征工程来添加和聚合特征,作为常见机器学习模型的输入和目标。在我的工作中,我尝试训练给定 team_id 的队伍嵌入,并让模型根据给定的两个队伍嵌入来预测比赛结果。

以下内容摘自我的 notebook,用以说明我的方法。

模型

模型结构图

  • 模型目标:
    • 给定 2 个 team_id,预测比赛结果
  • 输入:
    • team_emb:训练好的嵌入,代表给定 team_id 的嵌入,使用 torch.nn.Embedding() 初始化。
  • 输出:
    • team1_win:队伍1是否赢得比赛
    • team_info:比赛详细结果的缩写,包含 ['Score','FGM','FGA','FGM3','FGA3','FTM','FTA','OR','DR','Ast','TO','Stl','Blk','PF']

数据

  • 训练数据
    • RegularSeasonDetailedResults.csv
  • 验证数据
    • NCAATourneyDetailedResults.csv

预处理

  1. 复制数据并使其对称,以消除胜负方的影响。
  2. 添加特征 "is_win",表示队伍1是否赢得比赛。
  3. 应用分位数变换team_info 转换为正态分布。

训练

  1. 沿时间线训练一个 epoch。
  2. 一个 minibatch 是具有相同 'Season' 和 'DayNum' 的数据。
  3. 队伍嵌入每天都会更新。

未来工作

  • 应用 GNN(图神经网络),让两支队伍的单场比赛结果影响其他队伍,并增强模型应用队伍间关系的能力。
同比赛其他方案