返回列表

7th place solution 🥇 : The very simple method !

648. March Machine Learning Mania 2025 | march-machine-learning-mania-2025

开始: 2025-02-10 结束: 2025-04-08 赛事预测 数据算法赛
第 7 名解决方案 🥇:非常简单的方法!

第 7 名解决方案 🥇:非常简单的方法!

作者: wakama1994 (MASTER)
发布日期: 2025-04-10
比赛排名: 第 7 名

在开始参加这场比赛之前,我无法想象我会获得如此高的分数,这是我过去参加比赛中取得的最好成绩。我对这个结果感到非常惊喜。

在我的策略中,由于比赛时间有限,我只专注于 Kaggle 高阶选手创建的 Notebook 以及过去 NCAA Kaggle 比赛中成功的解决方案。

我的获奖解决方案如下 URL(第 3 版)!(标题为 7th place🥇notebook_NCAA2025)
https://www.kaggle.com/code/takumuwakamatsu/7th-place-notebook-ncaa2025

为了创建得出结果的 Notebook,我只做了 2 个步骤。

① 基础 Notebook

基础 Notebook 是以下 URL,由 @raddar 开发(提交截止日期前的最新版本):
https://www.kaggle.com/code/raddar/vilnius-ncaa

该 Notebook 在特征工程方面提到了以下 5 点:

  • 简单难度特征(合并种子信息数据集)
  • 中等难度特征(结合 T1 和 T2 的平均值来预测 T1 和 T2 之间的比赛结果)
  • 高难度特征(引入 EOL 比率)
  • 最高难度特征(使用 GLM 方法计算强度)
  • 在这 4 个步骤创建完成后,我从这些步骤中选择了 25 个特征。

最后,Notebook 中的 XGBoost 参数如下,并完成了 5 折交叉验证(k-fold method)。
然后我使用相同的参数预测了每一年。

param = {}
param["objective"] = "reg:squarederror"
param["booster"] = "gbtree"
param["eta"] = 0.01
param["subsample"] = 0.6
param["colsample_bynode"] = 0.8
param["num_parallel_tree"] = 2
param["min_child_weight"] = 4
param["max_depth"] = 4
param["tree_method"] = "hist"
param['grow_policy'] = 'lossguide'
param["max_bin"] = 32
num_rounds = 700

最后,我使用样条插值(spline interpolation)修正了 XGBoost 的结果。

② 优化策略

在 ① 基础 Notebook 的最后部分,我添加了以下 URL 中由 @kaito510 创建的 Notebook:
https://www.kaggle.com/code/kaito510/updated-goto-conversion-winning-solution

该解决方案如下,为了计算这个,我添加了 '538data' 数据集 (https://www.kaggle.com/datasets/kaito510/538data)。

  • 采用最优策略提交 以下是数学证明:在 Brier 分数下赢得奖牌的最优策略是,当我们假设一支球队有 33.3% 的获胜几率时,就预测该球队赢得比赛。

  • 当我们对给定游戏进行风险投资时,预期回报可以表示为:

f(p) = p(1 - p)^2 其中 p 是成功的概率,(1-p)^2 本质上是风险成功时所承担风险的回报

这意味着 f'(p) 和 f''(p) 可以表示为:

f'(p) = -2p + 2p^2 + (1-p)^2

f''(p) = -4 + 6p

argmax_p f(p) = 1/3 (繁琐的数学推导省略)
  • 因此,当我们假设一支球队有 1/3 的几率赢得比赛时,预期回报最大化。

最后,我非常感谢 @raddar@kaito510 开发了如此伟大的 Notebook!
没有你们,我不可能在这场比赛中获得如此惊人的结果!!!! 非常感谢。

同比赛其他方案