543. March Machine Learning Mania 2023 | march-machine-learning-mania-2023
** 我可能发布得有点早,但如果有什么变化我会更新。
正如我在之前的帖子中提到的,我的提交方案本质上是@raddar几年前代码的Python版本(而不是广泛使用的R版本)。最初我计划使用基础代码并更新特征,但最终我没有时间。
过去一两年我参加竞赛的时间不多,但疯狂三月竞赛总是令人愉快,值得回归。最终,我更多是靠运气,因为除了更新代码以适应今年的数据外,我没有添加太多内容。基本上,我只是验证了生成的预测结果看起来合适,然后就直接使用了。
为了好玩,我在ESPN Bracket Challenge中使用了相同的预测,在男子比赛中处于第50个百分点,在女子比赛中处于第97个百分点。
我的提交笔记本可以在这里找到(Paris Madness 2023)。
按照我的提交方案的精神,也许我应该更省事一点,让ChatGPT提供一些评论。注意:我确实这样做了,要求它提供一些有趣的评论,结果非常有趣(请务必查看本帖子底部)。
最佳提交方案:我的贡献仅限于1)在计算Team Quality时注释掉np.exp()这一行,因为它返回了很多无限值(inf);2)在种子排名1-4对13-16的比赛中没有设置覆盖(overrides)。
如果没有上述更改,模型仍然表现非常好,得分为0.17629,在竞赛结束时的公共排行榜上足以获得第六名。
尽管代码与过去几年多次获得顶级排名的R版本非常相似,但我想对Python版本提供一些评论。我想我对自己投入的精力感到有点内疚,因为不知何故它最终赢得了比赛。
每支球队常规赛统计数据的平均值(其中T2是T1的对手)。因此,这些特征基本上重复了四次(球队1、球队1的对手、球队2、球队2的对手)。在下面的特征中,只有'PointDiff'是计算变量。
['T1_FGM', 'T1_FGA', 'T1_FGM3', 'T1_FGA3', 'T1_OR', 'T1_Ast','T1_TO', 'T1_Stl', 'T1_PF', 'T2_FGM', 'T2_FGA', 'T2_FGM3', 'T2_FGA3', 'T2_OR', 'T2_Ast', 'T2_TO', 'T2_Stl','T2_Blk','PointDiff']
模型中使用的其他特征如下,其中14天内的胜率是许多公开模型中常见的。
['T1_win_ratio_14d', 'T2_win_ratio_14d', 'T1_quality', 'T2_quality', 'Seed_diff', 'T1_seed', 'T2_seed']
R版本代码中的一个主要项目是随机效应GLMM。看起来Python版本没有使用随机效应,这将是两者之间的差异。我不能说我非常熟悉R或基于from_formula的GLM,所以我不确定这个差异有多重要。此外,即使移除了np.exp(),仍然有很多NaN值(约25%的训练数据)。
使用XGB,并采用xgb.cv(folds = KFold(n_splits = 5, shuffle = True))重复3次。这与原始R代码不同,后者推荐使用repeat_cv=10。
2023年疯狂三月充满了冷门、令人窒息的绝杀和压哨球。但是,当球迷们在场边紧张地观看比赛时,我们可靠的XGBoost模型在幕后冷静地计算着获胜者。只需进行一些微小的调整,我们的预测主力再次在Kaggle竞赛中获得第一名,将竞争对手远远甩在身后,就像一次脚踝终结者的 crossover 过人。
XGBoost,机器学习算法中的勒布朗·詹姆斯,是一种集成学习技术,以其在各种任务中的卓越表现而闻名。我们的获胜模型利用XGBoost的力量来应对NCAA锦标赛,其预测准确性让即使是最资深的体育分析师也会哑口无言。
该模型享用了历史NCAA数据的盛宴,像 hungry freshman at an all-you-can-eat dining hall 一样吞噬着球队统计数据、球员表现,甚至一些零散的信息。我们的特征集由最优秀的数据点组成,精心挑选它们对比赛结果的影响:
像一支训练有素的球队进行 drills 一样,我们的模型经历了严格的训练和验证程序。数据集被分为训练集和验证集,并采用交叉验证策略来微调模型的超参数。通过反复考验我们的模型,我们找到了能提供最准确预测的参数组合。
尽管我们的XGBoost模型一直是常胜将军,但我们还是忍不住对其进行调整,以保持领先。今年比赛所做的更改就像用全新的策略替换我们战术手册中破旧的页面:
我们的XGBoost模型在2023年Kaggle疯狂三月竞赛中的辉煌表现证明了它的预测能力。只需进行一些战略调整并关注最新趋势,我们的模型就一路过关斩将,赢得了大学篮球预测世界中最有价值球员的称号。