2024认证杯数学建模C题思路模型代码

目录

2024认证杯数学建模C题思路模型代码:4.11开赛后第一时间更新,获取见文末名片

以下为2023年认证杯C题:

2024年认证杯数学建模C题思路模型代码见此


2024认证杯数学建模C题思路模型代码:4.11开赛后第一时间更新,获取见文末名片

以下为2023年认证杯C题:

   问题分析

        问题的研究对象是正常与不正常的心搏,研究的内容为其中心电波形功率谱密度的变化情况。该问题描述了心律失常时不同心搏的类别变化特点,并在不同的异常心率搏动下提出了分类排序的要求:

        2.1对问题1的分析

        针对问题1:可以将问题分为两个小问题。首先对本文数据异常心搏整合,并进行其特性的分析。因为每个csv的文件都是2s的时间序列数据,直接使用时间序列建模明显数据过于繁琐,并不可取。因此,按照思路可以利用这些数据时间序列去提取统计特征、频域特征、时域特征,并存储于数据集中。根据上述的特征,对每个样本提取特征,并对正常的标记 0,异常的标记 1。 使用监督学习方法,建立机器学习模型进行训练和调参。其次,对心律失常的情况进行分类,这部分类别 label 题目没有给,因此属于无监督学习聚类分析。然后通过使用基于质心的聚类算法,自己决定类的数目。

        2.2对问题2的分析

        针对问题2:将第一问所得数据集分为数据集和测试集,然后更新聚类中心。可以参考统计模型中的多元线性回归分析的标准化回归系数和机器学习模型的特征重要性分析。这一步的思想是将第一问打的 label 作为 target 进行拟合模型,让模型本身来判断哪些特征是重要的分类依据。具体需要先将数据标准化,将 label 作为因变量,可以带入多元线性回归模型观察标准化回归系数的大小,或者带入机器学习分类模型观察特征重要性的大小,直接量化各个特征的分类重要性。最后将特征值可视化,再去量化其标准。

        2.3对问题3的分析

        针对问题3:这题可以根据问题1和问题2的结论去分析,一般来说,心搏数据与正常心搏偏离越大则越危险,可以直接与其比较得出统计特征以此做出统计分类。然后,采用机器学习分类中的置信度,假设有3种异常,将正常编号为0,异常的分程度标记为1、2、3,再机器学习进行数据拟合,若心搏数据越偏离正常,则情况越紧急,标记分级更高,若心搏数据偏向正常,则情况越轻缓,标记分级低。

        问题一的模型建立与求解:

        由于心电监测仪的处理器数据速度和容量有限,会大大限制心电监测长时间的数据计算,因此如何在2s内将心率异常状况分类是一个重点问题。因此:

可通过机器学习输入样本集:会将数据集划分为两部分:训练集和测试集。训练集用来训练模型,测试集用来评估模型的性能。通过训练集,可以得到一个模型,然后用测试集来评估这个模型的泛化能力。如果模型在测试集上的表现很好,那么就可以认为这个模型具有很好的泛化能力,可以用来预测新的数据。在数学建模中,建立训练集和测试集的过程与机器学习中的过程类似。通常会将数据集划分为训练集和测试集,然后使用训练集来建立模型,使用测试集来评估模型的性能。这个过程可以帮助确定模型的参数和超参数,并且评估模型的预测能力。通过这个过程,可以得到一个可靠的模型,用来解决实际问题。

        四种模型

        使用心跳频率去分析异常情况,可以通过监测心跳频率的变化来判断患者是否出现了心脏疾病等异常情况。以下是四种常用的机器学习模型对心跳频率异常情况的分析:

①Logistics模型:Logistics模型可以用来预测二元分类问题,如判断患者是否有心脏疾病。通过输入患者的心跳频率等特征,Logistics模型可以输出一个概率值,表示患者是否有心脏疾病的可能性。如果概率值大于0.5,则认为患者有心脏疾病;否则,认为患者没有心脏疾病。

