Python数据分析—基于机器学习的UCI心脏病数据分析(源码+数据+分析设计)

本设计源码、数据和设计已经开源,点击链接下载,喜欢的话就点赞加收藏吧!

下载链接:https://pan.baidu.com/s/1ys2F6ZH4EgnFdVP2mkTcsA?pwd=LCFZ
提取码:LCFZ

研究基础

心脏病是一类比较常见的循环系统疾病。循环系统由心脏、血管和调节血液循环的神经体液组织构成,循环系统疾病也称为心血管病,包括上述所有组织器官的疾病,在内科疾病中属于常见病,其中以心脏病最为多见,能显著地影响患者的劳动力。典型症状:蹲踞体征、杵状指(趾)、肺动脉高压、年长儿可有生长发育迟缓。患儿面色苍白,憋气,呼吸困难和心动过速,在鼻尖、口唇、指(趾)甲床明显紫绀。患儿往往发育不正常,表现为瘦弱、营养不良、发育迟缓等。部分有胸痛、晕厥。部分排汗量异常。

基本分类

心脏病是一种统称,其实心脏病是分了很多的的种类的,可以根据发病部位分类也可以根据发病原因分类。在临床上一般将心脏病分为4种。不同种类的心脏疾病会出现不同的症状,平时掌握不同心脏病的征兆,可以及时的预防,心脏病发作时才能尽快的急救。

现在我们国家有很多的风湿患者,而长期的风湿又会导致慢性风湿性心脏病,这是心脏病中很常见的一种。当风湿疾病患者体内的热症蔓延到心脏的时候就容易引发心脏病的发生。

第二种常见的心脏病类型是先天性心脏,这一类人是生下来的时候就有心脏病,主要是在胚胎发育的时候染色体发生异常。

第三种心脏病类型是冠心病,这也是心脏病患者中最多的一种类型。冠心病患者常常都有抽烟的习惯,吸烟又及其容易引发心脏疾病。另外糖尿病、高血压等疾病会使我们血流受阻,易使心肌缺氧而受损,也容易导致心脏病。现在很多年轻人有冠心病,主要是因为劳累过度还有长期处于精神紧张。

第四种类型就是高血压心脏病,高血压患者的血压太高会导致心室肥大,心室长期处于超负荷状态,心肌就会坏死造成心脏病。有的高血压患者冠状动脉血管发生病变,最终导致心律紊乱,甚至出现心绞痛、心肌梗死,严重的威胁着患者的生命。

研究现状

近日,中国医学科学院阜外医院高润霖院士、王增武教授等发表研究称,我国瓣膜性心脏病加权患病率为3.8%,估计我国有2500万瓣膜病患者。研究发现,风湿性心脏病仍是瓣膜病的主要原因,但退行性瓣膜病的患病率明显增加。研究者表示,由于人口老龄化,瓣膜病负担巨大,风湿性心脏病和退行性瓣膜病目前是中国老年人健康的主要威胁。

伯明翰大学的计算机和心血管专家与英国,荷兰和澳大利亚的同行合作开发了ElectroMap--一种用于处理,分析和绘制复杂心脏数据的新型开源软件。相关结果发表在最近的《Scientific Reports》杂志上。伯明翰大学计算机科学高级讲师兼项目总监Kashif Rajpoot博士评论说:“这是一个经过有效验证的开源灵活工具,用于处理和使用我们开发的新型数据分析策略,该软件将提供对心脏病的更深入了解,特别是支持潜在致命性心律失常的机制”。

研究意义

心脏疾病是一类比较常见的循环系统疾病,可导致心悸、心绞痛、心力衰竭、心律失常等临床症状,是引起死亡的主要原因。尽管溶栓等药物治疗、支架的植入和心脏移植等方面取得了很大的进展,但前两种方法并不能有效治疗所有心脏疾病或改善预后,而心脏移植还会有排斥反应的风险。尽管现代医学的发展和医疗设备的开发能有效延缓疾病的进展,但是心脏疾病的患病率仍然呈逐年增加的趋势。目前,研究发现能够对心脏病数据进行分析,建立联防预警机制,在心脏病前期筛查和预警方面前景广阔。

