1. 引言
网球是一项结合了体能、策略和心理韧性的运动,其规则允许落后一方的球员随时翻盘,使得比赛过程充满悬念。实时胜率(Live Winning Probability, LWP)指比赛中根据实时数据动态计算的某方获胜概率。作为一种竞技体育中的量化指标,实时胜率能够在比赛过程中动态反映球员的胜算,指导选手在赛中调整策略和心态。在体育博彩领域,通过预测比赛的胜率,相关方可以更准确地设定赔率[1]。此外,媒体和赛事转播方也可以利用实时胜率数据,为观众提供更丰富的比赛解说和分析,提升观赛体验。在网球比赛中,势头(Momentum)是与之相关的一个重要的概念,指的是选手在比赛中因良好发挥或连续得分而取得的积极状态,通常表现为球员信心增加、击球选择更佳以及整体比赛水平的提升,势头的变化往往能够改变比赛的走向。对比赛势头的量化分析,可用于识别网球比赛关键时刻,提供比赛进程的全新视角。然而,由于势头涉及球员的信心、专注度、体能状态以及比赛策略等因素,难以直接测量,其定义往往较为模糊且难以捕捉势头的实时变化。
已有研究在分析体育比赛中的势头方面取得了一定进展。Markman和Guenther [2]探讨了心理势头对于获胜的作用,指出获胜的递进效应。Jones和Harwood [3]则从足球比赛的角度分析了球员对心理势头的看法。然而,这些研究大多集中在心理学层面,缺乏直接证据和对具体比赛数据的分析。近年来,越来越多的研究开始通过量化指标和机器学习模型对网球比赛中的胜率和势头进行深入分析[4]。Klaassen和Magnus [5]提出了基于马尔可夫链的模型来分析网球比赛中的得分概率,但该模型未考虑球员的个体差异和比赛中的动态变化。O’Donoghue和Brown [6]引入了“重要时刻”的概念来分析网球比赛中的关键点,但其方法主要基于静态统计,难以捕捉比赛中的实时变化。Lisi等人[7]提出了一种基于贝叶斯方法的实时预测模型,但该模型计算复杂,难以在实际比赛中实时应用。此外,现有的量化方法往往过于简单,未能充分考虑比赛中的动态变化和复杂性。例如,一些研究仅使用得分情况来衡量势头[8] [9],这种方法忽视了不同得分点的重要性差异。另一些研究则采用固定的权重来计算势头指数[10],但这种方法难以适应不同比赛间的差异和赛中灵活多变的局势。
综上,学界对于“势头”的量化方法多采用单一模型和静态数据,缺乏全面性、动态性和实时性。此外,传统的“势头”源于人们的主观感受,用于量化“势头”的指标并没有严格的可计算的验证标准,因此,评价指标优劣需要关注该指标是否能准确描述比赛进程,反映比赛动态,以及该指标是否能揭示“势头”本身的性质,加深人们对于比赛中“势头”这一概念的理解。
“胜率”是与“势头”相近的概念,由于历史比赛的具体得分情况和胜负情况已经确定,因此预测“胜率”可以借助有监督的分类算法实现。实时胜率的变化与波动一方面受选手“势头”的影响,另一方面又能在一定程度上反应双方“势头”变化,二者的量化后的序列波动在一定程度上应该能够相互解释。于是,我们希望能够根据历史赛事数据和比赛动态数据计算实时胜率,并从其时域特征中捕捉参赛球员“势头”的变化。
Figure 1. Research framework
图1. 本文工作框架图
如图1所示,本文考虑引入动态分析模型和数据处理技术,拟在建立实时胜率预测模型的基础上探索比赛势头的量化方法。首先对温布尔登网球锦标赛的数据集[11]进行初步分析,引入了14个特征,涵盖了球员属性、比赛动态和历史表现指标三个维度,在此基础上,通过机器学习算法(XGBoost)预测每次得分的胜率并结合SHAP值识别影响胜率的关键特征。进而依据温布尔登网球比赛的规则[12]和赛制结构建立状态转移模型,该模型通过不断调用前述XGBoost模型更新整场比赛的胜率,由此产生了随累积得分次数而变动的LWP序列。为了量化势头,本文使用了两种方法:一是通过改变每次得分(Point)的结果,计算LWP变化程度,将其定义为单次得分价值(Point Impact Value, PIV),对PIV序列应用指数移动平均(EMA),将平滑后的序列定义为比赛“势头”;二是对实时胜率(LWP)序列应用自回归积分滑动平均(ARIMA)建模得到“势头”。EMA定义方法能够平滑数据,揭示潜在的趋势和模式,而ARIMA定义方法则能够预测未来的比赛走势变化。最终结果表明,两种“势头”在解释比赛进程和描述比赛动态上各具有一定优势。
2. 实时胜率预测
网球的得分系统采用的是15-30-40的计分方式。当一方获得第一分时,记为“15”;获得第二分时,记为“30”;获得第三分时,记为“40”。如果双方都得到了40分,即为“平分”(Deuce)。此时,接下来一方必须连续赢得两个分才能取胜。相比于“势头”,胜率是一个更容易量化的概念。从最简单的情况出发,预测单次得分的胜率。本文使用历史网球赛事的数据训练具体的二分类模型给出某一方赢下一球概率。具体而言,使用XGBoost进行单次得分胜率预测时,每个基学习器(决策树)的输出通常是一个分数(Score),这个分数可以是任意的实数,用于表示样本属于某个类别的“强度”或“倾向”。在二分类问题中,XGBoost通常使用sigmoid函数[13]来将决策树的输出转换为概率,这里用于判断胜率及概率。
2.1. 数据与特征集
本文使用温布尔登网球锦标赛的数据集。综合考虑局内态势和固有属性,模型引入三类特征[14] [15],包括球员的排名、年龄、身高、体重等球员特定属性,当前得分、发球情况、破发点等比赛动态,以及发球得分率等历史表现指标(见表1)。
对数据的描述性统计显示,发球方有更高的胜率(图2(a)箱线图表示历年温布尔登锦标赛中赢得发球局的概率),表明发球方在一定程度上可以影响比赛走向。此外,数据显示不同球员的比赛动态特征存在差异,并在一定程度上影响得分。以2023年温布尔登男子单打决赛Carlos Alcaraz对阵Novak Djokovic为例[16],图2(b)~(e)显示了部分特征的高斯核密度估计(KDE)。考虑pointAdvantage这一特征(某一局内Player1的得分与Player2的得分的差值),其值越高则表明领先球员在某一局中占据越大的优势,越可能给对手带来较大的心理压力,从而“势头”占优。因此,此类指标具有衡量胜率与势头的潜力。
Table 1. Features table
表1. 特征表
特征 |
符号 |
描述 |
破发点情况 |
ifBreakpoint ( )* |
检查当前得分是否为破发点。 |
发球直接得分情况 |
ifAce ( ) |
判断上一发球是否为发球直接得分。 |
年龄,身高 |
height ( ), age ( ) |
球员的身高和年龄。 |
上一盘获胜者 |
preSetWinner |
指示上一盘比赛的获胜者。 |
排名差距 |
rankGap |
两名球员世界排名的差距。 |
发球得分率 |
serveWinRate( ) |
计算球员在比赛中发球得分的百分比。 |
局内得分优势 |
pointAdvantage |
当前局内两名球员得分的差距。 |
局优势 |
gameAdvantage |
当前比赛中两名球员赢得的局数差距。 |
盘优势 |
setAdvantage |
当前比赛中两名球员赢得的盘数差距。 |
*括号代表该特征包含ifBreakpoint (P1)与ifBreakpoint (P2),其中P1、P2分别代表两位球员,下同。
Figure 2. Descriptive statistics based on the Wimbledon tournament dataset
图2. 基于温赛数据集对部分指标进行描述性统计
2.2. 基于XGBoost的单次得分胜率预测
基于历史数据,本文使用XGBoost模型[17]对某一局内的单次得分进行胜率计算。XGBoost是一种基于梯度提升决策树(GBDT)算法的机器学习模型。它通过迭代地添加新决策树来修正前一轮的残差,从而逐步提高模型的预测准确性。XGBoost引入了列采样和行采样技术以增强计算效率并防止过拟合,同时采用高度优化的数据结构和并行计算技术,显著提升了模型训练速度。因此,XGBoost能够在处理大规模数据集时保持高预测准确性。XGBoost优化的目标函数包括训练损失和正则化项:
(1)
其中l表示损失函数,
是第i个样本的真实值,
是预测值,
是正则化项,表示为
(2)
其中T是树的叶子节点数量,
是叶子节点的权重,γ和λ是正则化参数。在每一轮迭代中,XGBoost会向模型中添加一个新的基学习器(决策树)来最小化目标函数。假设已经有了
棵树,第t轮的预测值为:
(3)
为了更有效地进行优化,XGBoost使用目标函数的二阶泰勒展开式:
(4)
其中
是一阶导数(梯度),
是二阶导数(Hessian)。为了简化树结构的优化,定义每个叶子节点上的得分为:
(5)
其中
是叶子节点j中的数据点索引集合。最优权重
可以通过公式计算:
(6)
最终,叶子节点的分数表示为:
(7)
在每一轮迭代中,XGBoost会根据当前模型的预测误差,计算每个样本的梯度和二阶导数,并使用这些信息来更新模型。通过计算每个叶子节点的得分,来调整模型的参数,从而最小化目标函数。通过不断迭代,XGBoost能够逐步提高模型的预测精度,并最终构建出一个高效的机器学习模型。
在二分类问题中,XGBoost通常使用sigmoid函数来将决策树的输出转换为概率。sigmoid函数定义如下:
(8)
其中z是决策树总和的输出分数。对于每一个样本,XGBoost计算其属于正类的概率p,则属于负类的概率为
,这里用于描述双方在某一次得分的胜率。
2.3. 特征贡献分析与特征筛选
训练模型时,结合GridSearchCV库进行模型性能提升和超参数优化,同时计算XGBoost模型中各项特征的F值,并使用SHAP值(SHapley Additive exPlanations) [18] [19]进行特征重要性分析与特征筛选。
在XGBoost中,F值定义为一个特征在构建所有决策树过程中被使用的总次数。设模型包含T棵树,则特征j的F值定义为:
(9)
其中
表示第t棵树的所有分裂节点的集合,
表示在节点处使用的特征,
是指示函数。当特征j在节点s处被使用时,该函数值为1,否则为0。通过统计各特征在所有树的分评估其在模型中的重要性。频率越高,表明该特征在训练过程中被更多次使用,因此其对模型的贡献可能更大。
SHAP值的核心概念源于Shapley值,这一概念最早由Shapley在1953年提出,源自合作博弈论(Coalitional Game Theory)。Shapley值是一种用于根据各个玩家对总收益的贡献来分配收益的方法。在合作博弈论中,玩家通过组建联盟来共同获取收益。将Shapley值应用于解释机器学习模型的预测时,“总支出”对应于数据集中单个实例的模型预测值,“玩家”指的是实例的特征值,而“收益”则是该实例的具体预测值减去所有实例的平均预测值。Shapley值不仅可以在游戏中的每个玩家之间分配贡献,还可以在所有玩家之间分配贡献。标准的特征归因结果为一个包含每个特征值的向量,而基于Shapley交互作用指数的归因结果则表现为一个特征归因矩阵,其中主效应位于对角线上,而交互作用效应位于对角线之外。SHAP值定义为
(10)
当
时,
(11)
其中
是所有M个输入特征的集合。特征i和特征j之间的SHAP交互作用值被平均分配,因此
,总交互作用效应是
。然后,预测的主效应可以定义为特征的SHAP值与非对角线SHAP交互作用值之差:
(12)
将
设定为使
之和等于模型的输出:
(13)
进而再通过算法迭代,就可以得到模型的SHAP值。相比于通过使用F值的特征重要性计算标准,SHAP值还能反映出特征对因变量的正向和反向影响。基于上述两种特征筛选计算方式,本文评估了特征集内的因素重要性。两种特征筛选的方法筛选出来的重要性较为接近。图3(a)、图3(b)分别为特征的F值与SHAP值排序。移除不显著的特征(ifAce (P2)和preSetWinner),并保留剩余特征(如pointAdvantage、breakPoint、serveWinRate)用于后续建模。后续使用精简特征集训练XGBoost,按7:3划分训练集与测试集,单次得分预测平均准确率在训练集和测试集上分别为88.28%与85.12%。
Figure 3. Eigen F-value and SHAP value based on XGBoost
图3. 基于XGBoost的特征F值与SHAP值
2.4. 分层状态转移模型
根据网球比赛规则(图4(a)、图4(b)),一个球员赢得4分且至少有2分的优势即赢得这一局比赛;赢得6局且至少有2局的优势即赢得这一盘比赛;赢得多数盘即赢得整场比赛。我们将局内每种得分情况定义为一个状态节点,比赛的所有可能结果形成一个以“状态”为节点的图结构。根据网球比赛的规则,比赛结果被抽象为一个三层图结构:局(Game)–盘(Set)–比赛(Match)。这种结构允许模型在不同层次上递归地预测最终的胜率。这一模型考虑了网球独特的计分结构,可用于在比赛的不同阶段计算整场比赛的胜负,并可基于比赛动态不断更新胜率,其实质是随比赛进程不断更新的马尔可夫过程,对于未知状态使用等概率假设,具有较强的解释性。
Figure 4. Schematic diagram of the rules of tennis
图4. 网球比赛规则示意
具体而言,在每个得分点上,使用已建立的XGBoost模型预测得分的概率。例如,在30-0的状态下,模型计算进入两个后续得分状态(如40-0或30-15)的概率。如图5算法所示,对全局使用递归算法计算每个游戏的胜率,即在每个状态节点上,调用训练好的XGBoost模型进行递归计算,预测进入下一个状态的概率,直到最终状态(赢得该局或输掉该局)。由于温网比赛规则,选手可能在Deuce (平分)、Ad-In (局点)和Ad-Out (破发点)状态之间无限转换,为避免无限递归深度,假设如果回合数超过10次,则在10次回合后,任一选手的胜率为0.5,即补全了递归的边界条件。通过递归算法计算每个局的胜率,然后在盘层和比赛层分别使用同样的方法进行预测,逐层递归计算最终胜率(LWP)。
Figure 5. Pseudocode
图5. 算法伪代码
3. “势头”量化分析
3.1. 网球比赛中的“势头”
势头是指球员或团队在表现良好时获得的心理或生理上的提升。这种提升通常会导致信心增加、击球选择更佳以及更高水平的发挥,从而可能改变比赛的结果。直观来看,势头在网球比赛中可能表现出以下几个特性:
1) 时间敏感性:势头在比赛中的某一时刻可能很高,但这种势头会根据随后的表现迅速变化;
2) 阶段依赖性:在关键时刻(如破发点、盘点)成功可以显著提升势头,决胜盘的势头可能比比赛早期更为关键;
3) 逆境增益效应:在一系列失利后赢得的分数所带来的心理和势头提升,比保持领先时的增益更为显著,即打破对手连胜会给球员更大影响;
4) 表现与策略依赖:球员的比赛策略(如激进打法或保守策略)也会影响势头的建立和维持;
5) 与比赛结果相关:势头应该能够在一定程度上预测比赛结果。
为体现“势头”的上述特性,本文采用了以下两种量化方法。
3.2. 由PIV序列定义势头
首先定义单次得分价值(Point Impact Value, PIV),将某一得分点的胜负对实时胜率(LWP)的扰动,即胜率差定义为PIV。例如,如果在某一关键得分点上,赢得该分会显著提高球员的LWP,而失去该分则会显著降低LWP,那么该得分点的PIV值就会较高。上述方法能够量化每次得分对比赛胜率的影响。将指数移动平均(Exponential Moving Average, EMA)应用于PIV序列,通过平滑PIV数据,揭示比赛中球员势头的变化。这一定义提供了对连续得分或失分如何影响比赛平衡的细致理解,并且结果符合势头的时间敏感性和比赛阶段依赖性。EMA处理后的序列可表示为
(14)
其中,
为平滑系数,
为原始序列。
3.3. 由LWP序列定义势头
将LWP随每一得分的变化记为LWP序列,则该序列在一定程度上已经可以用于表现比赛“势头”变化,为了使模型具备外推能力,将自回归积分滑动平均模型(ARIMA)应用于LWP,从LWP序列中提取趋势。这种方法基于历史LWP数据,预测球员实时胜率的未来轨迹。
ARIMA模型广泛应用于时间序列数据的建模和预测,能够很好地捕捉时间序列的线性结构和短期依赖关系。它结合了自回归(AR)模型、滑动平均(MA)模型,以及差分(I)操作,自回归部分用前p个时刻的观测值预测当前值,移动平均部分用前q个时刻的误差项调整当前值,差分部分通过d次差分将非平稳序列转化为平稳序列。三部分组合,以ARIMA (p, d, q)表示。ARIMA模型可以用于分析和预测球员表现和比赛局势的动态变化。使用ARIMA (p, d, q)对LWP序列建模,即用自回归模型AR (p)和移动平均模型MA (q)对d阶差分后的平稳序列建模,可写作
(15)
其中,
为独立白噪声序列,其余为参数。
第一种势头反映了得分点的重要性,球员在赢得高PIV球时更容易提升士气,而在高PIV球上犯错则可能导致信心受挫和势头下降。第二种势头通过ARIMA模型提供未来胜率变化的预测,能够捕捉到得分和失分对势头的显著影响,并提供相应置信区间。两种定义均在一定程度上体现了前述5种特性。
4. 模型对比
数据集一部分划为固定的测试集,另一部分为用于交叉验证而随机划分的测试集和训练集。表2展示了3种机器学习模型在不同训练集下的准确性。结果表明,多数机器学习模型对训练集表现出低敏感性,表现出高度的稳定性。XGBoost模型在训练集与测试集中的表现最好,在所有训练集中的平均准确率为88.3%,在测试集中的平均准确率为85.1%,且模型训练速度较快。由于其在测试集上展现出较高的准确性和稳定性,本文选择了XGBoost用于预测单次得分胜率。
Table 2. Accuracy of models under different training sets
表2. 不同训练集下模型的准确性
模型 划分 |
XGBoost |
Logistic |
SVM |
固定测试集 |
训练集 |
固定测试集 |
训练集 |
固定测试集 |
训练集 |
01 |
85.10% |
88.33% |
84.73% |
85.00% |
82.90% |
82.64% |
02 |
85.14% |
88.24% |
84.98% |
84.95% |
82.69% |
82.51% |
03 |
85.03% |
88.27% |
84.79% |
84.87% |
82.96% |
82.54% |
04 |
84.96% |
88.49% |
84.58% |
85.00% |
82.85% |
82.76% |
05 |
85.10% |
88.15% |
84.63% |
84.45% |
82.86% |
82.44% |
续表
06 |
85.14% |
88.27% |
84.66% |
84.61% |
82.68% |
82.47% |
07 |
85.21% |
88.22% |
85.11% |
84.96% |
82.85% |
82.59% |
08 |
84.89% |
88.45% |
83.06% |
83.12% |
82.77% |
82.53% |
09 |
85.08% |
87.97% |
84.86% |
84.78% |
82.96% |
82.42% |
10 |
84.96% |
88.33% |
84.81% |
84.61% |
82.95% |
82.51% |
11 |
85.13% |
88.37% |
84.53% |
84.43% |
82.76% |
82.65% |
12 |
85.17% |
88.30% |
84.62% |
84.78% |
82.91% |
82.49% |
13 |
85.33% |
88.21% |
84.73% |
85.01% |
82.71% |
82.46% |
14 |
85.53% |
88.27% |
84.89% |
84.92% |
82.84% |
82.43% |
15 |
85.10% |
88.33% |
84.65% |
84.96% |
82.91% |
82.64% |
平均值 |
85.12% |
88.28% |
84.64% |
84.70% |
82.84% |
82.54% |
5. 结果分析与应用
5.1. 影响胜率的关键因素
基于SHAP值的分析表明局内得分优势是最重要的影响因素。这说明当前局内两名球员得分的差距对比赛点胜率有着显著的影响。显然,得分优势越大,球员在比赛点上的胜率就越高。发球直接得分情况也是一个关键因素。发球直接得分不仅能迅速获得分数,还能增加发球方的信心,从而提高其比赛点胜率。
此外,破发点情况与发球得分率也被证明是重要的影响因素。破发点是比赛中的关键时刻,能否成功破发对比赛点的胜率有着直接影响。无论是球员一方还是对手一方的破发点情况,都会显著影响比赛的走向。发球得分率作为历史表现指标,能够体现选手的综合水平。高发球得分率的球员在比赛点上的表现更为出色,因为他们能够更有效地利用发球这一优势。排名差距也对比赛点胜率有一定影响。两名球员世界排名的差距反映了球员的整体实力和状态,进而影响比赛胜率。相比之下,年龄和身高等球员的固有属性影响相对较小。此外,上一盘获胜者和对手发球直接得分的情况也在一定程度上影响比赛点胜率。上一盘的胜利者通常会带着更高的士气进入下一盘,而对手的发球直接得分则可能打乱球员的比赛节奏。
5.2. “势头”量化分析案例
Figure 6. Visualization of LWP
图6. 实时胜率(LWP)可视化
将上述模型应用于Carlos Alcaraz对阵Novak Djokovic的2023年温布尔登男子单打决赛。该场比赛中,Carlos Alcaraz击败了Novak Djokovic,使Djokovic自2013年以来首次在温布尔登遭遇失败。图6展示了整场比赛中他们的实时胜率波动,其中x轴表示累积得分次数,y轴表示Alcaraz的实时胜率。从图中可见,LWP序列随比赛过程有较大波动,并在最终偏向Alcaraz,胜率达到1。
层次状态转移模型能够灵活地预测比赛中各个层级(局、盘和整场比赛)的胜率,并且可以给出以某种方式(比分转移情况)取胜的概率。
Figure 7. Visualization of the momentum
图7. “势头”相关结果可视化
图7展示了2023年温布尔登男子单打决赛Carlos Alcaraz对阵Novak Djokovic正常比赛的势头与单次得分价值曲线。Djokovic在开始阶段领先,Alcaraz则随着比赛的进行逐渐找到了节奏,最终Djokovic在第四盘实现反击,但Alcaraz最终凭借更为出色的表现获胜。这场比赛展示了网球局势的动态起伏,其中势头的变化可以显著改变比赛走向。从图7(c)展示的“势头”中可以清晰地展示出双方态势的变化,势头曲线与比赛态势基本相符。
在图7(b)中,PIV显示出明显的上升趋势,这是因为随着比赛接近尾声,每一分变得更加关键,其对比赛结果的影响也随之增加。在图7(a)中,由PIV定义的势头反映了赢得比赛的关键球的重要性。球员在赢得高PIV球时更容易提升士气;相反,在高价值球上犯错的球员可能会受到信心打击并失去更多势头。对实时胜率数据进行一次差分并使用AIC定阶[20]后,确定模型为ARIMA (2, 1, 3)。残差检查显示白噪声,表明拟合良好。拟合值显示在图7(c)中,即为第二种势头指标,总体趋势显示Alcaraz的势头(或胜率)持续增加。
比赛决胜盘的后半程,尽管Alcaraz势头处于高位,但在Djokovic得分后其势头下降幅度较大,仍有被翻盘的风险。这表明在决胜盘中,每一分的失误都会显著影响势头。例如,从势头指标曲线可以看出,在第324分时,Alcaraz失掉了高PIV值的一球,其势头显著下降,而从第330分赢球开始,势头显著反弹,最终Alcaraz取得胜利。
6. 结论
本文提出了一种基于XGBoost和时域特征提取的网球比赛实时胜率预测与势头分析方法。研究表明,XGBoost模型在预测比赛胜率方面表现出色,局内得分优势、发球直接得分情况和破发点情况是影响胜率的关键因素。相较于传统方法,本文利用了更加全面完整的信息,包括各类历史数据与赛场实时数据,使得实时胜率预测结果更为可信,同时采用XGBoost算法和分层状态转移模型,提高了模型的预测精度和解释能力。而基于实时胜率的“势头”的量化方法,可以准确标记出网球比赛的关键时刻。
总体而言,本文提供了一个强解释性的网球分析框架,可用于描述网球比赛进程、态势和激烈程度。“势头”指标是对人们关于比赛主观感受的抽象和概括,提供了观赛时心理体验的一种有趣的数学描述。未来的研究可以进一步优化模型,考虑更多的特征和数据源,以提升预测精度和实用性。
NOTES
*通讯作者。