数学建模-基于脑出血患者院前指标的多种机器学习预测模型构建及比较研究

本文主要是介绍数学建模-基于脑出血患者院前指标的多种机器学习预测模型构建及比较研究,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基基于脑出血患者院前指标的多种机器学习预测模型构建及比较研究

整体求解过程概述(摘要)

  卒中是全球致残率、致死率最高的疾病之一,其中脑出血(Intracerebral hemorrhage,ICH)患者仅占卒中患者的 20%,但致残、死亡人数与缺血性卒中无明显差异,由于病程短,发展迅速的特点,以农村地区为代表的经济欠发达地区,受限于交通以及基层医疗水平的欠缺,往往无法得到完整、可信的医疗检查从而不利于正确医疗干预的实施,给国家及患者家庭带来了巨大的精神与经济负担。目前 ICH 患者神经功能预后预测模型多基于传统方法如 Logistic 回归,主要关注院中指标对神经功能预后的影响,往往忽略院前指标的重要作用。ICH 患者的救治时间窗短,须在有限时间内快速制定合理、有效的治疗方案,因此利用可快速获取的院前指标建立神经功能预后模型,阐明各指标变量在疾病发展的中发挥的作用,并利用该类指标变量建立治疗方案相关指南是未来研究的重要方向。方法: 目前,国内基于有监督的机器学习方法对 ICH 患者神经功能预后分类模型相关研究较少,高性能预测模型缺乏,不利于脑出血相关临床实验的观察单位的纳入排除标准设置,极大程度阻碍了脑出血患者的前瞻性研究设计,导致相关疾病高质量循证医学证据进展迟缓。
  本文首先使用 Logistic 回归模型、Lasso 回归模型,对院前指标进行筛选,证明了院前指标相较于以往认为占据主导因素的院中指标,同样对 ICH 患者神经功能预后有重要影响,后利用多种新型机器学习方法如支持向量机、随机森林等建立神经功能预后预测模型,通过多模型间性能的比较研究,阐述了决策树类算法及其衍生算法随机森林在信息数据共享的大数据时代,在预测神经功能预后普遍不良的脑出血疾病的显著优势。

问题分析

  ICH 患者神经功能预后普遍较差,治疗方案拟定难度大,治疗效果低于预期,甚至出现不利影响,因此如何利用 ICH 患者病史资料以及入院体征,结合目前最新的机器学习分类模型构建神经功能预后预测模型是改善脑出血患者结局的重要问题。入院前指标,包含吸烟、喝酒、既往卒中史等既往病史资料等以及入院体征检查如 NIHSS、GCS 等量表评分,是制定治疗方案前 ICH 患者最易获取的指标变量,但是目前的研究者往往忽略院前指标的重要作用,故本文旨在探究 ICH患者院前指标对患者神经功能预后的影响,并尝试建立一种性能较好的预测模型,为临床治疗提供一定的指导。
  国内既往研究多采用传统的统计方法建模,不适用于复杂的临床情况以及临床需求,本文采用有监督的分类机器学习方法,希望利用院前指标建立 ICH 患者神经功能预后的相关预测模型,并且比较研究基于各种机器学习方法建立的预测模型性能、适用场景以及优化方案,机器学习方法涵盖经典决策树、条件推断树、随机森林、支持向量机等五种机器学习方法。本文技术路线如图 1 所示:
在这里插入图片描述

模型的建立与求解

  本文首先以 ICH 患者院前指标及院中指标为自变量,神经功能预后情况为结局变量,采用 Logistic 回归、lasso 回归进行变量筛选,探究各种指标对 ICH 患者神经功能预后是否有显著影响。后以 ICH 患者院前指标为自变量,神经功能预后情况为结局变量,训练支持向量机、BP 神经网络、决策树及随机森林等五个机器学习方法,以比较研究各类模型在基于院前指标预测 ICH 患者神经功能预后的性能。
  (一)影响因素筛选方法
  1.Logistic 回归(Logistic Regression)
  Logistic 回归是处理二分类资料的标准方法。属于概率型非线性回归,多用于临床医学的鉴别诊断、评价治疗策略、分析疾病预后因素等。设有一个应变量 Y 和 m 个自变量𝑋1,𝑋2,…,𝑋𝑚,应变量 Y 是个二值变量时,取值为