相关技术

1.线性回归

线性回归模型属于经典的统计学模型,该模型的应用场景是根据已知的变量(即自变量)来预测某个连续的数值变量(即因变量)。例如餐厅根据媒体的营业数据(包括菜谱价格、就餐人数、预订人数、特价菜折扣等)预测就餐规模或营业额;网站根据访问的历史数据(包括新用户的注册量、老用户的活跃度、网站内容的更新频率等)预测用户的支付转化率;医院根据患者的病历数据(如体检指标、药物复用情况、平时的饮食习惯等)预测某种疾病发生的概率。

2.随机森林

 作为高度灵活的一种机器学习算法,随机森林(Random Forest,简称RF)拥有广泛的应用前景,从市场营销到医疗保健保险,既可以用来做市场营销模拟的建模,统计客户来源,保留和流失,也可用来预测疾病的风险和病患者的易感性。最近几年的国内外大赛,包括2013年百度校园电影推荐系统大赛、2014年阿里巴巴天池大数据竞赛以及Kaggle数据科学竞赛,参赛者对随机森林的使用占有相当高的比例。所以可以看出,Random Forest在准确率方面还是相当有优势的。

如果接触过决策树(Decision Tree)的话,那么会很容易理解什么是随机森林。随机森林就是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分支——集成学习(Ensemble Learning)方法。随机森林的名称中有两个关键词,一个是“随机”,一个就是“森林”。“森林”我们很好理解,一棵叫做树,那么成百上千棵就可以叫做森林了,这样的比喻还是很贴切的,其实这也是随机森林的主要思想--集成思想的体现。

其实从直观角度来解释,每棵决策树都是一个分类器(假设现在针对的是分类问题),那么对于一个输入样本,N棵树会有N个分类结果。而随机森林集成了所有的分类投票结果,将投票次数最多的类别指定为最终的输出,这就是一种最简单的 Bagging 思想。

3.数据热力图

热力图,是一种通过对色块着色来显示数据的统计图表。绘图时,需指定颜色映射的规则。例如,较大的值由较深的颜色表示,较小的值由较浅的颜色表示;较大的值由偏暖的颜色表示,较小的值由较冷的颜色表示等。从数据结构来划分,热力图一般分为两种。

第一,表格型热力图,也称色块图。它需要2个分类字段+1个数值字段,分类字段确定x、y轴,将图表划分为规整的矩形块。数值字段决定了矩形块的颜色。

第二,非表格型热力图,或平滑的热力图,它需要3个数值字段,可绘制在平行坐标系中(2个数值字段分别确定x、y轴,1个数值字段确定着色)。

热力图适合用于查看总体的情况、发现异常值、显示多个变量之间的差异,以及检测它们之间是否存在任何相关性。值得注意的是,绘制热力图时,建议选择恰当的调色板,既在视觉上便于区分,也符合所要传达的主旨。

适用场景

1.热力图的优势在于“空间利用率高”,可以容纳较为庞大的数据。热力图不仅有助于发现数据间的关系、找出极值,也常用于刻画数据的整体样貌,方便在数据集之间进行比较(例如将每个运动员的历年成绩都浓缩成一张热力图,再进行比较)。

2.如果将某行或某列设置为时间变量,热力图也可用于展示数据随时间的变化。例如,用热力图来反映一个城市一年中的温度变化,气候的冷暖走向,一目了然。

数据属性说明

age: 年龄

sex: 性别 (1 = 男性,0 = 女性)

cp: 经历过的胸痛类型(值1:典型心绞痛,值2:非典型性心绞痛,值3:非心绞痛,值4:无症状)

trestbps: 静息血压(入院时的毫米汞柱)

chol: 该朋友的胆固醇测量值,单位 :mg/dl

fbs: 人的空腹血糖(> 120 mg/dl,1=真;0=假)

