【2024美国大学生数学建模竞赛】2024美赛C题网球运动中的势头,网球教练4.0没人比我更懂这个题了!!!

【2023美国大学生数学建模竞赛】2024美赛C题 问题分析、数学模型、实现代码、完整论文

在这里插入图片描述

引言

本人是计算机博士,拥有10年网球球龄,2023年的温网决赛,熬夜到半夜全称观看完了直播,对于网球规则、比赛的数据非常熟悉,这个题应该没有人比我更懂了。我们团队将会陆续更新问题分析、数学模型和实现代码,最后发布完整的论文。
在这里插入图片描述

更新进展:
(1)2024年2月1日22:00发布博客
(2)2024年2月2日6:00发布题目
(3)2024年2月2日7:00发布问题分析

【2024美国大学生数学建模竞赛】2024美赛C题网球运动中的势头,网球教练4.0没人比我更懂这个题了!!!

1 题目

A题:2024MCM问题C:网球运动中的势头

在这里插入图片描述

在2023年温布尔登网球公开赛男子组决赛中,20岁的西班牙新星卡洛斯-阿尔卡拉斯击败了36岁的诺瓦克-德约科维奇。这是德约科维奇自2013年以来首次在温布尔登输掉比赛,也结束了这位大满贯历史上最伟大球员之一的辉煌战绩。

[1]德约科维奇似乎注定会轻松获胜,他在第一盘以6-1的比分占据优势(7局比赛中赢了6局)。然而,第二盘比赛却十分紧张,最终阿尔卡雷斯在决胜盘中以7-6获胜。第三盘与第一盘相反,阿尔卡拉兹以6-1的比分轻松获胜。第四盘开始后,年轻的西班牙人似乎完全控制了局面,但不知何故,比赛的走势再次发生了变化,德约科维奇完全控制了局面,以6-3的比分赢得了这一盘。第五盘也是最后一盘比赛开始后,德约科维奇延续了第四盘的优势,但比赛的走向再次发生了变化,阿尔卡拉斯以6-4取得了胜利。本场比赛的数据在提供的数据集中,“match_id"为"2023-wimbledon-1701”。您可以使用"set_no"列(等于1)查看第一盘德约科维奇占优时的所有得分。似乎占优的一方有时会出现多分甚至多局的惊人波动,这通常归因于"势头"。

在字典中,“势头"的定义是"通过运动或一系列事件获得的力量或作用力。”[2]在体育运动中,一支球队或一名球员可能会觉得他们在比赛中拥有势头或"力量/作用力",但很难衡量这种现象。此外,如果存在"势"的话,比赛中的各种事件是如何产生或改变"势"的,也不是一目了然的。

提供2023年温布尔登网球公开赛前两轮之后所有男子比赛中每一分的数据。您可以自行决定加入其他球员信息或其他数据,但必须完整记录数据来源。使用这些数据

(1)建立一个模型,捕捉赛点发生时的比赛流程,并将其应用到一场或多场比赛中。您的模型应能确定哪位球员在比赛中的某个特定时间段表现更好,以及他们的表现好到什么程度。根据您的模型提供可视化的比赛流程描述。注意:在网球比赛中,发球的一方赢得赛点/比赛的概率要高得多。您可能希望以某种方式将这一因素考虑到您的模型中。

(2)一位网球教练对"势头"在比赛中的作用持怀疑态度。相反,他假设比赛中的波动和一名球员的成功是随机的。请使用您的模型/度量来评估这一说法。

(3)练们很想知道,是否有一些指标可以帮助判断比赛的流程何时会从偏向一名球员变为偏向另一名球员。

(4)利用提供的至少一场比赛的数据,建立一个模型来预测比赛中的这些波动。哪些因素似乎最相关(如果有的话)?

(5)考虑到过去比赛"势头"波动的差异,您如何建议球员在新的比赛中对阵不同的球员?

(6)在一场或多场其他比赛中测试您开发的模型。您对比赛中的波动预测得如何?

如果模型有时表现不佳,您是否能找出未来模型中可能需要包含的任何因素?您的模型对其他比赛(如女子比赛)、锦标赛、球场表面和其他运动(如乒乓球)的通用性如何?

(7)撰写一份不超过25页的报告,介绍您的研究结果,并附上一至两页的备忘录总结您的研究结果,并就"动力"的作用以及如何让球员做好准备,应对网球比赛中影响比赛进程的事件,向教练提出建议。

