返回列表

7th Place Solution

543. March Machine Learning Mania 2023 | march-machine-learning-mania-2023

开始: 2023-02-15 结束: 2023-04-04 赛事预测 数据算法赛

2023疯狂三月机器学习竞赛解决方案

第7名提交方案

Private Leaderboard Score: 0.17704
Private Leaderboard Place: 7th

背景

我是杜克大学2022届数据科学专业的毕业生,目前在美国华盛顿特区的一家体育分析公司工作。这是我第二次参加此类竞赛,参赛原因是预测这个疯狂的篮球锦标赛结果非常有趣。去年我在男子组比赛中获得第100名,未参加女子组比赛。我的男子组模型是两年前为娱乐编写的,而女子组模型是今年为参赛在约4天内创建的。

方法论

所有编码均使用R语言完成。两个模型的基本方法是:

1) 通过岭回归(glmnet)/混合效应模型(lme4)生成球队评分,预测得分差、攻防效率、攻防节奏等指标(即在控制对手、主场等因素后,球队A对进攻效率、得分差等的影响)

2) 使用步骤1)的球队评分,通过XGBoost预测比赛得分差

预测比赛得分差最重要的特征是步骤1)中的各种球队评分。这些模型在每个赛季每天结束后重新训练,因此首次运行整个建模框架需要多天时间。简单的广义线性模型(GLM)将预测得分差转换为获胜概率。

代码实现

代码仓库包含男子组和女子组模型,分别位于mens/womens/文件夹。各文件夹中的run_all.sh脚本指定了运行整个建模框架的文件顺序,kaggle_preds.R脚本将预测结果合并为最终提交文件。

首次运行时,需在各文件夹的models/子文件夹中运行脚本,调整XGBoost模型的超参数并训练男子组投篮概率模型(通过tidymodels框架和交叉验证实现)。还需在各目录中创建data/文件夹。

注意:男子组模型通过自研R包gamezoneR使用外部公开数据,女子组模型仅使用竞赛提供的数据。

手动调整

在某次提交中,我手动将Oral Roberts对Duke的获胜概率设为80%...结果不理想。另一次将Michigan State对USC的获胜概率设为80%...这次却成功了。这些调整很不明智,因为我应该设为99%,如果两者都失败,我将陷入非常不利的境地。在女子组中,我将所有1号种子对16号种子的获胜概率设为99%。

同比赛其他方案