restecg: 静息心电图测量(0=正常,1=患有ST-T波异常,2=根据Estes的标准显示可能或确定的左心室肥大)

thalach: 最大心率

exang: 运动引起的心绞痛(1=有过;0=没有)

oldpeak: ST抑制,由运动引起的相对于休息引起的(“ ST”与ECG图上的位置有关。)

slope: 最高运动ST段的斜率(值1:上坡,值2:平坦,值3:下坡)

ca: 萤光显色的主要血管数目(0-4)

thal: 一种称为地中海贫血的血液疾病(3=正常;6=固定缺陷;7=可逆缺陷)

target: 心脏病(0=否,1=是)

数据分析

首先引入函数依赖

导入数据

由于数据存放在.CSV文件中,所以需要通过pandas的rend_csv()方式进行导入,但是由于数据中不包含标签信息,需要新建name函数用以存放标签并于存放数据函数data进行映射。

检查数据的基本结构和分布情况

 为保证系统分析的准确性和模型建立的一致性,需要对数据进行检查,检查数据内的NAN值,若存在NAN值在不影响整体系统的情况下可以进行删除或进行均值填充。

 本次使用的数据已经提前进行过清洗,所以数据并不存在空值情况,可以进行下一步的处理。这里还使用了print(data.describe())方法进行统计描述,查看各数据列的最大值、均值、所占比例等信息。

 

年龄分析

作为心脏病指标中较为重要的因素,大多数人会随着时间的流逝,身体的基本功能开始下降,由此会引发各类亚健康体征,间接促使心脏病的形成。

在此实验中,age标签下的数据的平均数为约为54岁,中位数为56岁,众数为58岁,反应了实验数据的来源多为中老年人,作为心脏病的高发群体,应给予足够的重视。 

 

胆固醇分析

长期的高胆固醇的身体情况会致使心脏负担加重,由此导致的血栓会进一步加剧心脏病的出现,为此如何将胆固醇维持在合理的区间内对中老年人群是十分必要的。为此实验以胆固醇200作为基准线,高于200则归类为胆固醇异常人群,低于200则归类为正常人群,通过与年龄列age进行相互映射输出分类直方图

 

 

在这里可以看出不正常胆固醇人群多集中与60岁左右,正常人群的分布在40岁区间内较为集中,但是在50-60的区间范围内出现了峰值,但是在60-70岁区间出现了谷值,表明在经过了60岁后胆固醇会出现较大波动,需要注意饮食和合理调整作息规律。

通过进一步分类发现,胆固醇随年龄的波动规律如下:年龄越小,胆固醇含量较低,反之胆固醇升高。

 

求解极差

极差:称为全距,极大值减去极小值所得;主要用于衡量能否代表一组数据

四分位差:上四分位数-下四分位数所得;反映了中间50%数据的离散程度,数值越小说明中间的数据越集中。

极差与四分位差都用来判断数据的离散程度。

 

数据中采集的是已经患有心脏病的患者数据,数据中最大值为564,最小值为126,极差为438,四分位差为57.75,由此可得心脏病患者的胆固醇大部分都不正常。数据箱线图如下: 

正态分布计算

判断一个数据是否符合正态分布,这里用SW检验,SW检验中的S就是偏度,W就是峰度。这里需要先将数据转为Series类数据,随后直接用pd进行偏度计算,最后用相关系数或卡方计算12个属性和得心脏病的相关性,分析哪些因素对确诊心脏病作用大。通过对数据进行相关性矩阵计算,形成可视化图表。

 

 

由实验结果可以看出oldpeak,cp,exang,slope指标对确诊心脏病作用较大。

线性回归

回归分析是研究自变量与因变量之间数量变化关系的一种分析方法,它主要是通过因变量Y与影响它的自变量Xi(i1,2,3…)之间的回归模型,衡量自变量Xi对因变量Y的影响能力的,进而可以用来预测因变量Y的发展趋势。

1、根据预测目标,确定自变量和因变量;

2、绘制散点图,确定回归模型类型;

3、估计模型参数,建立回归模型;