您的PDF解决方案总页数不超过25页,其中应包括

一页摘要表。

• 目录

• 您的全套解决方案

• 一至两页的备忘录。

• 参考文献列表。

• 人工智能使用报告(如已使用,则不计入25页限制。)

注意:对于提交的完整材料,没有具体的最低页数要求。你可以用最多25页的篇幅来完成所有的解答工作,以及你想包含的任何附加信息(例如:图纸、图表、计算、表格)。我们接受部分解决方案。我们允许谨慎使用人工智能,如ChatGPT,但没有必要为这一问题创建解决方案。如果您选择使用生成式人工智能,则必须遵守COMAP人工智能使用政策。这将导致一份额外的人工智能使用报告,您必须将其添加到PDF解决方案文件的末尾,并且不计入解决方案的25页总页数限制中。

2 提供的文件:

(1)Wimbledon_featured_matches.csv-2023年温布尔登网球赛第二轮之后的男子单打比赛数据集。

(2)data_dictionary.csv-数据集说明。

(3)data_examples-帮助理解所提供数据的示例。

2 问题重述

比赛描述和数据:
  1. 详细描述了2023年温布尔登网球公开赛男子组决赛的比赛情况以及提供的比赛数据。

  2. 解释了"势头"在体育运动中的定义以及难以衡量的问题。

问题:
  1. 建立一个模型,包括:

    • 捕捉赛点发生时的比赛流程的模型。
    • 应用到一场或多场比赛中以确定表现更好的球员,并提供可视化描述。
  2. 对一位怀疑"势头"作用的网球教练的说法,使用模型/度量来评估。

  3. 探讨一些指标,用于判断比赛流程何时会从偏向一名球员变为偏向另一名球员。

  4. 利用提供的比赛数据,建立一个波动预测模型,并确定最相关的因素。

  5. 提出如何建议球员在新的比赛中对阵不同的球员,考虑到过去比赛"势头"波动的差异。

  6. 在一场或多场其他比赛中测试开发的模型,并评估模型的波动预测。

  7. 撰写报告和备忘录,介绍研究结果并向教练提出建议。

3 问题分析

3.1 问题一:捕捉赛点发生时的比赛流程的模型

在这里插入图片描述

2023美网比赛数据

(1)模型思路:这是一个时间序列预测回归问题。将赛点发生时的比赛情况建模为状态转移过程,根据历史比赛数据和技术统计来预测赛点的发生。由于计分的模型是按每一盘、每一局计分的,大满贯的需要打5盘3胜出,每一盘是赢6局,或者6:6时,一局定胜负,这一局是先抢到7分的胜出,如果6:6时,需要再净胜出2分才能赢下这一局。在数据预处理部分,可以将前面的赢下的盘作为一个特征,如果前4盘中已经赢下2盘,则直接预测第三盘是否会出现赛点。并且由于将计分转为一条时间序列的数据,可以将计分数据转换为事件数据,例如记录每一个赛点的发生情况,赛点发生时双方的计分情况,以及赛点赢家等。之后用时间序列回归模型预测即可,以下给出示例代码。

(2) 模型

  • 马尔可夫链模型(Markov Chain Model): 将比赛状态建模为马尔可夫链,推断赛点发生的概率。
    隐马尔可夫模型(Hidden Markov Model): 考虑比赛状态的隐含变量,对赛点的发生进行建模。
  • 逻辑回归模型(Logistic Regression): 根据选手的技术统计特征,预测赛点的可能性。
    生存分析模型(Survival Analysis): 考虑赛点发生的时间,建立生存分析模型来预测赛点的发生。
  • 朴素贝叶斯模型(Naive Bayes): 基于历史数据和技术统计,利用贝叶斯方法预测赛点的发生。

要将网球大满贯中5盘的计分数据转换为一条时间序列的数据,可以将每个赛点的计分情况转换为时间序列中的事件,然后使用这些事件数据来建立时间序列模型,例如隐马尔可夫模型或马尔可夫链模型,来预测赛点的发生。下面是举例理解Python代码:

(3)示例:举例的5盘比赛的计分数据


