基于Python实现心脏病数据可视化DEA+预测【500010103.1】

一、数据说明

该心脏病数据集是通过组合 5 个已经独立可用但以前未合并的流行心脏病数据集来策划的。在这个数据集中,5 个心脏数据集结合了 11 个共同特征,使其成为迄今为止可用于研究目的的最大心脏病数据集。
该数据集由 1190 个实例和 11 个特征组成。这些数据集被收集并组合在一个地方,以帮助推进与CAD相关的机器学习和数据挖掘算法的研究,并希望最终推进临床诊断和早期治疗。

二、导入包

import numpy as np # 线性代数
import pandas as pd # 数据处理, CSV file I/O (e.g. pd.read_csv)import warnings
warnings.filterwarnings("ignore")import matplotlib.pyplot as plt
import seaborn as snsfrom sklearn.preprocessing import MinMaxScaler
from sklearn.model_selection import train_test_splitfrom sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.ensemble import ExtraTreesClassifier
from sklearn.ensemble import AdaBoostClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from xgboost import XGBClassifier
from lightgbm import LGBMClassifierfrom sklearn.metrics import accuracy_score, classification_report, confusion_matrixfrom IPython.core.display import display, HTML

三、数据集基本信息

1、导入数据

df = pd.read_csv("./data/heart_statlog_cleveland_hungary_final.csv")
df.shape

image.png

2、数据处理

df.head()

image.png

df.describe()

image.png

df.isna().sum()

image.png

四 、类别统计

categoricals = ["sex", "chest pain type", "fasting blood sugar", "resting ecg", "exercise angina", "ST slope", "target"]
fig, axes = plt.subplots(nrows=1, ncols=7, figsize=(12, 5))

Figure_1.png

五、分类参数对心脏病诊断的影响

fig, axes = plt.subplots(nrows=2, ncols=3, figsize=(12, 7))
index = 0

Figure_2.png

六、配对图显示诊断标记的患者之间的数值数据分布

sns.pairplot(df, vars=numericals, hue=df.columns[-1])

Figure_3.png

七、显示心脏病患者和非心脏病患者数值均值的条形图

fig, axes = plt.subplots(nrows=1, ncols=5, figsize=(10, 7))
for i, j in enumerate(numericals):plots(df, df.columns[-1], j, axes[i])

Figure_4.png

八、显示心脏病患者和非心脏病患者的数值分布和异常值的箱线图

fig, axes = plt.subplots(nrows=1, ncols=5, figsize=(10, 7))
for i, j in enumerate(numericals):

Figure_5.png

九、Kdeplots、条形图、箱线图显示无心脏病患者的数值分布

for i in df[df.columns[-1]].unique():if i == 0:display(HTML("<h1>柱状图,条形图,箱形图显示了无心脏病患者的数值分布</h1>"))else:display(HTML("<h1>柱状图,柱状图,箱形图显示了心脏病患者的数值分布</h1>"))temp_df = df[df[df.columns[-1]] == i]

1、Kdeplot显示性别、胸痛类型、空腹血糖、静息心电图、运动性心绞痛、峰值运动ST段的斜率组患者的数值密度

Figure_6.png
Figure_7.pngFigure_8.pngFigure_9.pngFigure_10.pngFigure_11.png

2、显示性别、胸痛类型、空腹血糖、静息心电图、运动性心绞痛、峰值运动ST段的斜率群体患者的数值平均值的条形图

Figure_12.pngFigure_13.pngFigure_14.pngFigure_15.pngFigure_16.pngFigure_17.png

3、箱形图显示了数值异常值和性别、胸痛类型、空腹血糖、静息心电图、运动性心绞痛、峰值运动ST段的斜率的患者之间的数据分布

Figure_18.pngFigure_19.pngFigure_20.pngFigure_21.pngFigure_22.pngFigure_23.png

4、kdeploy显示了性别、胸痛类型、空腹血糖、静息心电图、运动性心绞痛、峰值运动ST段的斜率的群体患者的数字密度

Figure_24.pngFigure_25.pngFigure_26.pngFigure_27.pngFigure_28.pngFigure_29.png

5、显示性别、胸痛类型、空腹血糖、静息心电图、运动性心绞痛、峰值运动ST段的斜率的群体患者的数值平均值的条形图

Figure_30.pngFigure_31.pngFigure_32.pngFigure_33.pngFigure_34.pngFigure_35.png

6、箱形图显示了数值异常值和不同性别、胸痛类型、空腹血糖、静息心电图、运动性心绞痛、峰值运动ST段的斜率的患者之间的数据分布

