409. Google Research Football with Manchester City F.C. | google-football
在这篇文章中,我将代表我的团队 Ken+digimagi 分享我们解决方案的一些信息。
在深入介绍之前,我首先要感谢主办方、Kaggle、Google Research、曼城以及整个社区。我在这次比赛中投入了132个小时。我很高兴参加了这次比赛,不仅学到了很多东西,而且度过了一段非常激动人心的时光。
还要感谢这两个笔记本,我们从中获得了很多灵感:
我的队友 Ken Miller @mlconsult Notebook链接
Tom Kelly @tomkelly0 Notebook链接
我们还要感谢 Wekick 和 SaltyFish,他们在本次比赛中一直领先,并对我们的方案产生了影响。
此外,在提交截止后,kangaroo、xin & willson & pigzz 之间为了最后一块金牌展开了激烈的争夺。这打扰了我安稳的睡眠,但同时也让我度过了今年最兴奋的时刻。
我们的解决方案本身并不太创新,很简单。这次比赛可以通过多种方式解决:基于规则、机器学习和强化学习。当我认真决定参加这次比赛时,Wekick 和 SaltyFish 这两支队伍统治了其他队伍。我们的出发点是:如果我们能模仿这些强队的智能体,我们能造出多强的智能体?我们将其简化为一个多分类机器学习问题,即预测这些强智能体的动作。
这里是我们的端到端 Notebook链接(除了收集对局数据),它学习了 WeKick:18239675,LB分数约为1395。
梯度提升树,每个 ball_owned_player(持球球员)一个模型。
使用 Optuna 进行超参数调整。
平均集成,改变了超参数后,分数有所提高。
我们曾尝试 K-fold 模型一段时间,但训练时间太长,而且不用 K-fold 也能达到一定的准确率,所以中途就停止使用了。
以下是我们模型的分数趋势:
| 日期 | 分数 | 准确率 | 特征数量 |
|---|---|---|---|
| 11月16日 | 600 | 0.65 (少量对局) | 147 |
| 11月22日 | 1070~1150 | 0.60 | 482 |
| 11月25日 | 1300~1320 | 0.75~0.77 | 744 |
| 11月29日 | 1380~1400 | 0.79~0.81 | 1154 |
以下 submissionId 智能体的对局被用作候选数据:
起初,我们使用了 SaltyFish:18010220 的对局,它有大量的比赛,但我们无法达到很高的准确率。然而,使用 WeKick:18127517 或 WeKick:18239675 时,我们能够达到相对较高的准确率,因此我们专注于这些智能体的对局。我们尝试将它们组合,并排除了输掉的比赛。
我们从观察中生成了1154个特征。
其中一些直接来自原始观察,但我们参考了以下论文(日文)来生成基于足球领域的特征。
同比赛其他方案