import pandas as pd# 假设我们有原始的比分数据,包括每局的比分情况
# 这里的具体每一局的分数,是我瞎编的,需要根据提供的表格计算得出准确值,后续我会更新正确。
score_data = {'Set1': ['4-1', '1-4', '4-2', '4-0', '4-0', '4-3', '4-2'],# 第一盘,打了7局,6:1'Set2': ['4-1', '1-4', '4-2', '4-0', '4-0', '4-3', '4-2', '1-4', '4-2', '4-0', '4-0', '4-3', '4-2'],# 第二盘,打了13局,7:6'Set3': ['4-1', '1-4', '4-2', '4-0', '4-0', '4-3', '4-2'],# 第三盘,打了7局,6:1'Set4': ['4-1', '1-4', '4-2', '4-0', '4-0', '4-3', '4-2','4-3', '4-2'],# 第四盘,打了9局,3:6'Set5': ['4-3', '4-2','4-1', '1-4', '4-2', '4-0', '4-0', '4-3', '4-2','4-3'] # 第五盘,打了10局,4:6
}# 转换成时间序列的事件数据
events = []
for set_num in score_data:set_scores = score_data[set_num]for game_score in set_scores:# 分割比分player1, player2 = game_score.split('-')player1 = int(player1)player2 = int(player2)# 判断赛点情况if player1 >= 4 and player1 - player2 >= 2:events.append({'set': set_num, 'game': game_score, 'player': 'Alcaraz', 'event': '赛点'})elif player2 >= 4 and player2 - player1 >= 2:events.append({'set': set_num, 'game': game_score, 'player': 'Djokovic', 'event': '赛点'})# 转换为DataFrame
events_df = pd.DataFrame(events)# 打印事件数据
print(events_df)

上述代码将原始计分数据转换为了赛点事件的时间序列数据。然后可以使用events_df进行时间序列建模,例如应用隐马尔可夫模型:

from hmmlearn import hmm# 建立隐马尔可夫模型
model = hmm.GaussianHMM(n_components=2, covariance_type="full")
X = events_df[['set', 'game']]  # 选择用于建模的特征
model.fit(X)# 进行赛点预测
predicted_states = model.predict(X)# 打印预测结果
print(predicted_states)

3.2 问题二:评估"势头"作用的模型

(1)模型思路:这是一个因子分析问题,通过统计和机器学习方法,评估球员的赛事表现是否受到"势头"的影响,探索势头效应的存在和程度。

(2) 模型

  • 线性回归模型(Linear Regression):分析球员的比赛表现与势头的相关性,探索线性关系。
    时间序列模型(Time Series Model):分析球员的比赛结果时间序列,检测势头效应的存在和影响。
  • 因子分析(Factor Analysis):挖掘比赛数据中的潜在因子,探索势头对表现的影响。
    贝叶斯结构学习(Bayesian Structural Learning):利用贝叶斯方法建立模型,评估势头作用的概率和影响。
  • 强化学习模型(Reinforcement Learning):通过建立马尔可夫决策过程模型来评估势头对球员战术选择的影响。

3.3 问题三: 判断比赛流程转向的指标

(1)模型思路:这是一个分类问题,是球员A赢下的概率大,还是球员B的概率大。建立状态转移模型来判断比赛流程何时转向另一名球员,考虑技术统计和比分变化。

(2) 模型:

  • 隐马尔可夫模型(Hidden Markov Model):考虑比赛状态的隐含变量,判断比赛流程的转向。
    KNN模型(K-Nearest Neighbors):根据历史数据中邻近的比赛情况来判断比赛流程的转向。
  • 决策树模型(Decision Tree):利用技术统计特征来建立决策树模型,判断比赛流程的转向。
    时间序列分析模型(Time Series Analysis):分析比赛数据的时间序列特征,判断比赛流程转向的规律。
  • 支持向量机模型(Support Vector Machine):根据技术统计特征,建立支持向量机模型来判断比赛流程的转向。

3.4 问题四: 建立波动预测模型

(1)模型思路:这是时间序列预测问题,将问题一的数学模型拿来用就行,做一些漂亮的回归分析和可视化。利用比赛数据和技术统计,建立波动预测模型来确定比赛结果的波动,并找出最相关的因素。

(2)模型:

  • 时间序列模型(Time Series Model):建立时间序列预测模型,预测比赛结果的波动。
  • ARIMA模型:利用自回归与移动平均模型,预测比赛结果的波动情况。
  • LSTM模型(Long Short-Term Memory):利用循环神经网络模型来预测比赛结果的波动。
  • 随机森林模型(Random Forest):利用多颗决策树组成的模型来预测比赛结果的波动。
  • 因果推断模型(Causal Inference Model):利用因果推断方法来确定比赛结果波动的因果关系。