4、对回归模型进行检验;

5、利用回归模型进行预测。 

 

随机森林

对于随机森林来进行回归任务,可以分两个部分来实现。第一部分我们先实现回归决策树,第二部分在回归决策树的基础上实现回归随机森林。回归森林使用N棵回归决策树, 这里有两点需要注意:

1.样本的随机性。对于每棵树输入的数据需要是不同的,如果对N棵树输入同样的数据,那得出的结果都是一样的,随机森林也就没有了意义。所以,对于每一棵树,使用的数据是训练集通过随机有放回的采样得到的。

2.属性的随机性。寻找最优划分属性时,先随机选出一部分,再在这一部分中选取增益最大属性的。

 

 

 

心脏病的预防与保养

对于心脏病的预防与保养要在生活中注意如下几点:

1、要定期监测血压、血糖以及到医院抽血化验血脂,以保证处于正常血压、血糖、血脂的范围之内,因为高血压、高血糖、高血脂等三高人群极容易得心脏病尤其是冠心病。

2、除此之外,患者应该注意戒烟和限酒,逢年过节可以少量饮酒,但是也不能暴饮暴食以及酗酒,烟对身体有百害而无一利,因此烟一定要戒掉,酒只能适当的喝一点。

3、要注意清淡饮食,低盐低脂饮食,少吃肥腻,少吃红肉,多吃绿色蔬菜以及优质蛋白比如鱼肉、虾肉等。

4、应该注意保持良好的体型以及合适和合理的健身计划,比如每周运动2-3次,每次30分钟左右。

5、要保持非常愉悦的心情,即使生活压力、工作压力很大也要经常放松心情,注意劳逸结合,因为情绪紧张、过于焦虑都是冠心病的高危因素。

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

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

相关文章

【毕业设计】大数据心血管疾病数据分析(医学大数据分析)

文章目录 0 前言1 课题背景2 数据处理3 数据可视化4 最后 0 前言 🔥 Hi,大家好,这里是丹成学长的毕设系列文章! 🔥 对毕设有任何疑问都可以问学长哦! 这两年开始,各个学校对毕设的要求越来越高&#xff…

【毕业设计】医学大数据分析 - 心血管疾病分析

1 前言 🚩 基于大数据的心血管疾病分析 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 🧿 选题指导, 项目分享: https://gitee.com/dancheng-senior/proje…

大厂开源之殇

‍ 本轮开源之风吹起迄今数年,最大的影响还是越来越多的商业公司开始探索开源方法能够如何改变自己的经营策略。 开源策略循序渐进分成使用、参与和发起。 在发起开源项目实践一线的,一个是打着开源旗号的创业公司,另一个就是大型企业尤其互联…

Zerobot僵尸网络出现了新的漏洞利用和功能

©网络研究院 Zerobot DDoS僵尸网络已经获得了重大更新,扩展了其针对更多互联网连接设备和扩展网络的能力。 微软威胁情报中心 (MSTIC)正在以DEV-1061的名称跟踪持续的威胁,名称为未知、新兴或发展中的活动群集。 本月早些时候,Fort…

github action 基于个人项目实践

前言: DevOps 和 Jenkins 作为一名开发,虽然也没有经常听到 Devops (研发和运维一体化)这个概念,但日常工作中已经无处不在地用着 DevOps 工具。自研也好,基于开源项目改造也好,互联网公司基本都会有自已的…

张晴晴:对话数据推动AIGC——大模型底层数据探索

“Training data is technology” . 数据即科技,OpenAI的联合创始人IlyaSutskever在与知名科技媒体The Verge访谈中提到。ChatGPT自发布以来热度席卷全球,一周前惊艳亮相的GPT-4更是让人感叹我们迎来了AI发展的历史性时刻。 然而我们也困惑,O…

通过CSIG—走进合合信息探讨生成式AI及文档图像处理的前景和价值