Figure_36.pngFigure_37.pngFigure_38.pngFigure_39.pngFigure_40.pngFigure_41.png

十、缩放值并拆分为训练和测试批次

x = df.iloc[:, :-1].values
y = df.iloc[:, -1].valuesscaler = MinMaxScaler()
x = scaler.fit_transform(x)x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=42, test_size=0.2)

十一、模型

rfc = RandomForestClassifier()
gbc = GradientBoostingClassifier()
etc = ExtraTreesClassifier()
abc = AdaBoostClassifier()
lgr = LogisticRegression()
svc = SVC()
xgb = XGBClassifier()
lgb = LGBMClassifier()

十二、培训和评估

scores, reports, matrices = [], dict(), dict()for i, j in zip(models, names):score, report, matrix = training(i, j)scores += [score]reports[j] = reportmatrices[j] = matrix

image.png

dt = pd.DataFrame({"score": scores}, index=names)
fig, axes = plt.subplots()
dt = dt.sort_values("score", ascending=False)
dt["score"] = round(dt["score"], 2)
sns.barplot(x=dt.index, y=dt.iloc[:, 0], ax=axes)

Figure_42.png

fig, axes = plt.subplots(nrows=2, ncols=4, figsize=(11, 7))
index = 0for i in range(2):

Figure_43.png

for i in dt.index:print("*"*30)print(i)print(reports[i])print("\n\n")

image.png
image.png
image.png
image.pngimage.pngimage.pngimage.pngimage.png

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

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

相关文章

PVE虚拟机隐藏状态栏虚拟设备

虚拟机启动后&#xff0c;状态栏会出现一些虚拟设备&#xff0c;点击弹出会导致虚拟机无法使用。 解决方案&#xff1a; 1、在桌面新建disable_virtio_removale.bat文件&#xff0c;内容如下&#xff1a; ECHO OFF FOR /f %%A IN (reg query "HKLM\SYSTEM\CurrentContro…

低代码+定制物资管理:创新解决方案探析

引言 在当今快速变化的商业环境中&#xff0c;企业面临着不断增长的挑战&#xff0c;如提高效率、降低成本、满足客户需求等。为了应对这些挑战&#xff0c;企业需要不断创新并采用先进的技术解决方案。在这样的背景下&#xff0c;低代码开发和定制化物资管理成为了引领企业变…

Spark-机器学习(7)分类学习之决策树

在之前的文章中&#xff0c;我们学习了分类学习之支持向量机&#xff0c;并带来简单案例&#xff0c;学习用法。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢。…

selenium在Pycharm中结合python的基本使用、交互、无界面访问

下载 下载与浏览器匹配的浏览器驱动文件&#xff0c;这里一定注意的是&#xff0c;要选择和浏览器版本号相同的驱动程序&#xff0c;否则后面会有很多问题。 &#xff08;1&#xff09;浏览器&#xff08;以google为例&#xff09;版本号的查询&#xff1a; 我这里的版本号是1…

MySQL数据库安装——zip压缩包形式

安装压缩包zip形式的 MySQL 8数据库 一 、先进入官网下载 https://dev.mysql.com/downloads/mysql/ 二、解压到某个文件夹 我解压到了D:\mysql\mysql8 下面 然后在这个文件夹下手动创建 my.ini 文件和 data 文件夹 my.ini 内容如下&#xff1a; 注意 basedir 和 datadi…

vue做导入导出excel文档

系统中经常会遇到要实现批量导入/导出数据的功能&#xff0c;导入就需要先下载一个模板&#xff0c;然后在模板文件中填写内容&#xff0c;最后导入模板&#xff0c;导出就可能是下载一个excel文件。 1、导出 新建一个export.js文件如下&#xff1a; import {MessageBox,Mes…

文件摆渡:安全、高效的摆渡系统助力提升效率

很多组织和企业都会通过网络隔离的方式来保护内部的数据&#xff0c;网络隔离可以是物理隔离&#xff0c;也可以是逻辑隔离&#xff0c;如使用防火墙、VPN、DMZ等技术手段来实现&#xff0c;隔离之后还会去寻找文件摆渡方式&#xff0c;来保障日常的业务和经营需求。 进行网络隔…

线上社交app的搭建,圈子社交系统,小程序+app+H5三端,源码交付,支持二开!

在科技飞速发展的大背景下&#xff0c;年轻人社交不再局限于面对面&#xff0c;线上社交app已深入各大年轻人的手机中。相比于传统交友方式&#xff0c;线上社交app为用户提供了更加新奇的交友体验。同时&#xff0c;它还可以吸引更多的朋友&#xff0c;提高用户的整体交友体验…