3.5 问题五:战术建议

(1)建议思路:这是一个决策问题,通过比较对阵不同对手时的比赛"势头"波动差异,给出针对不同对手的战术建议,简答一点做就是用决策树做,要做复杂点就加入博弈论的思想,方法更高级。

(2)模型

  • 博弈论模型(Game Theory):分析不同对手之间的博弈关系,给出对应的战术建议。
    强化学习模型(Reinforcement Learning):通过与不同对手的交互学习,给出对应的战术建议。
  • 决策树模型(Decision Tree):根据对手的特点建立决策树模型,给出相应的战术建议。
    概率图模型(Probabilistic Graphical Model):利用概率图模型分析不同对手的特点,给出对应的战术建议。

3.6 问题六:模型评估

以上几乎都是回归问题,回归问题的模型评价方法部分举例如下:

  • 交叉验证(Cross-validation):对模型在其他比赛中的表现进行交叉验证,评估模型的波动预测能力。
  • 均方误差(Mean Squared Error):计算模型在其他比赛中的均方误差,评估模型的预测准确性。
  • ROC曲线分析(ROC Curve Analysis):通过绘制ROC曲线,评估模型的波动预测性能。
  • 查准率与召回率(Precision and Recall):计算模型的查准率与召回率,评估模型的波动预测能力。
  • AUC值评估(AUC Value Evaluation):计算模型的AUC值,评估模型的波动预测性能。

):对模型在其他比赛中的表现进行交叉验证,评估模型的波动预测能力。

  • 均方误差(Mean Squared Error):计算模型在其他比赛中的均方误差,评估模型的预测准确性。
  • ROC曲线分析(ROC Curve Analysis):通过绘制ROC曲线,评估模型的波动预测性能。
  • 查准率与召回率(Precision and Recall):计算模型的查准率与召回率,评估模型的波动预测能力。
  • AUC值评估(AUC Value Evaluation):计算模型的AUC值,评估模型的波动预测性能。

4 获取方式

在这里插入图片描述

完整资料,请看评论区

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/249775.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】 归并排序详解

1.基本思想 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide andConquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列,即先使每个子序列有序…

Linux内核源码

记得看目录哦! 1. 为什么要阅读Linux内核2. Linux0.01内核源码3. 阅读linux内核源码技巧4. linux升级内核5. linux的备份和恢复5.1 安装dump和restore5.2 使用dump完成备份5.3 使用restore完成恢复 1. 为什么要阅读Linux内核 2. Linux0.01内核源码 3. 阅读linux内核…

MTTR、MTBF、MTTF的大白话理解

目录 前言1. 基本知识2. 扩展 前言 理解这方面的知识对系统架构会有宏观的认识,也方便日后的开发 对于这方面的知识也推荐阅读:MTTR、MTBF、MTTF、可用性、可靠性傻傻分不清楚? 1. 基本知识 系统可靠性和可用性相关的指标: MTTR&#xf…

STM32存储左右互搏 QSPI总线读写FLASH W25QXX

STM32存储左右互搏 QSPI总线读写FLASH W25QXX FLASH是常用的一种非易失存储单元,W25QXX系列Flash有不同容量的型号,如W25Q64的容量为64Mbit,也就是8MByte。这里介绍STM32CUBEIDE开发平台HAL库Qual SPI总线操作W25Q各型号FLASH的例程。 W25Q…

python给word插入脚注

