返回列表

March ML Mania 2024

601. March Machine Learning Mania 2024 | march-machine-learning-mania-2024

开始: 2024-02-27 结束: 2024-04-09 赛事预测 数据算法赛
March ML Mania 2024 - 解决方案

March ML Mania 2024

作者:Taizhuo Tang
排名:第4名

背景

我是一名拥有数学背景的数据科学家。作为大学篮球迷,我已经制作了多年的三月疯狂(March Madness)预测名单。

非常感谢比赛的赞助商和主办方!最后的评分指标变化让这次比赛变得相当紧张,但我认为这是必要的。在比赛早期,我和许多人一样担心,这将不再是预测建模比赛,而更多是一场博弈论/投资组合优化竞赛。

方法概述

与其他人不同,他们有自己的年度迭代模型,我的整体策略很大程度上是基于去年(以及往年)表现良好的方法。

主要策略是从2023年获奖作品(paris madness)开始,它本身基于raddar的代码,这也是许多 previous competition medalists 使用的,然后修改特征工程和交叉验证设置。我根据其他历年top选手在他们自己的writeups中分享的想法更新了特征工程(2023年第5名的讨论帖子特别有帮助),并调整了交叉验证策略,改为按年份而不是按比赛进行采样。另一个策略是采用Silver的方法,并用goto转换进行优化,以此作为基线对比,同时在两个提交之间引入差异不用说,我花时间较少的那个反而得分更高......

提交详情

由于每个提交的预测名单必须遵循有效的比赛路径,分配的赔率必须是非递增的;我觉得如果早期轮次的赌博没有payoff,就很难实现逆转。否则,直觉上的赔率调整在notebook中有很好的解释(冷门偏好、强队在常规赛期间保留最佳球员、锦标赛期间不同的比赛条件)。

鉴于对强队的重视,另一个问题是我是否应该clip/覆盖概率,我最终决定不这样做:

  1. 感觉太随意,而且在回测中没有提供有意义的改进。
  2. 基线已经很下注强队了,而且似乎很多其他团队已经对高种子队过度加权了。

因此,最终的notebook如下:

  • 为了正确地将团队映射到比赛,我创建了一个转换矩阵/字典,用于每个种子队在锦标赛中的进展方式,以及他们将在哪一轮面对每个可能的对手。
  • 将goto转换应用于比赛赔率。
  • 比赛模拟代码非常高效,所以没有理由不提交完整的10k个预测名单以获得更好的 granularity。

在生成最终预测名单后,我对每个球队的 probabilities 进行了快速可视化作为sanity check,以及转换前后晋级的 likelihood 变化(由于play-in rounds看起来有点奇怪)。

资料来源

特别感谢,如果您还没有,请为以下notebook点赞。它们非常慷慨地与更广泛的社区分享如此制作精良的内容,我知道还有很多人从中受益:

  • 模拟 NB:Lennart 真的是救命稻草;这比我能产出的要快得多且更干净。
  • 转换 NB:goto 转换出现在很多与体育/赔率投注不直接相关的地方,包括最近的 Optiver 比赛;这绝对是未来必备的强大工具。

对未来比赛的思考

更聪明的人已经为此写了很多,这里是我的两点看法:

我也支持 MAE(平均绝对误差)点差预测。凭经验来说,确实看到了一些" momentum "在 leaderboard 上的移动(见此评论),随着比赛的进行,排名持续上升/下降。预测点差将允许更多(令人兴奋的)后期预测爆冷。

我不支持将两个比赛提交减少为一个:

  1. 其他 Kaggle 比赛,涵盖广泛的主题/预测类型,都允许多个提交,其中两个是标准;我不认为三月疯狂应该成为例外的充分理由。
  2. 人们自然会以多种方式处理问题,提供空间来实施更大胆/多样化的策略是一件好事。
  3. 它为您的某个提交notebook出现故障提供了一定程度的保险。
同比赛其他方案