Spring Boot整合Redisson的两种方式

项目场景 Spring Boot整合Redisson的两种方式&#xff0c;方式一直接使用yml配置&#xff0c;方式二创建RedissonConfig配置类。 前言 redisson和redis区别&#xff1a; Redis是一个开源的内存数据库&#xff0c;支持多种数据类型&#xff0c;如字符串、哈希、列表、集合和有序…

python-pytorch 如何使用python库Netron查看模型结构(以pytorch官网模型为例)0.9.2

Netron查看模型结构 参照模型安装Netron写netron代码运行查看结果需要关注的地方 2024年4月27日14:32:30----0.9.2 参照模型 以pytorch官网的tutorial为观察对象&#xff0c;链接是https://pytorch.org/tutorials/intermediate/char_rnn_classification_tutorial.html 模型代…

数码摄影色彩构成,数码相机色彩管理

一、资料描述 本套摄影色彩资料&#xff0c;大小58.54M&#xff0c;共有6个文件。 二、资料目录 《抽象彩色摄影集》.阿瑟.pdf 《色彩构成》.pdf 《色彩学》.星云.扫描版.pdf 《摄影色彩构成》.pdf 《数码相机色彩管理》.pdf 数码摄影进阶之4《色彩篇》.pdf 三、资料下…

Qt 把.exe打包成安装文件形式

目录 1.下载工具 Qt Installer Framework2.将bin文件添加到环境变量3.拷贝startmenu示例-备用4.准备Qt Release打包好的程序5.把Release打包好的程序放到packages\org.qtproject.ifw.example\data文件夹下6.生成安装包7.修改安装包图标8.修改主程序程序安装引导-创建快捷键9.添…

FFmpeg下载教程(Windows版)

文章目录 下载地址步骤 下载地址 https://ffmpeg.org/download.html 步骤

win c++使用lua环境配置 5.3.5版本

编译lua 下载lua源码&#xff0c;github仓库 使用vs编译源码&#xff0c;新建一个静态库项目(只会生成lib文件)&#xff0c;想要dll的话就新建dll项目&#xff08;有一个lib文件和dll文件&#xff09; 把lua源码下面的文件夹都是&#xff0c;复制到vs项目中 lib目录是我手动…

iOS - 多线程-读写安全

文章目录 iOS - 多线程-读写安全1. 多读单写1.1 场景1.2 实现方案1.2.1 pthread_rwlock&#xff1a;读写锁1.2.1.1 示例 1.2.2 dispatch_barrier_async&#xff1a;异步栅栏调用1.2.2.1 示例 iOS - 多线程-读写安全 假设有一个文件&#xff0c;A线程进行读取操作&#xff0c;B…

牛客社区帖子分页显示实现

下图是前端分页的组件&#xff1a; 下面是对应的静态html页面&#xff0c;每一个方块&#xff0c;都是一个a标签&#xff0c;可以点击&#xff0c;执行的链接是/community/index&#xff0c;GET请求&#xff0c;拼接的参数是current&#xff0c;也就是pageNum&#xff0c;只需…

ACE框架学习3

ACE Acceptor-Connector框架 该框架实现 Acceptor-Connector 模式&#xff0c;该模式解除了“网络化应用中的协作对端服务的连接和初始化”与“连接和初始化之后它们所执行的处理”的耦合。Acceptor-Connector 框架允许成用独立于它们所提供的服务来配置其连接布局的关键属性。…

【idea】idea 中 git 分支多个提交合并一个提交到新的分支

一、方法原理讲解 我们在 dev 分支对不同的代码文件做了多次提交。现在我们想要把这些提交都合并到 test 分支。首先我们要明白四个 git 操作&#xff0c; commit&#xff1a;命令用于将你的代码变更保存到本地代码仓库中&#xff0c;它创建了一个新的提交&#xff08;commit…

ubuntu 复制文件路径

前言 我打算搞一个ubuntu右键复制文件路径的插件&#xff0c;但是找不到&#xff0c;只能平替 这个配置&#xff0c;可以把文件拖拽到cmd窗口&#xff0c;然后就直接cmd输出文件路径 配置 cd ~ vim .bashrc 在文件结尾添加 cdd () { ddirname "$1"; echo …

通过filebeat实现对docker服务的通用日志收集

平台 依赖 linux docker docker-compose 或者 docker compose 镜像 docker.elastic.co/beats/filebeat:8.12.2 docker.elastic.co/beats/kibana:8.12.2 docker.elastic.co/beats/elasticsearch:8.12.2 正文 背景 对于有自建机房的公司来说&#xff0c;如果公司的运维技术…