1.需求 最近因为工作需要,需要给大量文本的脚注插入内容,我就写了个小程序。 2.实现 下面程序是我已经给所有脚注插入了两次文本“幸福”,给脚注2到4再插入文本“幸福” from win32com import clientdef add_text_to_specific_footnotes(…

外包干了8个月,技术退步明显...

先说一下自己的情况,大专生,18年通过校招进入武汉某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

前端小案例——导航回顶部(HTML+CSS+JS, 附源码)

一、前言 实现功能: 这个案例实现了页面滚动到一定位置时显示"回到顶部"按钮,并且点击按钮能够平滑滚动回页面顶部的功能。 实现逻辑: 页面结构:通过HTML标签定义了页面的基本结构。页面主要由多个div.content组成&am…

【居然比GPT还好用】KnowLM:知识图谱 + 大模型,实现更有效的信息抽取和知识管理

KnowLM 知识图谱 大模型:实现信息抽取 KnowLM 原理KnowLM 部署KnowLM 应用1. 命名实体识别(NER)2. 关系抽取(RE)3. 事件抽取(EE) KnowLM 原理 代码:https://github.com/zjunlp/Kno…

如何使用内网穿透工具在公网实现实时监测DashDot服务器仪表盘

文章目录 1. 本地环境检查1.1 安装docker1.2 下载Dashdot镜像 2. 部署DashDot应用3. 本地访问DashDot服务4. 安装cpolar内网穿透5. 固定DashDot公网地址 本篇文章我们将使用Docker在本地部署DashDot服务器仪表盘,并且结合cpolar内网穿透工具可以实现公网实时监测服务…

2024年美国大学生数学建模F题思路分析 - 减少非法野生动物贸易

# 1 赛题 问题F:减少非法野生动物贸易 非法的野生动物贸易会对我们的环境产生负面影响,并威胁到全球的生物多样性。据估计,它每年涉及高达265亿美元,被认为是全球第四大非法交易。[1]你将开发一个由数据驱动的5年项目&#xff0c…

CCSIP中国网络安全行业全景册(第六版)发布 飞驰云联入选7大领域

2024年1月24日, FreeBuf咨询正式发布《CCSIP 2023中国网络安全行业全景册(第六版)》。Ftrans飞驰云联的产品凭借优秀的市场表现,强势入选网络隔离/网闸、工业网络隔离系统/网闸、数据安全管控(平台型)、数据…

[Tcpdump] 网络抓包工具使用教程

往期回顾 海思 tcpdump 移植开发详解海思 tcpdump 移植开发详解 前言 上一节,我们已经讲解了在海思平台如何基于静态库生成 tcpdump 工具,本节将作为上一节的拓展内容。 一、tcpdump 简介 「 tcpdump 」是一款强大的网络抓包工具,它基于…

deque容器的相关概念及常用接口

deque的基本概念 作用:作为双端数组,可以很方便的对头尾进行插入和删除操作 注意:适用deque时需包含头文件deque deque与vector的区别 1、vector对数组头部的插入和删除操作效率低,时间复杂度高。数据量越大,效率越…

Python学习03 -- 函数相关内容

1.def --- 这个是定义函数的关键字 \n --- 这个在print()函数中是换行符号 1.注意是x, 加个空格之后再y 1.形式参数数量是不受限制的(参数间用,隔开),传实参给形参的时候要一一对应 返回值 --- 函数返还的结果捏 1.写None的时…

2023年09月CCF-GESP编程能力等级认证Python编程五级真题解析

Python等级认证GESP(1~6级)全部真题・点这里 一、单选题(共15题,共30分) 第1题 近年来,线上授课变得普遍,很多有助于改善教学效果的设备也逐渐流行,其中包括比较常用的手写板,那么它属于哪类设备?( ) A:输入 B:输出 C:控制 D:记录 答案:A 第2题 以下关于…

学习Android的第一天

目录 什么是 Android? Android 官网 Android 应用程序 Android 开发环境搭建 Android 平台架构 Android 应用程序组件 附件组件 Android 第一个程序 HelloWorld 什么是 Android? Android(发音为[ˈnˌdrɔɪd],非官方中文…

【selenium方式】获取微博指定用户指定日期内所有帖子详细数据

这篇文章主要放源代码,思路不会介绍特别清楚,详细思路可以看评论区的b站讲解视频。 1.场景需求 获取微博肖战超话内容部分用户的帖子数据,日期范围限定在近2个月,要求获得帖子的发布时间、帖子文本内容、转发数据、评论数据和点…

【Go 快速入门】包及依赖管理 | Go 第三方包发布 | 接口 | 反射

文章目录 包和依赖管理依赖管理go modgo get go.mod 文件go.sum 文件Go Modules 发布包 接口空接口接口值类型断言 反射reflect.TypeOfreflect.ValueOf结构体反射 项目代码地址:04-PackageInterfaceReflection 包和依赖管理 Go 使用包来支持代码模块化和代码复用&…

市场复盘总结 20240201

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 昨日主题投资 连板进级率 6/27 22.2% 二进…

AI 原生时代的云计算

本文整理自2023年 12 月 20 日举办的「2023 百度云智大会智算大会」主论坛,百度副总裁谢广军的主题演讲《AI 原生时代的云计算》。 (视频回放链接:https://cloud.baidu.com/summit/aicomputing_2023/index.html) 大模型的到来&…