1. 题面拆解:网球比赛“势头”到底在问什么
先说结论:2024年数学建模竞赛C题本质上是“用数据说话,评价一个看不见摸不着的现象”——网球比赛中的势头(Momentum)。题目给了好几场温网比赛的逐分数据,要求判断势头是否存在、能否量化、能否预测。听起来很玄,但拆开之后核心就三个问题:定义、度量、验证。
我拿到题的第一反应是:这不是一个传统的机理建模题,更像一个数据驱动的“归因+预测”题。它不像物理题那样有明确的方程可以推,也不像规划题那样有明确的目标函数可以优化,它考察的是你能否从一个模糊的体育概念出发,构建一套合理的量化框架,并且用统计和机器学习方法证明“这东西有影响”或者“这东西不存在”。
很多参赛队在这个题上栽跟头,不是代码写得差,而是题面理解出现了偏差。尤其是题目里有一句话引发了巨大争议——大致意思是“势头的变化是选手表现变化的原因,还是仅仅是表现变化的描述”。这句话直接导致不同队伍走了完全不同的建模路线。有的队伍把它理解成因果关系检验,用了格兰杰因果、因果推断那一套;有的队伍则把它处理成相关性分析和预测问题。后来命题组还专门发过声明来说明出题意图,可见这个歧义影响面有多大。
我的建议是:不要纠结于“因果”这个哲学问题。竞赛评阅看的不是你选了哪一派,而是你在自己的定义框架下是否逻辑自洽、是否做了充分的验证。你可以在论文里明确写出“本文所指的势头,是对选手近期比赛表现的综合度量,而非对内在状态的因果推断”,把定位说清楚,后面所有建模工作就不容易跑偏。
另一个容易被忽略的点是数据处理。C题给的数据是逐分(point-by-point)级别的,每一行记录包含比赛ID、局分、盘分、发球方、得分方等信息。这种数据结构比逐球数据粗,但比逐局数据细。逐分数据意味着你可以自己定义“势头窗口”——究竟用最近3分、5分还是一局来刻画某位选手的当下状态,这个窗口长度本身就是建模的一部分。后面我会详细讲窗口怎么选、为什么这么选。
再来说说“AI版论文”这部分。这几年数学建模竞赛的评阅环境已经发生了变化,光靠传统的层次分析、灰色预测这种“老三样”已经很难拿高分。C题这种数据量适中、适合做特征工程的题目,正好是AI辅助建模和AI辅助写作的用武之地。所谓AI版论文,我理解就是用AI编程来处理数据验证、用AI辅助来拓展思路、用AI来提升论文的表达质量——但核心建模判断和结果分析必须是人来做主。
我个人认为,2024年C题是近年来最适合“数据挖掘+机器学习”打法的一道题,它给AI留下的发挥空间比A题B题都大。接下来我就从思路搭建开始,一步步说清楚怎么做。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 整体建模思路:从“瞎打”到“有章法”
2.1 三类典型解法路线对比
先摸个底。竞赛结束后我复盘了大量优秀论文,也看了不少翻车论文,发现主流解法可以归成三大类,各自的优缺点非常明显:
第一种是“统计检验派”。核心做法是定义势头为一个二值变量或连续变量,然后用卡方检验、t检验、Mann-Whitney U检验等方法,比较“有势头时赢分概率”与“无势头时赢分概率”是否存在显著差异。优点是逻辑简单、可解释性强,写起来不容易跑偏;缺点是比较浅,很难回答“势头能持续多久”“势头对关键分是否有不同影响”这类更深的问题,而且如果只做检验,论文的模型部分会显得单薄,拿高分吃力。
第二种是“机器学习打分派”。核心做法是把比赛过程切成时间窗口,为每个窗口构造特征,然后训练分类器或回归模型,预测选手赢下下一分的概率或势头得分。常见模型包括逻辑回归、随机森林、XGBoost等。优点是天花板高,特征工程做得好可以挖出很多有意思的结论;缺点是容易陷入过拟合,而且如果对结果不做归因分析,评委很难信服你的模型到底学到了什么。
第三种是“状态空间/时序模型派”。把势头看作一个隐状态变量,用状态空间模型或隐马尔可夫模型来刻画它的动态变化。这类方法理论深度比较足,但实现难度大,数据处理不好容易出bug,而且解释起来对写作功底要求很高。
我的推荐是:第一类打底、第二类扩展,有能力就加一点第三类做点睛。竞赛不是科研,拿分效率最重要。先用统计检验把“势头是否存在”这个问题答清楚,再用机器学习构建势头评价模型去回答“势头能否预测”以及“哪些因素驱动势头变化”,最后用SHAP等可解释性工具让评委看得懂你的模型。
2.2 我的整体建模框架选型
具体到落地,我构造了“定义—量化—分析—预测”四段式框架。
第一步是定义“势头”。必须给出一个可操作的定义,不能只说“势头是选手连续得分带来的气势”。我在论文里将势头定义为:选手在近期比赛片段中,相对于其自身基准水平的表现偏离程度。这个定义包含两层含义:一是“近期”,需要通过窗口来体现;二是“偏离基准”,需要通过对比该选手全场比赛的平均表现或发球局表现来体现。
第二步是量化。我给每个时刻的每位选手算一个势头分数。简单可靠的量化方式是:用一个长度可调的滑动窗口,计算窗口内该选手的得分率、破发成功率、非受迫性失误率等核心指标,再与该选手比赛整体均值做对比,得到标准化后的势头得分。这个做法既好实现,又给后续的特征工程留足空间。
第三步是分析。用统计假设检验验证势头分数的分布差异和结果关联。比如,将势头分为高势头状态和低势头状态,比较两种状态下下一分的获胜概率;也可以用logistic回归直接预测下一分是否由势头方赢下,看势头系数是否显著为正。
第四步是预测与归因。把势头得分与比赛背景特征(局分、盘分、是否发球、是否破发点等)作为特征,训练分类器预测后续得分走势,再用特征重要性分析找出驱动
