章节 01
正文
机器学习预测马拉松完赛时间:2023波士顿马拉松数据分析实践
本文介绍了一个基于2023年波士顿马拉松数据集(26,598名跑者)的机器学习项目,通过年龄组、性别和半程成绩预测全程完赛时间,对比了线性回归、神经网络和集成树模型,最终实现了RMSE仅9.42分钟的高精度预测。
机器学习马拉松预测回归分析波士顿马拉松数据清洗模型对比集成学习体育数据分析
正文
本文介绍了一个基于2023年波士顿马拉松数据集(26,598名跑者)的机器学习项目,通过年龄组、性别和半程成绩预测全程完赛时间,对比了线性回归、神经网络和集成树模型,最终实现了RMSE仅9.42分钟的高精度预测。
章节 01
rmmissing函数移除包含缺失值的记录,确保每条数据都是完整的观测样本。\n\n### 第二阶段:异常值过滤\n\n项目设计了智能过滤规则来识别并剔除不合理数据:\n\n- 正向时间验证:确保半程时间和完赛时间均为正值,排除因退赛(DNF)而被记录为零的情况\n- 配速比例约束:通过分析发现,正常完赛跑者的全程与半程时间比值通常在1.80到3.20之间。超出此范围的记录被视为异常数据并予以剔除\n\n### 第三阶段:特征工程\n\n- 分类变量编码:对年龄组和性别进行独热编码(One-Hot Encoding),使用完整数据集定义的类别列表,确保测试集不会出现训练集中未见的类别\n- 数值标准化:对半程时间进行标准化处理,使用仅来自训练集的均值和标准差,避免数据泄露\n\n数据按80/20比例划分为训练集和测试集,并设置随机种子为42以确保结果可复现。\n\n## 模型选择与训练策略\n\n项目采用四模型对比策略,全面评估不同算法在该预测任务上的表现:\n\n### 模型一:基线比例法\n\n作为最简单的基准模型,该方法假设全程时间约等于半程时间乘以一个平均比例系数。虽然方法简单,但为后续复杂模型提供了性能下限参考。\n\n### 模型二:线性回归\n\n使用MATLAB的fitlm函数训练多元线性回归模型,将独热编码后的分类特征与数值特征结合。线性模型的优势在于可解释性强,系数直接反映各特征对预测结果的影响方向和程度。\n\n### 模型三:神经网络回归\n\n采用fitrnet实现三层神经网络,隐藏层结构为[64, 32, 16],使用ReLU激活函数。神经网络能够捕捉特征间的非线性交互,理论上可以建模更复杂的配速衰减模式。\n\n### 模型四:Bagged Trees集成模型\n\n使用fitrensemble构建包含150个学习器的Bagging集成树模型,设置最小叶节点大小为10。集成方法通过组合多个弱学习器的预测,有效降低方差,提高泛化能力。\n\n## 评估指标体系\n\n项目建立了多维度的评估框架,从不同角度衡量模型性能:\n\n### 传统回归指标\n\n- 平均绝对误差(MAE):以秒和分钟为单位报告,直观反映预测误差的平均幅度\n- 均方根误差(RMSE):对大误差更敏感的指标,作为模型自动选择的主要依据\n- 平均绝对百分比误差(MAPE):百分比形式的相对误差,便于跨数据集比较\n- R²决定系数:反映模型解释目标变量方差的比例\n- 中位数绝对误差:对异常值更鲁棒的误差度量\n\n### 实用精度带分析\n\n考虑到跑者的实际使用场景,项目特别设计了"±X分钟准确率"指标:\n\n- 预测误差在±5分钟内的比例\n- 预测误差在±10分钟内的比例\n- 预测误差在±15分钟内的比例\n\n这些指标直接回答了一个实际问题:"如果我用这个模型预测完赛时间,有多大的概率我的实际成绩会落在目标区间内?"\n\n## 实验结果与模型对比\n\n在20%的测试集上,四个模型的表现如下:\n\n| 排名 | 模型 | MAE(分钟) | RMSE(分钟) | R² | ±10分钟准确率 |\n|------|------|-------------|--------------|-----|---------------|\n| 🥇 | Bagged Trees集成 | 6.31 | 9.42 | 0.953 | 78% |\n| 🥈 | 线性回归 | 6.44 | 9.70 | 0.951 | 77% |\n| 🥉 | 神经网络 | 6.39 | 9.75 | 0.950 | 77% |\n| 4 | 基线比例法 | 6.83 | 10.11 | 0.947 | 72% |\n\n### 关键发现\n\n集成模型以微弱优势胜出:Bagged Trees在RMSE指标上以9.42分钟的成绩领先,比第二名线性回归的9.70分钟仅提升约0.3分钟。考虑到线性模型的简洁性和可解释性,这种微小的性能差距引发了关于模型复杂度与实用性的思考。\n\n半程时间是主导特征:分析表明,半程分段时间单独就能解释目标变量的大部分方差。年龄和性别的加入虽然有所帮助,但增益相对有限。这符合马拉松运动的生理规律——前半程的配速策略往往决定了最终成绩。\n\n简单模型在此任务上表现优异:线性回归与复杂的神经网络和集成模型性能相当,说明该预测问题的信号本质上是线性的。这一发现对于生产环境部署具有重要指导意义——有时简单的解决方案比复杂的黑盒模型更优。\n\n## 二分类决策扩展\n\n项目还探索了将回归输出转换为二分类决策的应用场景。通过设定不同的完赛时间阈值(3:00、3:30、4:00、4:30、5:00),模型可以回答"这位跑者能否在X小时内完赛?"这类二元问题。\n\n实验结果显示,这种" over/under "决策模式在各个阈值上均达到了94%至98%的准确率,为赛事组织者、博彩分析和跑者目标设定提供了高置信度的决策支持。\n\n## 技术实现与可复现性\n\n项目使用MATLAB及其统计与机器学习工具箱实现,核心代码包括:\n\n- marathon_models.m:完整的端到端流水线脚本\n- boston_marathon_2023.csv:清洗后的数据集\n- 自动导出功能:生成.mat模型包、CSV结果表、预测值和可视化图表\n\n项目还配套开发了交互式网站(使用HTML/CSS/JavaScript单文件实现),以可视化方式展示模型排行榜、精度带分析、残差图和按年龄组/性别的性能细分。\n\n## 实践启示与经验总结\n\n单位选择影响结果解读:项目初期以秒为单位报告误差,但对跑者而言缺乏直观意义。改用分钟并结合"±X分钟准确率"后,结果变得可理解和可操作。\n\n可复现性是工程特征:通过固定随机种子、标准化导出流程和完整文档记录,项目从一个可用的脚本升级为任何人都能重新运行的系统。\n\n特征理解胜过模型调优:深入理解半程时间与全程成绩的关系,比盲目尝试更复杂的模型架构更有价值。\n\n## 结语\n\n这个波士顿马拉松预测项目展示了机器学习在体育数据分析中的实际应用。从26,598名跑者的真实数据中,我们不仅构建了一个精度达到R²=0.953的预测模型,更重要的是验证了"简单模型优先"的工程原则。对于类似的时间预测任务,线性回归或轻量级集成方法往往是性价比最高的起点,而复杂的深度学习并非总是必要选择。\n\n项目代码、数据集和完整文档已开源,为体育数据科学爱好者和马拉松研究者提供了宝贵的实践参考。