2024美赛C题保姆级分析完整思路代码数据教学

2024美国大学生数学建模竞赛C题保姆级分析完整思路代码数据教学

C题 Momentum in Tennis 网球中的动量

在2023年温布尔登男单决赛中,20岁的西班牙新星卡洛斯·阿尔卡拉兹击败了36岁的诺瓦克·德约科维奇。这是德约科维奇自2013年以来在温布尔登的首次失利,也终结了这位大满贯史上最伟大球员之一的辉煌战绩

这场比赛本身就是一场非凡的战斗。[1]德约科维奇似乎注定要轻松获胜,因为他以6比1的比分控制了第一局(7局中赢了6局)。然而第二局气氛紧张,最终阿尔卡雷斯在抢七局中以7 -6获胜。第三局与第一局相反,阿尔卡拉兹以6 -1轻松获胜。这位年轻的西班牙人在第四盘开始时似乎完全控制了比赛,但不知何故,比赛再次改变了方向,德约科维奇完全控制了比赛,以6比3赢得了比赛。第五盘也是最后一盘,德约科维奇从第四盘开始保持优势,但再次改变方向,阿尔卡拉兹控制局面,以6 -4获胜。本场比赛数据在提供的数据集中,“2023-温布尔登-1701”的“match_id”。你可以看到德约科维奇在第一盘领先时的所有得分,使用“set_no”列等于1。出现在看似有优势的球员身上的不可思议的挥拍,有时是多分甚至多局,往往被归结为“冲劲”。

字典上对动量的一个定义是“通过运动或一系列事件获得的力量或力量”。[2]在体育运动中,一支球队或一名球员可能会在比赛/比赛中感觉到他们有动量,或“力量/力量”,但这种现象很难测量。此外,如果动量存在的话,比赛中的各种事件是如何产生或改变动量的,这一点也不容易弄清楚。

背景分析: 2024 MCM的C题,即“网球的动量”,本赛题需要探讨一个网球比赛过程中动量变化的模型,并通过该模型对比赛结果进行预测。

背景中提到,在2023年温布尔登男单决赛中,发生了一场颇为激烈的对决,其中20岁的西班牙新星卡洛斯·阿尔卡拉兹击败了36岁的诺瓦克·德约科维奇。尽管在开场阶段德约科维奇占据了上风,但随着比赛的进行,阿尔卡拉兹逐渐扭转了局面,最终以6-4获胜。

针对动量的影响,部分教练和球员持有怀疑态度,他们认为比赛的胜负更多地取决于球员的表现而非动量的变化。因此,本题需要利用数据与数学建模来校验这一观点,并从中得出可供参考的结论。

要注意一点 由于时间关系,这个文章/视频可能并不能对完整的后面给出的数据集进行分析,只会针对性进行部分分析,需要完整分析的同学看视频简介。后续会更新

2023年温布尔登男单前两轮之后的每一分数据。您可以自行选择加入额外的球员信息或其他数据,但您必须完整地记录来源。使用这些数据:

•开发一个模型,捕捉得分发生时的比赛流程,并将其应用于一场或多场比赛。你的模型应该识别出哪位球员在比赛的特定时间表现得更好,以及他们的表现有多好。基于你的模型提供一个可视化来描述比赛流程。注意:在网球比赛中,发球的选手赢得分/局的概率要高得多。你可能希望以某种方式把这个因素考虑到你的模型中。