在这里插入图片描述
  该公式称为 logit 模型。记𝑍 = 𝛼 + 𝛽1𝑋1 + 𝛽2𝑋2 + ⋯ + 𝛽𝑚𝑋𝑚,那么 Z 和 P 之间关系的 Logistic 曲线如下图 2 所示
在这里插入图片描述

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

(代码和文档not free)

lines = ["北京协和医院~病案记录~姓名~任~发~君~2~病案号1~5~40000~2008-9-5~首次病程记录~、本例特点:~1、中年男性,急性起病,病程3月。~2、主要表现为车祸撞伤后乏力、头晕、头痛,嗅觉减退,视力下降,无意识障碍,食欲可。~28~外院检查提示低血钠,血钠最低123mmol/L,尿钠排出增多,经静脉和口服补钠后血钠有所~请~上升,目前未予特殊处理,入院查血钠128mmol/L。~勿~3、既往史、个人史、家族史无特殊。~写~4、查体:136.5℃,P66次/分,R20次/分,BP坐立卧均为130/90mmHg。皮肤不干、~过~不潮,无明显皮肤色素沉着。浅表淋巴结未触及肿大。甲状腺不大。心率66次/分,律齐。~此~双肺呼吸音清,未闻及干湿啰音。腹软,剑突下轻压痛,无反跳痛,肝脾肋下未及。双下~线~肢无水肿。~5、辅助检查:外院查查A10.7ng/ml/h(0.93~6.56),A2112.7pg/m1(55.3~115.3),ALD19.6pg/m1(65.2-295.7),GH1.21ng/m1(10.0),颅脑、胸、~上腹、腰椎、肾上腺CT示左眶内壁骨折、副鼻窦炎、左侧肋骨多发骨折,L2~椎体骨折并15水平椎管内积气,右肺下叶支气管扩张,纵隔囊肿,左侧肾上~腺外侧支增厚,双肾囊肿,颅脑MRI示脑内多发缺血灶,垂体MRI未见明显异~常。~拟诊讨论:~患者中年男性,车祸后急性起病,病程3月,主要表现为乏力、头晕、头痛、视力下~降,多次化验血钠<135mmol/L,低钠血症诊断明确。低钠血症病因方面,患者无呕吐、腹~泻,无消化道丢失证据:无大量出汗、烧伤的病史,皮肤丢失不支持;考虑肾性失钠的可~能性比较大。~肾性失钠的原因方面,无口服利尿剂史;无慢性肾脏疾病病史,肾功能正常;无肾上~腺皮质功能不全表现,外院检查血皮质醇正常;甲状腺功能正常;血钠明显降低,最低~123mmol/L,考虑抗利尿激素不适当分泌综合征(SIADH)可能。SIADH常见于(1)肺部疾~病:包括肿瘤等,肿瘤可分泌ADH,引起血钠降低,但患者外院肺部C未见明显异常不支~持。(2)神经系统疾病:头部外伤、手术、颅内出血、肿瘤等使下丘脑分泌ADH增多,引~起血钠降低,患者有车祸后头部外伤史,外院颅脑MRI示脑内多发缺血灶,垂体MRI~未见明显异常。考虑车祸后头部外伤导致STADH的可能性比较大,因此需进一步检查明~确。~诊疗计划~1、入院常规检查。~、生动限水,高钠饮食,记246出入量,监测血、尿电解质变化。~3、复查24小时UIFC、血ACH、血、甲功、血脂。~4、肿瘤标记物及影像学检查寻找有无肿瘤。~5、明确诊断后决定下一步治疗方案。~戴宝丽~2008-9-6~许岭翎主治医师、曹彩霞代主治医师首次查房记录:补充病史患者车祸初时外院查电~解质正常,车祸后头部外伤,外院影像学检查可见明确颅内血肿,后多次查电解质血钠均~低,因而有明确低钠病史3月。低钠血症可按不同的渗透压分为多种类型。内分泌方面的~病因有:1.继发于甲低的稀释性低钠血症,患者外院甲功检查正常,不支持,入院后可复~查该项指标明确;2.继发于肾上腺皮质功能不全的低血容量性低钠血症,患者往往有食欲~MR.232008.1300本B"]total_exam_result = []#用来存储所有的检查
total_sys_result = []  #用来存储所有的症状
total_test_result = []#用来存储所有的化验
for line in lines:line = line.split('。')exam_result = [""] #先将检查的列表设置为包含一个空字符串sys_result = [""] #先将症状的列表设置为包含一个空字符串test_result = [""] #先将化验的列表设置为包含一个空字符串first_result = [""]tem_result = [""]number1 = 0number2 = 0number3 = 0is_begin = Trueis_false = 0for idx, content in enumerate(line):content += "。"if "检查" in content or "查体" in content or "检~查" in content or "诊断" in content or \("患者" in content and "就诊" in content) or ("门诊" in content and "收入院" in content) or "病以来" in content \or ("乏力" in content or "头晕" in content or "头痛" in content) or "化验" in content:if "检查" in content or "查体" in content or "检~查" in content:if number1 == 0 and len(first_result) > 0 and is_begin:exam_result[-1] += first_result[-1]exam_result[-1] += contentis_begin = Falseelse:exam_result[-1] += content# if tem_result != [""]:#     exam_result[-1] += tem_result[-1]#     tem_result = [""]is_false = 1number1 += 1if "诊断" in content or ("患者" in content and "就诊" in content) or ("门诊" in content and "收入院" in content) or "病以来" in content \or ("乏力" in content or "头晕" in content or "头痛" in content):if number2 == 0 and len(first_result) > 0 and is_begin:sys_result[-1] += first_result[-1]sys_result[-1] += contentis_begin = Falseelse:sys_result[-1] += contentis_false = 2number2 += 1if "化验" in content and ("乏力" not in content or "头晕" not in content or "头痛" not in content):if number3 == 0 and len(first_result) > 0 and is_begin:test_result[-1] += first_result[-1]test_result[-1] += contentis_begin = Falseelse:test_result[-1] += contentis_false = 3number3 += 1# continueelse:number = number1 + number2 + number3if number == 0:first_result[-1] += contentelse:tem_result[-1] += contentif is_false == 1:exam_result[-1] += tem_result[-1]tem_result = [""]if is_false == 2:sys_result[-1] += tem_result[-1]tem_result = [""]if is_false == 3:test_result[-1] += tem_result[-1]tem_result = [""]total_exam_result.append(exam_result)total_sys_result.append(sys_result)total_test_result.append(test_result)
print(total_exam_result)
print(total_sys_result)
print(total_test_result)
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