一、前言 最近有幸参加了由中国图象图形学学会(CSIG)主办,合合信息、CSIG文档图像分析与识别专业委员会联合承办的“CSIG企业行——走进合合信息”的分享会,这次活动以“图文智能处理与多场景应用技术展望”为主题,聚…

期权专题2:备兑期权

组合期权在四种基本期权的基础上,进行组合,构建出对应的策略。我们先回顾一下基本期权的定价代码。 def option_price(type, dir, S, K None, cost None):获取期权的价值,权利金默认为50Parameters----------type:期权类型,put表示看跌,call表示看涨,…

期权 证券 股票(沪深300ETF)等数据获取

Python 使用tushare模块,这些需要积分,临时使用推荐在闲鱼上买一个月/半年的账号(期权需要5000积分,普通的股票只需要2000积分),不要选择淘宝的单次代下载(又贵又不方便)&#xff0c…

[QMT]05-获取基础行情信息

函数:获取合约基础信息 get_instrument_detail(stock_code) 1 释义 获取合约基础信息 参数 stock_code - string 合约代码 返回 dict 数据字典,{ field1 : value1, field2 : value2, ... },找不到指定合约时返回None ExchangeID - string 合约…

50ETF期权历史数据获取

文章目录 前言一、期权历史数据二、步骤1.安装Choice终端1.1 注册用户 2.导出数据3.表格检索 EOF 前言 在量化交易时需要50ETF(510050)期权历史数据进行回测支持,正常情况下,到期的期权日线数据已经被关闭无法获取。 本文主要讲解如何使用choice数据终端…

技术流薅支付宝羊毛,日入上万不是梦!

阅读文本大概需要 6.66 分钟。 这篇文章发出去不久,就有读者用文章所说的方法赚了 5473 元,还特意给我发了一大红包。 只有当你懂得感恩时,你才能走的更远。 在之前的文章里说过薅羊毛是有分等级,初级的玩法就是在微信群&#xff…

【项目】关于汇付宝支付对接

文章目录 前言引入maven项目结构常量类requestreponseutils签约效果官网文档问题 前言 本文是结合第三方demo提供,然后整理的代码,主要涉及的接口有,签约,支付,流程是,用户输入身份证、银行卡等信息&#…

网赚渠道,付费项目和免费项目,你会选择哪种网赚方式

大家好,我是蝶衣王的小编 在我的理解里呢,网赚分为付费和免费两种。那我也就这两种跟各位分享一下吧。 免费项目 时间财富网 国内的一个任务网站的代表之一,门槛比较低。只要有一技之长,就可以在上面找到让你赚钱的一个任务&am…

免费使用的支付宝,到底是怎么一年赚1206亿的?

全世界只有3.14 % 的人关注了 爆炸吧知识 眨眼间,马云居然退休已经一年了,真可谓白驹过隙,恍惚而逝啊! 不过,你以为马云退休了,就清风明月,万事不管了。 太年轻! 其实马云依旧掌控者…

支付宝赚赏金的四种玩法(引流+变现日入200+)

各大网赚公众号,都推了支付包赏金的玩法,我也来跟跟热度。 以下是收集到的目前市面上常见的玩法。 一:群发好友或者朋友圈。 群发好友或者朋友圈的目的,都是为了让别人来扫描我们的赏金二维码,直接得到赏金。 而好…

在团购网上空手赚钱项目,你敢做就敢赚!

【项目介绍】: 利用团购网销售一款网络热销的静脉曲张袜。 【市场前景】: 团购网站2011年开始火爆起来,到现在团购也都一直还行,毕竟属于概念性行业,只是对于商家来说有时候并不是好事,我对待团购的看法是…

X 进制转十进制黄金万能算法

单纯、混合进制通吃,真正的黄金万能的进制转换方法。 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单…… 地址:https:/…

如何通俗地理解熵?

熵,是一个热力学的概念。但在历史的发展中,造就了它非常丰富的内涵,进入了很多学科的视野。本文会在数理层面对它进行一个解读,厘清它在逻辑上到底是什么。 1 混乱的熵 很多科普文章中,都提到熵是用来度量混乱的。比…