问题一分析:针对问题一,主要要求我们开发一个模型,捕捉得分发生时的比赛流程,并将其应用于一场或多场比赛。此模型应能识别哪位球员在特定时间表现得更好,以及他们表现有何优劣。此外,还需要提供一个基于模型的可视化来描述比赛流程。根据问题描述,这个问题可以被解构为以下几个步骤:
1 数据处理:从给定数据中提取出关于每盘比赛的数据,包括每局中的得分、发球方等信息。
2特征选择:确定影响比赛流程的关键因素,例如球员的身体状况、技术水平、心理状况、比赛场地、气候条件等。
3模型建立:运用合适的算法,构建反映比赛流程的模型。可能的算法选项包括回归分析、决策树、随机森林、支持向量机(SVM)、深度学习等。
4 模型训练与调优:使用训练数据集对模型进行训练,并通过交叉验证等方法进行模型调优。
5 模型评估:通过预留的测试数据集,评估模型的性能,如预测准确度、精确度和召回率等。
6 结果可视化:采用适当的图形(如折线图、柱状图等)反映比赛流程,并对结果进行解释。
其中,在各个球员的表现量化中,可以使用评价类算法,这里我推荐灰色综合评价法、模糊综合评价法。要注意的是 需要首先对数据集进行完整分析后,再开始进入本题的正式模型建立与求解。在数据集分析中,大家需要注意以下问题:
这里推荐的算法为拟合类算法和评价类算法。拟合类推荐:
最小二乘法(Least Squares Method):通过最小化观测值与拟合曲线之间的差距来进行拟合,适用于线性和非线性问题。
多项式拟合(Polynomial Fitting):将数据拟合为一个多项式函数,可以通过最小二乘法或牛顿插值法等方法实现。
线性回归(Linear Regression):通过拟合一个线性模型来描述观测值与预测变量之间的关系,可以使用最小二乘法来求解模型参数。
非线性回归(Nonlinear Regression):通过拟合一个非线性模型来描述观测值与预测变量之间的关系,通常需要使用迭代优化算法进行求解,如Levenberg-Marquardt算法。
曲线拟合(Curve Fitting):将数据拟合为一条曲线,可以使用多种拟合函数,如指数函数、对数函数、幂函数等。
插值法(Interpolation):通过已知数据点之间的插值来估计未知数据点的值,常见的插值方法有拉格朗日插值、牛顿插值、样条插值等。
核函数回归(Kernel Regression):通过使用核函数对数据进行加权平滑处理,来实现对非线性关系的拟合。
非参数回归(Nonparametric Regression):不依赖于事先设定的函数形式,而是根据数据的分布进行拟合,常见的方法有局部加权回归、核密度估计等。评价类算法,比如灰色综合评价法、模糊综合评价法对各个指标建立联系。


第一问前大家需要对数据进行分析和数值化处理,也就是EDA(探索性数据分析)。对于数值型数据,大家用归一化、去除异常值等方式就可以进行数据预处理。而对于非数值型数据进行量化,大家可以使用以下方法:
1标签编码
标签编码是将一组可能的取值转换成整数,从而对非数值型数据进行量化的一种方法。例如,在机器学习领域中,对于一个具有多个类别的变量,我们可以给每个类别赋予一个唯一的整数值,这样就可以将其转换为数值型数据。
2独热编码onehot
独热编码是将多个可能的取值转换成二进制数组的一种方法。在独热编码中,每个可能取值对应一个长度为总共可能取值个数的二进制数组,其中只有一个元素为1,其余元素均为0。例如,对于一个性别变量,可以采用独热编码将“男”和“女”分别转换为[1, 0]和[0, 1]。
3分类计数
分类计数是将非数值型数据转换为数值型数据的一种简单方法。在分类计数中,我们根据某些特定属性(比如学历、职业等)来对数据进行分类,然后统计每个类别的数量或频率。例如,在调查问卷中,我们可以对某个问题的回答按照“是”、“否”和“不确定”三个类别进行分类,并计算每个类别的数量或频率。
4主成分分析
主成分分析是将多维数据转换为低维度表示的一种方法。在主成分分析中,我们通过找到最能解释数据变异的主成分来对原始数据进行降维处理。这样就可以将非数值型数据转换为数值型数据。
而第一问建议大家使用一些可视化方法,可以使用常见的EDA可视化方法:
l 直方图和密度图:展示数值变量的分布情况。
l 散点图:展示两个连续变量之间的关系。
l 箱线图:展示数值变量的分布情况和异常值。
l 条形图和饼图:展示分类变量的分布情况。
l 折线图:展示随时间或顺序变化的趋势。
l 热力图:展示不同变量之间的相关性。
l 散点矩阵图:展示多个变量之间的散点图矩阵。
l 地理图:展示地理位置数据和空间分布信息。

