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

news2024/7/6 19:49:08

【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.coloradmin.cn/o/1426958.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【代码随想录-链表】环形链表 II

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

windows下使用verdaccio构建npm私服环境

一.背景 npm太慢了,每次jenkins自动构建等太久,我虽然是后端coder,也看不惯。本文目的只是说明怎么搭建npm私服,我现在只想构建快一点。所以,暂时没有考虑多个开发者将自定义组件上传到私库并共享的问题,以…

Linux中判断文件系统的方法

文章目录 Linux中判断文件系统的方法1.使用mount命令2.使用blkid命令3.使用file命令4.使用fstab文件5.使用df命令(这个用的比较多)6.使用fsck命令7.使用lsblk命令(推荐-简单好用) Linux中判断文件系统的方法 1.使用mount命令 # 这样查看的只有已经挂载…

Python系列-字典

🌈个人主页: 会编程的果子君 ​💫个人格言:“成为自己未来的主人~” ​ 目录 ​ 字典是什么 创建字典 查找key 新增/修改元素 删除元素 遍历字典元素 取出所有的key和value 合成的key类型 ​编辑 小结 字典是什么 字典是一种存储键值对的结…

D2632——LDO系列电路,高精度、大电流、低压差。最大输出电流可达3A,应用于汽车电子设备等产品中

D2632是一款高精度、大电流、低压差电压调整器。主要作为电源装置提供高效的电压调整。 最大输出电流可达3A,并且外接器件少,拥有输出电压(ADJ) 可调特点。 主要特点: 1. 低压差(满载350mV); 2. 地电流小; 3. 精确度保证在士1%; 4. 非常快速…

C++中的字符串翻转算法解析

个人主页:[PingdiGuo_guo] 收录专栏:[C干货专栏] 大家好,今天我们来学一下C里的一个知识:字符串翻转。 目录 1.题目 描述 输入描述 输出描述 输入数据 1 输出数据 1 提示 2.解决题目 1.所需知识点 2.算法分析 1. 拼接…

【PostgresSQL系列】 ltree简介及基于SpringBoot实现 ltree数据增删改查

本文将对PostgresSQL中的ltree进行相关概念介绍,并以示例代码讲解ltree数据增删改查功能的实现。 作者:后端小肥肠 目录 1.前言 2. 基础概念 2.1. ltree 2.2. lquery 2.3. ltxtquery 2.4. ltree函数及操作符 2.4.1. ltree函数 2.4.2. ltree操作符…

AJAX-认识URL

定义 概念:URL就是统一资源定位符,简称网址,用于访问网络上的资源 组成 协议 http协议:超文本传输协议,规定浏览器和服务器之间传输数据的格式 协议范围:http,https,... 域名 域名:标记服务…

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

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

一键部署自己的chatgpt4

效果 安装 docker pull hlohaus789/g4f docker run -d -p 10036:8080 -p 1337:1337 -p 7900:7900 --shm-size"2g" hlohaus789/g4f:latest镜像比较大,大约1.82G 使用 浏览器打开 http://192.168.168.111:10036/ 愉快地使用吧

使用Python的Turtle模块简单绘制烟花效果

import turtle import random# 初始化屏幕 screen turtle.Screen() screen.bgcolor("black") screen.title("烟花模拟")# 创建一个Turtle来绘制烟花 firework turtle.Turtle() firework.hideturtle() firework.speed(0) # 设置绘图速度为最快# 绘制烟花…

nrm切换镜像源-yarn不生效问题

在说这问题前,大家肯定知道nvn管理node版本,不懂的朋友直接看此文: nvm - nodejs版本管理工具:https://blog.csdn.net/tianlu930/article/details/135988727 要安装node自带npm其实不好用,一般都用再装yarn&#xff0c…

gtkmm xml ui 例子(from string)

文章目录 前言来看一个从字符串中生成UI的例子 前言 glade生成的xml格式不被gtkmm4支持, 需要作修改 来看一个从字符串中生成UI的例子 #include <gtkmm/application.h> #include <gtkmm.h> #include <iostream> using namespace std;class ExampleWindow :…

Redis的bitmap使用不当,我内存爆了

背景 最近发现Redis的内存持续暴涨&#xff0c; 涨的有点吓人&#xff0c;机器都快扛不住了&#xff0c;不得不进行Redis内存可视化分析&#xff0c;发现大量的String类型的大key 经分析&#xff0c;最近上线了页面UV的统计&#xff0c;那目前如何做的呢&#xff1f; 通过访…

151基于matlab的齿轮-轴-轴承系统的含间隙非线性动力学模型

基于matlab的齿轮-轴-轴承系统的含间隙非线性动力学模型&#xff0c;根据牛顿第二定律&#xff0c;建立齿轮系统啮合的非线性动力学方程&#xff0c;同时也主要应用修正Capone模型的滑动轴承无量纲化雷诺方程&#xff0c;利用这些方程推到公式建模&#xff1b;用MATLAB求解画出…

Python中使用HTTP代理进行网络请求:轻松玩转网络世界的“魔法门“

嘿&#xff0c;小伙伴们&#xff01;今天我们来聊一聊Python中一个超级有用的功能——使用HTTP代理进行网络请求。这不是在念咒语&#xff0c;而是开启网络世界的"魔法门"。 首先&#xff0c;让我们了解一下什么是HTTP代理。简单来说&#xff0c;HTTP代理就是一个中…

影响计算机性能的前10大因素,看你到底关注了几个

计算机性能被定义为计算机系统在给定时间内完成的有价值的工作量。它是根据执行程序或指令的效率、准确性和速度来估计的。因此,当你想知道为什么你的设备速度慢,而其他时候它一直在有效工作时,有几个因素可能会导致这个问题。 其中一些包括CPU、RAM大小、硬盘空间、速度、…

OJ刷题:《剑指offer》之左旋字符串!

目录 1.题目描述 2.方法一&#xff08;元素一一挪&#xff09; 2.1算法解析 2.2代码实现 3.方法二&#xff08;三次逆置&#xff09; 3.1算法解析 3.2代码实现 4.方法三&#xff08;库方法&#xff09; 4.1算法解析 4.2代码实现 5.完结散花 创作不易&#xff0c;宝子…

做研究系列:快速总结大量研究论文的成果

快速总结大量研究论文的成果时&#xff0c;可以遵循以下步骤和策略来提高效率并确保准确性&#xff1a; 系统性筛选与阅读摘要&#xff1a; 首先根据研究主题或关键词筛选出相关论文。快速阅读每篇论文的摘要&#xff0c;了解其主要目的、方法、关键结果和结论。 构建大纲与分类…

EtherCAT FP介绍系列文章—UDP gateway

EtherCAT主站上的Mailbox Gateway功能&#xff0c;可以用于将EtherCAT mailbox相关协议从外部设备的工具通过邮箱网关路由到EtherCAT从站设备。在EtherCAT规范中定义的所有邮箱协议在此功能中都可用&#xff0c;例如CoE, FoE, VoE, SoE。 但是&#xff0c;这里特别注意的是Mai…