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

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

引言

题目将于2024年2月2日6:00发布。我们团队将会在8点前准时更新问题分析,逐步更新数学模型和实现代码,最后发布完整的论文。
更新进展:
(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.mzph.cn/news/661688.shtml

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

相关文章

轻型民用无人机驾驶航空器安全操控——理论考试多旋翼部分笔记

今天已经可以在线考取轻型民用无人机驾驶航空器执照了,所以我也在在线观看完视频之后整理了如下的知识点,所有知识点全部来自UOM平台。 目录 航空器知识 (1)多旋翼民用无人驾驶航空器螺旋桨的作用 (2&#x…

Servlet简述

Servlet是动态web资源开发技术,其实就是一个接口,将来定义Servlet实现类时,都必须实现该接口,并让web服务器运行Servlet 1.快速入门 使用注释配置访问路径在Servlet3.0之后应用,在此之前都是使用xml配置文件来配置的。…

WPS WORD 宏导出高亮文本

WPS手机版可以直接导出高亮文本,但只能导出手机编辑的部分,如果同时在电脑上编辑过,电脑上高亮的无法导出,因为作者不一样。 但WPS电脑版没有这个功能,只能通过宏编程实现。 这里利用了审阅模式,在文字高亮…

springBoot+Vue汽车销售源码

源码描述: 汽车销售管理系统源码基于spring boot以及Vue开发。 针对汽车销售提供客户信息、车辆信息、订单信息、销售人员管理、 财务报表等功能,提供经理和销售两种角色进行管理。 技术架构: idea(推荐)、jdk1.8、mysql5.X(不能为8驱动不匹配)、ma…

重温《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》 –– 学习笔记(二)

第二部分:自动内存管理机制 第2章:Java内存区域与内存溢出异常 2.1 概述 Java 与 C 之间有一堵由内存动态分配和垃圾收集技术围成的高墙。 Java 程序员在 虚拟机自动内存管理机制 的帮助下,无需为每一个 new 操作去写配对的 delete/free …

Java知识点总结

数据类型强转:byte short int long float double ; 数组定义 [ ]数组名 clone-复制数组equals-比较存储地址 toString sort-排序 length-长度 arraycopy([]a,s,[]b,ss,n)-数组复制 运算符及语句 instanceof双目运算符 –左对象右类 判断是否是该类创建…

2024年美国大学生数学建模C题思路分析 - 网球的动量

# 1 赛题 问题C:网球的动量 在2023年温布尔登绅士队的决赛中,20岁的西班牙新星卡洛斯阿尔卡拉兹击败了36岁的诺瓦克德约科维奇。这是德约科维奇自2013年以来首次在温布尔登公开赛失利,并结束了他在大满贯赛事中历史上最伟大的球员之一的非凡…

JeecgBoot jmreport/loadTableData RCE漏洞复现(CVE-2023-41544)

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

three.js CSS2DRenderer、CSS2DObject渲染HTML标签

有空的老铁关注一下我的抖音&#xff1a; 效果&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red;position: relative;"><…

OSPF 协议

OSPF 开放式最短路径优先协议 形容&#xff1a; 无类别链路状态协议&#xff1a; 无类别 ---- 存在掩码 IGP 内部网关协议 动态路由协议 一、链路状态协议(LS) OSPF 协议 隶属于 链路状态协议。 区别&#xff1a; 距离矢量协议(DV)&#xff1a;运行距离矢量协议的路由器…

Docker 镜像的创建

创建镜像有三种方法&#xff0c;分别为基于已有镜像创建、基于本地模板创建以及基于Dockerfile创建。 一、基于现有镜像创建 创建nginx镜像&#xff1a; 1、首先启动一个容器&#xff0c;在容器里做修改 2、然后将修改后的容器提交为新的镜像&#xff0c;需要使用该容器的 I…

Vue3中实现歌词滚动显示效果

目录 &#x1f389;前言 &#x1f389;整体布局 &#x1f389;处理歌词数据 &#x1f389;处理事件 &#x1f389;完整代码 &#x1f389;总结 &#x1f389;前言 在这篇博客中&#xff0c;我将分享如何在 Vue 3 中实现一个简单的歌词滚动效果。我将从歌词数据的处理开始&…

2024美赛数学建模B题思路分析 - 搜索潜水器

1 赛题 问题B&#xff1a;搜索潜水器 总部位于希腊的小型海上巡航潜艇&#xff08;MCMS&#xff09;公司&#xff0c;制造能够将人类运送到海洋最深处的潜水器。潜水器被移动到该位置&#xff0c;并不受主船的束缚。MCMS现在希望用他们的潜水器带游客在爱奥尼亚海底探险&…

oracle 19c上安装样例数据库

样例schema的分类 HR: Human Resources OE: Order Entry PM: Product Media IX: Information Exchange SH: Sales History BI: Business Intelligence 安装样例数据库 1&#xff1a;HR的安装&#xff0c;通过dbca时候 2&#xff1a;HR的安装&#xff0c;安装完数据库后&#…

基于Go-Kit的Golang整洁架构实践

如何用Golang实现简洁架构&#xff1f;本文介绍了基于Go-Kit实现简洁架构的尝试&#xff0c;通过示例介绍了简洁架构的具体实现。原文: Why is Go-Kit Perfect For Clean Architecture in Golang? 简介 Go是整洁架构(Clean Architecture)的完美选择。整洁架构本身只是一种方法…

MySQL数据库基础第一篇(SQL通用语法与分类)

文章目录 一、SQL通用语法二、SQL分类三、DDL语句四、DML语句1.案例代码2.读出结果 五、DQL语句1.DQL-基本查询2.DQL-条件查询3.DQL-聚合函数4.DQL-分组查询5.DQL-排序查询6.DQL-分页查询7.DQL语句-执行顺序1.案例代码2.读出结果 六、DCL语句1.DCL-管理用户2.DCL-权限控制1.案例…

Kubernetes实战(二十三)-k8s event监控利器kube-eventer对接企微告警

1 背景 监控是保障系统稳定性的重要组成部分&#xff0c;在Kubernetes开源生态中&#xff0c;资源类的监控工具与组件监控比较多。 cAdvisor&#xff1a;kubelet内置的cAdvisor&#xff0c;监控容器资源&#xff0c;如容器cpu、内存&#xff1b;Kube-state-metrics&#xff1…

Maya------创建多边形工具

配合导入图像使用 Tab键可以删除一个点&#xff01; 模型不能超过4边面&#xff01;多切割工具进行连接&#xff01; 15.maya常用命令5.创建多边形工具 反转 双显 挤出_哔哩哔哩_bilibili

kubecolor让kubelet更好看

kubecolor让kubelet更好看 默认情况下kubectl输出都是白色,在列特别多的情况下比较难分清楚具体是哪个对应哪个. 发现kubecolor可以完美解决这样的问题. 1. 安装kubecolor mkdir kubecolor cd kubecolor wget https://github.com/kubecolor/kubecolor/releases/download/v0.…

vue2+html2pdf下载PDF,PDF分页切割

问题&#xff1a; PDF下载下来后&#xff0c;文档内容被暴力分割。 解决方案&#xff1a; HTML <!-- 打印按钮 --> <el-button type"primary" size"small" class"el-icon-download right_btn" click"downloadPDF">PDF&…