这篇关于数学建模-基于脑出血患者院前指标的多种机器学习预测模型构建及比较研究的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/453886

相关文章

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

一文详解如何从零构建Spring Boot Starter并实现整合

《一文详解如何从零构建SpringBootStarter并实现整合》SpringBoot是一个开源的Java基础框架,用于创建独立、生产级的基于Spring框架的应用程序,:本文主要介绍如何从... 目录一、Spring Boot Starter的核心价值二、Starter项目创建全流程2.1 项目初始化(

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Java 中实现异步的多种方式

《Java中实现异步的多种方式》文章介绍了Java中实现异步处理的几种常见方式,每种方式都有其特点和适用场景,通过选择合适的异步处理方式,可以提高程序的性能和可维护性,感兴趣的朋友一起看看吧... 目录1. 线程池(ExecutorService)2. CompletableFuture3. ForkJoi

mss32.dll文件丢失怎么办? 电脑提示mss32.dll丢失的多种修复方法

《mss32.dll文件丢失怎么办?电脑提示mss32.dll丢失的多种修复方法》最近,很多电脑用户可能遇到了mss32.dll文件丢失的问题,导致一些应用程序无法正常启动,那么,如何修复这个问题呢... 在电脑常年累月的使用过程中,偶尔会遇到一些问题令人头疼。像是某个程序尝试运行时,系统突然弹出一个错误提

使用Python和python-pptx构建Markdown到PowerPoint转换器

《使用Python和python-pptx构建Markdown到PowerPoint转换器》在这篇博客中,我们将深入分析一个使用Python开发的应用程序,该程序可以将Markdown文件转换为Pow... 目录引言应用概述代码结构与分析1. 类定义与初始化2. 事件处理3. Markdown 处理4. 转