Logistic回归模型对因变量y直接进行建模,而是对y取某个值的概率进行建模,即p{y=1|x}进行建模。这个概率的取值只有0或1两种情况。那么可以得到p{y=1|x}与x的关系建立模型:

②决策树模型:决策树模型可以用来预测多元分类问题,如判断患者是否有不同类型的心脏疾病。通过输入患者的心跳频率等特征,决策树模型可以逐步判断患者是否有不同类型的心脏疾病。例如,如果患者的心跳频率小于60次/分钟,则认为患者可能患有心房颤动等疾病。

③随机森林模型:随机森林模型可以用来预测多元分类问题,如判断患者是否有不同类型的心脏疾病。与决策树模型不同的是,随机森林模型会生成多个决策树,并且每个决策树都是基于不同的随机样本和特征生成的。通过对多个决策树的预测结果取平均值,随机森林模型可以更准确地预测患者是否有心脏疾病。

④XGBoost模型:XGBoost模型是一种高效的集成学习模型,可以用来预测二元或多元分类问题。与随机森林模型类似,XGBoost模型也是基于多个决策树生成的。但是,XGBoost模型在生成决策树时采用了一些优化技术,如梯度提升和正则化等,可以更准确地预测患者是否有心脏疾病。

        

 利用文本数据生成的决策树模型部分图

        问题二的模型建立与求解:

利用文本数据生成的心搏数据

        由上图可知,不会存在完全一致的心搏频率图,因此如何衡量出一个标准应用于心电监测仪去判断心律失常的类别尤为重要。

因此,在通过机器学习后,将测试集整理出来:

 部分机器学习后心搏频率测试数据

        经过大量的测试数据分析,最终选用了logistic模型、决策树模型、随机森林模型和xgboost模型进行比较。

 机器学习后四种模型的性能度量指标折线图

 机器学习后四种模型的性能度量指标表

        通过在对比分析的结果中不难发现,发现随机森林模型和XGBoost模型表现更加优秀,因此建议在实际应用中使用这两种模型,以获得更好的预测效果。因此选用随机森林模型和XGBoost模型的前十项指标数据进行分析:

 随机森林最重要的十个特征索引图

 XGBoost最重要的十个特征索引图

        最后,则是对重要的特征进行可视化。假设x1,x2,x3,x4,x5是最重要的特征,则将他们三三排列组合成10种,绘制三维散点图,将不同label的点用不同颜 色标记,这样可以直观看出哪些点在哪些取值下会严重影响分类的性能,得到判断依据。

        问题三的模型建立与求解:

1)危险程度衡量的指标分析

        本题主要是对问题一和问题二的总结,利用问题一中求出的异常种类以及问题二得出的异常心率标准。可以根据心率失常的类型以及临床表现,将异常心率的失常程度分为:低危型心率失常、中危型心率失常和高危型心率失常。

根据上述的分类,不但可以以每个片段的分类顺序从上到下分为高中低三个等级,还可以依据每种等级内会发生的心律失常类型进一步排序,而为了实现心律失常 风险评估和排序,使用了一种基于机器学习的方法,具体步骤如下:

Step1:

        像解决问题一的同样方法,在标注完正常心率与异常心率的图标中,对每个片段,计算其各类型的特征值,并将其当做改片段的特征向量。

Step2:

        根据心电图中已知的正常心搏频率和异常心搏频率进行区别标注,方便下一步让电脑明白数据,例如:正常心搏数据标记为0,异常拼搏数据从低到高依次为1、2、3。

Step3:

        在数据预处理完成后,使用已经标注好的样本数据来进行训练学习,采用四种聚类分析模型,分别是:Logistic模型、决策树模型、随机森林模型和XGBoost模型。在分析求证后,最终使用了Logistic模型。