除此之外,还可以引入一些评价类的指标,比如:
1 准确率(Accuracy): 主要用于分类模型,它被定义为正确预测的数量除以总预测的数量。
2 精确度(Precision)和召回率(Recall): 精确度表示预测为正例的样本中真正为正例的比例,召回率表示真正的正例中被预测为正例的比例。
3 F1得分: 是精确度和召回率的调和均值,可以更全面地评价模型的性能。
4 ROC曲线与AUC值: ROC曲线下面积(AUC)可以用来评价模型对于正负样本的区分能力。
5 混淆矩阵(Confusion Matrix): 通过显示TP、TN、FP、FN四个数值,可以直观反映模型判断结果的情况。
6 KS值 (Kolmogorov-Smirnov): KS值能够衡量模型对于正负样本的分辨能力。

对于后半问需要可视化,这里可以使用:
1 时间序列图: 可以展示每个球员在比赛过程中得分的变化情况。横坐标为时间(或者按照比赛的顺序),纵坐标为得分,然后分别根据两位球员的得分绘制线条。
2 堆叠柱状图或者面积图: 可以用来表示每个球员在特定时间段内的得分占比,有助于观察比赛的"动量"转换。
3 热力图: 如果我们希望展示比赛中某些特地因素如发球成功率、接球成功率等与得失分的关系,可能会选择热力图。
4 动态图表: 如果我们想要更直观地展示比赛的变化和动态,可以利用软件生成动态图表。
可以用Python的matplotlib、seaborn等库,或者R语言的ggplot2进行绘制。如果需要交互性更强的可视化,也可以考虑使用Tableau或者D3.js等工具。这里建议使用Tableau是一个很好用的BI(商业智能可视化)工具

•一位网球教练对“动量”在比赛中起作用持怀疑态度。相反,他认为一个球员在比赛中的摇摆和成功是随机的。用你的模型/指标来评估这一说法。

问题二分析:问题二的主要目标是对网球比赛中“动量”的存在进行探讨。这位网球教练认为,一个球员在比赛中的起伏和成功是随机的,而不是由所谓的“动量”决定的。我们需要使用数据和模型来评估这一说法。这道题目明显是要用数据或者你的模型来证明这位网球教练是错误的,那很简单,我建议在单个比赛中的时间维度上确定不随机和多场比赛中确定不随机来说明。具体地说,可以使用的算法是相关性分析,这里选择合适的变量来进行相关性分析或者因子分析是重要的,当然,因为是时间尺度上的问题,也可以使用隐马尔科夫模型或者循环神经网络。下面我们先确定本题思路,再针对相关性分析来做详细拆解
1 理解问题与数据:首先我们需要理解“动量”在这里是如何定义的,然后理解数据集的结构和内容。可能需要对相关的网球规则和计分方法有所了解。

2 选择或构建模型:根据问题的需求和数据的性质,选择或构建适合的模型。这可能涉及到时间序列分析、随机过程(例如马尔可夫链)等算法。如果我们假设比赛中的每一分都是独立的,那么可以使用一些基于独立同分布假设的模型;如果我们认为比赛中的分数之间存在依赖关系,那么可能需要使用一些能够处理序列数据的模型,如隐马尔科夫模型或者循环神经网络。
3 模型训练与评估:根据选定的模型,使用提供的数据进行模型的训练,并根据一些预先设定的指标来评估模型的性能。
4 结果解释与应用:最后,我们需要解释模型的结果,以及如何根据模型的结果来回答这个问题。此外,我们还需要考虑这个模型在实际中的应用,例如如何用这个模型来指导训练和比赛的策略。


相关性分析的做法:
1 得分与比赛结果的关系:了解得分如何随时间变化以及这与比赛结果之间的关系。
2 发球方与得分的关系:在网球比赛中,发球方赢得分数/局的概率要大得多,因此我们需要分析发球方和得分之间的关系。
3 “动量”与比赛结果的关系:问题中提到的“动量”,可能可以通过某些指标来衡量(比如连续得分、一个玩家连续赢得多少分等)。我们需要研究这种"动量"和比赛结果之间的关系。
为了进行这些相关性分析,我们可以使用统计方法(例如皮尔森相关系数或斯皮尔曼秩相关系数)或者可视化工具(例如散点图、线图等)。还可以画热力图
但要注意,相关性并不意味着因果关系。尽管我们可能会发现两个变量之间存在强烈的相关性,但这并不能证明其中一个变量就是另一个变量的原因。在这个题目中,即使我们找到了发球方、得分和“动量”与比赛结果之间的相关性,也不能确定它们就是影响比赛结果的唯一因素。可能还有其他未考虑到的因素,如球员的体能、技术、心理状态等。所以需要在选择变量上多花心思来做。