Step4:

        在模型训练完成后,使用新的心电图数据输入模型中,就可以依靠2s的心电频谱检测出每个片段的危险等级,将预测的结果排序好和分级,更有利于医生能够更加快速地诊断和处理。 

2)实际上的聚类分析得出的结论

        使用logistci模型,可得Logistic回归模型的认为近似0的概率分别如下 

类型

近似0的概率

1

0.058

2

0.0327

3

0.046

根据逻辑回归模型进行对数据进行预估,将预估值里面是心率失常而且类型不同的人分别对应求总和,不同类型心率失常的人分别求其样本总数,将其对应求概率,该概率为求近似0(正常心率的人)的概率,概率越低证明他与正常人的心率相差更大,即表明该人心率失常就更为严重。

部分代码展示:


2024年认证杯数学建模C题思路模型代码见此

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

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

相关文章

(云HIS)云医院管理系统源码 SaaS模式 B/S架构 基于云计算技术

一、云HIS系统框架简介 1、技术框架 (1)总体框架: SaaS应用,全浏览器访问 前后端分离,多服务协同 服务可拆分,功能易扩展 (2)技术细节: 前端:AngularNg…

【C++】深度解析--拷贝构造函数(从0开始,详解浅拷贝到深拷贝,小白一看就懂!!!)

目录 一、前言 二、拷贝构造函数 🍎概念解析 🥝特性解析 💦为什么拷贝构造函数使用传值方式会引发无穷递归调用? 💦为什么拷贝构造函数的形参中要加入 const 修饰 💦若未显式定义,编译器会生…

使用阿里云试用Elasticsearch学习:4. 聚合——2

近似聚合 如果所有的数据都在一台机器上,那么生活会容易许多。 CS201 课上教的经典算法就足够应付这些问题。如果所有的数据都在一台机器上,那么也就不需要像 Elasticsearch 这样的分布式软件了。不过一旦我们开始分布式存储数据,就需要小心…

干货 | 百亿节点,毫秒级延迟,基于nebula的大规模图应用实践

背景 2017年9月携程金融成立,在金融和风控业务中,有多种场景需要对图关系网络进行分析和实时查询,传统关系型数据库难以保证此类场景下的关联性能,且实现复杂性高,离线关联耗时过长,因此对图数据库的需求日…

人工智能科普:人工智能的分类

人工智能的分类多种多样,根据不同的标准和应用场景,可以将其划分为多个不同的类别。以下是对人工智能分类的详细探讨。 一、按应用领域分类 1. 智能机器人:智能机器人是人工智能技术在机器人领域的应用。它们能够根据环境和任务的不同进行自…

视觉SLAM学习打卡【10】-后端·滑动窗口法位姿图

本节是对上一节BA的进一步简化,旨在提高优化实时性.难点在于位姿图部分的雅可比矩阵求解(涉及李代数扰动模型求导),书中的相关推导存在跳步(可能数学功底强的人认为过渡的理所当然),笔者参考了知…

ELK企业级日志分析系统以及多种部署

目录 ELK简介 ELK简介 ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 ●ElasticSearch:是基于Lucene(一个全文检索引…

Command开源AI的未来

在AI的浩瀚宇宙中,有一个新星正在闪耀——Command R。这个开源的大型语言模型不仅在技术排行榜上名列前茅,更以其开放性和高性能赢得了全球开发者的关注和喜爱。 开源精神的胜利 Command R是由CohereAI推出的一款开源大语言模型,拥有1040亿…

CTFshow电子取证——内存取证2

接上回 JiaJia-CP-2 2.佳佳在网页上登录了自己的邮箱,请问佳佳的邮箱是? 因为是在网页上登陆的邮箱 用iehistory插件 查看一下网页历史记录 为了方便分析,使用grep命令正则匹配一下 **com 的记录 vol.py -f JiaJia_Co.raw --profileWin…

线程池-异步编排-完成时回调-线程串行化

上图中用exceptionally可以感知异常也可以处理返回结果 同时 我们使用handle也可以做到这种情况 线程串行化

IDEA Warnings:SQL dialect is not configured.

springboot项目XxxMapper.xml文件打开后显示warnings:SQL dialect is not configured......(翻译:未配置SQL语言。) 大概意思是没有在IDEA中配置当前sql是MySQl、Oracle还是MariaDB等语言。 配置一下就好: 完了&#…

synchronized底层原理

1synchronized关键字的底层原理 Monitor 举个例子: 1.线程1执行synchronized代码块,里面用到了lock(对象锁)。首先会让这个lock对象和monitor关联,判断monitor中的owner属性是否为null。如果为null直接获取对象锁。owner只能关联一个线程。 2…

node.js学习笔记(一):什么是node.js、fs 文件系统模块、path 路径模块、综合案例 - 时钟案例

目录 一、初识Node.js 1. 1.什么是 Node.js 1.2.Node.js 中的 JavaScript 运行环境 1.3. Node.js 可以做什么 1.4. Node.js 环境的安装 1.5. 在 Node.js 环境中执行 JavaScript 代码 二、fs 文件系统模块 2.1 什么是 fs 文件系统模块 2.2 读取指定文件中的内容 2.3 向…

牛顿-欧拉递推动力学方程①

文章目录 力和力矩的递推算式1 第i个连杆的静力平衡方程2 第i个连杆的动力平衡方程(不计重力)牛顿—欧拉递推动力学算法向外递推计算连杆的速度和加速度向内递推计算力和力矩计及重力的牛顿—欧拉动力学算法牛顿—欧拉动力学方程是应用达朗伯原理将动力学问题转化为牛顿—欧拉…

解决vue3更新chunk包后,点击页面报错

出现错误 解决思路 试了好多方法,跳了很多坑,router版本对不上,解决方案不实用。最后我直接捕获异常,刷新页面,解决最快最有效。 // vue-rotuer版本 "vue-router": "^4.0.3"解决方案 在router/…

Java基础-知识点03(面试|学习)

Java基础-知识点03 String类String类的作用及特性String不可以改变的原因及好处String、StringBuilder、StringBuffer的区别String中的replace和replaceAll的区别字符串拼接使用还是使用StringbuilderString中的equal()与Object方法中equals()区别String a new String("a…

springboot+ssm+java医生绩效管理系统

框架:SSM/springboot都有 jdk版本:1.8 及以上 ide工具:IDEA 或者eclipse 数据库: mysql 编程语言: java 前端:layuibootstrapjsp 详细技术:HTMLCSSJSjspspringmvcmybatisMYSQLMAVENtomcat 开发工具 IntelliJ IDEA: …

lanqiao.602 迷宫

题目&#xff1a; 代码&#xff1a; #include<iostream> #include<cstring> #include<algorithm> #include<queue> using namespace std; char mp[31][51]; //稍微开大一点 char k[4]{D,L,R,U}; //按字典序记录路径 int dirx[]{1,0,0,-1},d…

数模 初见数建

文章目录 初见数学建模1.1 数学建模是什么1.2 数学建模的概述1.3 如何学习数学建模---分模块化1.4 数学建模前提了解1.5 数学建模的六个步骤1.6 如何备战建模比赛1.7 数学建模赛题类型1.8 数学建模算法体系概述 初见数学建模 1.1 数学建模是什么 1.原型与模型 原型&#xff…

虚幻引擎架构自动化及蓝图编辑器高级开发进修班

课程名称&#xff1a;虚幻引擎架构自动化及蓝图编辑器高级开发进修班 课程介绍 大家好 我们即将推出一套课程 自动化系统开发。 自动化技术在项目开发的前中后期都大量运用。如何您是一家游戏公司&#xff0c;做的是网络游戏&#xff0c;是不是经常会遇到程序员打包加部署需…