•教练们很想知道是否有一些指标可以帮助确定何时
比赛流程即将从有利于一名球员转变为另一名球员。
o使用至少一场比赛提供的数据,开发一个模型来预测比赛中的这些波动。哪些因素似乎最相关(如果有的话)?
o考虑到过去比赛中“动量”波动的差异,你如何建议一名球员进入一场与不同球员的新比赛?
•在一场或多场其他比赛中测试你开发的模型。你对比赛中挥杆的预测有多好?如果模型有时表现不佳,你能识别出任何可能需要纳入未来模型的因素吗?你的模型对其他比赛(如女子比赛)、锦标赛、球场表面和其他运动(如乒乓球)的泛化程度如何?
•用你的发现制作一份不超过25页的报告,并包括一到两页的备忘录,总结你的结果,并就“势头”的作用向教练提出建议,以及如何让球员准备好应对影响网球比赛过程的事件。

关于3、4问的解析及更多思路代码论文 看文末文章
总页数不超过25页的PDF解决方案应包括:•一页总结表。
•目录表。
•完整的解决方案。
•一到两页的备忘录。
•参考书目。
•AI使用报告(如果使用,不计入25页的限制)

其中更详细的思路,各题目思路、代码、讲解视频、成品论文及其他相关内容,可以点击下方群名片哦!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SwiftUI 动画入门之二:几何特效动画(GeometryEffect)

概览 在上一篇博文 SwiftUI 动画入门之一:路径动画(Path Animations)中,我们讨论了如何打造折线图(LinesGrap)形状上的路径动画。 而在本篇博文中,我们在前篇实现基础之上通过 GeometryEffect 特效为任意路径动画加上了活泼可爱的“小尾巴”。这是怎么做到的呢? 在本…

格式化内存卡后,如何找回丢失的监控视频?

随着摄像头的应用越来越广泛,很多监控摄像头采用了内存卡作为存储介质,方便用户存储和查看摄像头拍摄的视频文件。然而,由于各种原因,监控摄像头的内存卡有时会被意外格式化导致重要数据的丢失,给用户带来诸多困扰。 那…

有色金属矿山采选智能工厂数字孪生可视化,推进矿采选业数字化转型

有色金属矿山采选智能工厂数字孪生可视化,推进矿采选业数字化转型。随着科技的不断发展,数字化转型已经成为各行各业发展的必然趋势。有色金属矿采选业作为传统工业的重要组成部分,也面临着数字化转型的挑战。为了更好地推进有色金属矿采选业…

C语言字符、字符串

一、c语言字符串的本质 1、char类型数组 c语言没有专门用来存储字符串的变量类型,字符串都是存储在char类型的数组中,char类型的连续空间中每个存储单元存储一个字符,数组末尾以’\0’结束,标志字符串的结束。\0’是空字符&…

开源编辑器:ONLYOFFICE文档又更新了!

办公软件 ONLYOFFICE文档最新版本 8.0 现已发布:PDF 表单、RTL、单变量求解、图表向导、插件界面设计等更新。 什么是 ONLYOFFICE 文档 ONLYOFFICE 文档是一套功能强大的文档编辑器,支持编辑处理文本文档、电子表格、演示文稿、可填写的表单、PDF&#…

大语言模型之LlaMA系列- LlaMA 2及LLaMA2_chat(上)

LlaMA 2是一个经过预训练与微调的基于自回归的transformer的LLMs,参数从7B至70B。同期推出的Llama 2-Chat是Llama 2专门为对话领域微调的模型。 在许多开放的基准测试中Llama 2-Chat优于其他开源的聊天模型,此外Llama 2-Chat还做了可用性与安全性评估。 …

IP定位如何进行业务风控反欺诈

IP地址作为接入互联网的唯一标识,分析其归属地及网络类型等多维度信息,帮助识别虚假流量和欺诈账号,保障账号和交易安全,帮助企业持续优化风控与反欺诈模型,降低经济损失。 交易聚集分析 通过IP地址数据服务得到的交易…

Pytorch从零开始实战18

Pytorch从零开始实战——人脸图像生成 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——人脸图像生成环境准备模型定义开始训练可视化总结 环境准备 本文基于Jupyter notebook,使用Python3.8,Pytorch2.0.1cu118&#…

Linux下gcc的使用与程序的翻译

gcc和程序的翻译过程 gcc介绍程序的翻译过程预编译编译汇编链接 命令行式宏定义 gcc介绍 gcc是一款编译C语言编译器,可以把我们用vim写的代码编译成可执行程序。编译C用g进行编译,C的文件后缀是test.cc或test.cpp或test.cxx 如果要安装g就执行以下命令 …

一文详解docker swarm

文章目录 1、简介1.1、涉及到哪些概念?1.2、需要注意什么? 2、集群管理2.1、创建集群2.2、将节点加入集群2.3、查看集群状态。2.4、将节点从集群中移除2.5、更新集群2.6、锁定/解锁集群 3、节点管理4、服务部署4.1、准备4.2、服务管理4.2.1、常用命令4.2…

TCP 连接掉线自动重连

文章目录 TCP 连接掉线自动重连定义使用连接效果 TCP 接收数据时防止掉线。TCP 连接掉线自动重连。多线程环境下TCP掉线自动重连。 欢迎讨论更好的方法! TCP 连接掉线自动重连 定义 定义一个类,以编写TCP连接函数Connect(),并且&#xff1a…

分发糖果[困难]

优质博文:IT-BLOG-CN 一、题目 n个孩子站成一排。给你一个整数数组ratings表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果: 【1】每个孩子至少分配到1个糖果。 【2】相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩…

JavaScript基础五对象 内置对象 Math.random()

内置对象-生成任意范围随机数 Math.random() 随机数函数, 返回一个0 - 1之间,并且包括0不包括1的随机小数 [0, 1) 如何生成0-10的随机数呢? Math.floor(Math.random() * (10 1)) 放大11倍再向下取整 如何生成5-10的随机数&…

【智能算法】11种混沌映射算法+2种智能算法示范【鲸鱼WOA、灰狼GWO算法】

1 主要内容 混沌映射算法是我们在智能算法改进中常用到的方法,本程序充分考虑改进算法应用的便捷性,集成了11种混合映射算法,包括Singer、tent、Logistic、Cubic、chebyshev、Piecewise、sinusoidal、Sine、ICMIC、Circle、Bernoulli&#xf…

css实现按钮边框旋转

先上效果图 本质&#xff1a;一个矩形在两个矩形互相重叠遮盖形成的缝隙中旋转形成&#xff0c;注意css属性z-index层级关系 直接上代码 <div class"bg"><div class"button">按钮</div></div><style>.bg {width: 100%;heigh…

数字图像处理(实践篇)四十一 OpenCV-Python 使用sift算法检测图像上的特征点实践

目录 一 涉及的函数 二 实践 2004年,D.Lowe在论文Distinctive Image Features from Scale-Invariant Keypoints中提出了一种新算法,即尺度不变特征变换 (SIFT),该算法提取关键点并计算其描述符。SIFT提取图像的局部特征,在尺度空间寻找极值点,并提取出其位置尺度和方向…

绝地求生:“龙腾”通行证和新空投任务内容一览:二十级依然有图纸!

大家好&#xff0c;27.2版本终于更新完了&#xff0c;先为大家带来这次龙腾通行证的详细内容&#xff0c;显放上详细的兑换点数大家可以慢慢看。 省流: 通行证分支3仍然可解锁图纸和500G-COIN奖励&#xff0c;空投任务也可以通过做很简单的游戏任务70代币兑换获得1张图纸。 这次…

main函数中参数argc和argv用法解析

1 基础 argc 是 argument count 的缩写&#xff0c;表示传入main函数的参数个数&#xff1b; argv 是 argument vector 的缩写&#xff0c;表示传入main函数的参数序列或指针&#xff0c;并且第一个参数argv[0]一定是程序的名称&#xff0c;并且包含了程序所在的完整路径&…

vue 发布自己的npm组件

1、在项目任意位置创建index.ts文件 2、导入要到处的组件&#xff0c;使用vue提供的install 功能全局挂在&#xff1b; import GWButton from "/views/GWButton.vue"; import GWAbout from "/views/AboutView.vue";const components {GWButton,GWAbout, …

canvas路径剪裁clip(图文示例)

查看专栏目录 canvas实例应用100专栏&#xff0c;提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重…
最新文章