python数据分析-心脏衰竭分析与预测

研究背景

人的心脏有四个瓣膜,主动脉银、二尖、肺动脉和三尖源 不管是那一个膜发生了病变,都会导致心脏内的血流受到影响,这就是通常所说的心脏期膜病,很多是需要通过手术的方式进行改善的。随着人口老龄化的加剧,,心脏期膜病是我国最常见的心血管疾病之-,需要接受心脏瓣膜手术治疗的患者数量逐年拳升。心脏期膜手术是对病变的心脏辨膜所进行的外科手术,一般包括心脏期的置换和修复手术,心期手术是在外科技术的基础上,对病变的心脏期膜所进行的手术,可以改善患者心脏期聘狭窄或关闭不全的现象。不过心脏瓣膜病手术可能会引发机械瓣并发症,导致心功能变差,严重的还会直接造成患者死亡。

实验分析

首先导入基本的数据分析包

# import data handling libs

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns


# import models

from sklearn.linear_model import LinearRegression, LogisticRegression
from sklearn.svm  import SVC
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import confusion_matrix, classification_report, accuracy_score
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier

import warnings
warnings.filterwarnings('ignore')

读取数据

# Importing dataset

df = pd.read_csv('dataset.csv')

展示数据集和结构

df.head()
rows, columns = df.shape

print(f"Number Of Rows : {rows}")
print(f"Number Of Columns : {columns}")

 

数据集特征结构

df.info()

描述性分析

df.describe()

查看每列的唯一值的数量 

df.nunique()

查看下相关系数并且画出热力图

plt.figure(figsize=(10, 8))
corr = df.corr()
sns.heatmap(corr, annot=True, cmap='Blues')

 查看缺失值

df.isnull().sum()

 接下来进行特征选择

plt.rcParams['figure.figsize']=15,6 
sns.set_style("darkgrid")

x = df.iloc[:, :-1]
y = df.iloc[:,-1]

from sklearn.ensemble import ExtraTreesClassifier
import matplotlib.pyplot as plt
model = ExtraTreesClassifier()
model.fit(x,y)
print(model.feature_importances_) 
feat_importances = pd.Series(model.feature_importances_, index=x.columns)
feat_importances.nlargest(12).plot(kind='barh', color='teal')
plt.show()

检查一下离群值

sns.boxplot(x = df.ejection_fraction, color='teal')
plt.show()

 

可以发现有两个离群值

接下来对特征进行可视化 

# Distribution of Age

import plotly.graph_objects as go

fig = go.Figure()
fig.add_trace(go.Histogram(
    x = df['age'],
    xbins=dict( # bins used for histogram
        start=40,
        end=95,
        size=2
    ),
    marker_color='#e8ab60',
    opacity=1
))

fig.update_layout(
    title_text='AGE DISTRIBUTION',
    xaxis_title_text='AGE',
    yaxis_title_text='COUNT', 
    bargap=0.05, # gap between bars of adjacent location coordinates
    xaxis =  {'showgrid': False },
    yaxis = {'showgrid': False },
    template = 'plotly_dark'
)

fig.show()

 

plt.style.use("seaborn")
for column in df.columns:
    if df[column].dtype!="object":
        plt.figure(figsize=(15,6))
        plt.subplot(2,2,1)
        sns.histplot(data=df,x=column,kde=True)
        plt.ylabel("freq")
        plt.xlabel(column)
        plt.title(f"distribution of {column}")
        plt.subplot(2,2,2)
        sns.boxplot(data=df,x=column)
        plt.ylabel(column)
        plt.title(f"boxplot of {column}")
        plt.show()

 

 接下来进行机器学习预测,划分训练集和测试集

逻辑回归

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()

x = scaler.fit_transform(x)
y = scaler.fit_transform(y.values.reshape(-1,1))
model = LogisticRegression()
model.fit(x_train, y_train)
y_pred = model.predict(x_test)
print(classification_report(y_test,y_pred))

决策树

支持向量机

plt.rcParams['figure.figsize']=15,6 
sns.set_style("darkgrid")
ax = sns.barplot(x=mylist2, y=mylist, palette = "rocket", saturation =1.5)
plt.xlabel("Classifier Models", fontsize = 20 )
plt.ylabel("% of Accuracy", fontsize = 20)
plt.title("Accuracy of different Classifier Models", fontsize = 20)
plt.xticks(fontsize = 12, horizontalalignment = 'center', rotation = 8)
plt.yticks(fontsize = 13)
for p in ax.patches:
    width, height = p.get_width(), p.get_height()
    x, y = p.get_xy() 
    ax.annotate(f'{height:.2%}', (x + width/2, y + height*1.02), ha='center', fontsize = 'x-large')
plt.show()

 

完整代码和数据

创作不易,希望大家多点赞关注评论!!! 

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

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

相关文章

Centos7 安装配置SFTP

Centos7安装配置SFTP 更新源安装 OpenSSH 服务启动服务设置为开机自启动新建一个用户 (sftpuser为你要设置的用户的用户名)编辑配置文件设置sftp用户的根目录重启SSH服务代码实现 由于最近工作中需要实现动态上传文件到帆软服务器,但是帆软没有提供相关API&#xff…

SAP 服务提供者 (Services Provider)接口测试笔记

文章目录 SAP 服务提供者 (Services Provider)接口测试笔记设置Content-Type授权SAP接口测试-SoapUI参数配置 SAP 服务提供者 (Services Provider)接口测试笔记 现在我在SAP里面公布了一些查询接口,现在就是要用SoapU…

JVM面试基本问题整理

文章目录 1、说下对JVM内存模型的理解2、运行时常量池的位置3、常量池和运行时常量池的区别4、内存溢出和内存泄漏5、Java 对象大小计算6、GCROOT都有什么7、常用的JVM启动参数有哪些8、TLAB 1、说下对JVM内存模型的理解 1)线程私有区域 程序计数器(Pro…

转让无区域商业管理公司挺批行业包变更

无区域的名称我们可以直接进行名称的申请核准。 从新规施行之后,国家局核名批准难度更高。新申请的无区域名称已经停批了,进行核名将更难,而需要满足一定条件并在成立一年后才能变更升级名称。而这个过程并非易事,难度非常高。可以…

微信小程序 画布canvas

属性说明 属性类型默认值必填说明最低版本typestring否指定 canvas 类型,支持 2d (2.9.0) 和 webgl (2.7.0)2.7.0canvas-idstring否canvas 组件的唯一标识符,若指定了 type 则无需再指定该属性1.0.0disable-scrollbooleanfalse否当在 canvas 中移动时且…

第二十讲:文件操作

第二十讲:文件操作 1.什么是文件1.1什么是文件1.1.1程序文件1.1.2数据文件 1.2二进制文件和文本文件数据的存储方式 2.流和标准流2.1流2.2标准流 3.文件指针4.文件的打开与关闭5.文件顺序读写5.1顺序读写函数介绍5.2打开和关闭函数5.2.1fopen函数5.2.2fclose函数 5.…

U盘文件系统结构损坏的应对与预防

在数字化时代,U盘作为便携式存储设备,其重要性不言而喻。然而,当U盘文件系统结构损坏时,我们可能会面临数据丢失的风险。本文将深入探讨U盘文件系统结构损坏的问题,分析其产生的原因,并给出相应的数据恢复方…

零基础入门学用Arduino 第一部分(三)

重要的内容写在前面: 该系列是以up主太极创客的零基础入门学用Arduino教程为基础制作的学习笔记。个人把这个教程学完之后,整体感觉是很好的,如果有条件的可以先学习一些相关课程,学起来会更加轻松,相关课程有数字电路…

深度学习:如何静悄悄地改变我们的日常生活

深度学习 深度学习:如何静悄悄地改变我们的日常生活一、消费电子产品智能手机与个人助理娱乐与社交媒体 二、医疗健康三、汽车与交通四、公共安全五、总结 深度学习:如何静悄悄地改变我们的日常生活 在近年来,深度学习技术因其强大的数据处理…

GO语言 服务发现概述

https://zhuanlan.zhihu.com/p/32027014 明明白白的聊一下什么是服务发现-CSDN博客 一、服务发现 是什么 在传统的系统部署中,服务运行在一个固定的已知的 IP 和端口上,如果一个服务需要调用另外一个服务,可以通过地址直接调用。 但是&…

linux本地搭建dns

不需要图形化界面 使用的是dnsmasq,配置简单 1.安装 deb系列linux apt-get install dnsmasqrhat系列linux yum install dnsmasq2.编辑配置文件 vi /etc/dnsmasq.conf设置主dns服务器,比如现有公用的的114.114.114.114 8.8.8.8这类的 server8.8.8.8…

IEDA集成依赖概述

IEDA集成依赖概述 目录概述需求: 设计思路实现思路分析1.NoSQL Spring Data Redis (AccessDriver)Spring Data Reactive RedisSpring Data MongoDBSpring Data Reactive MongoDBSpring Data for Apache CassandraSpring Data Reactive for Apache CassandraSpring D…

传统工科硕士想转嵌入式,时间够吗?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 零基础开始学&#xff0…

ArcGIS for js 4.x 加载图层

二维&#xff1a; 1、创建vue项目 npm create vitelatest 2、安装ArcGIS JS API依赖包 npm install arcgis/core 3、引入ArcGIS API for JavaScript模块 <script setup> import "arcgis/core/assets/esri/themes/light/main.css"; import Map from arcgis…

本地运行feishu-chatgpt项目结合内网穿透实现无公网IP远程访问

文章目录 前言环境列表1.飞书设置2.克隆feishu-chatgpt项目3.配置config.yaml文件4.运行feishu-chatgpt项目5.安装cpolar内网穿透6.固定公网地址7.机器人权限配置8.创建版本9.创建测试企业10. 机器人测试 前言 本文主要介绍如何在飞书中创建chatGPT机器人并且结合内网穿透工具…

Git+Gitlab 远程库测试学习

Git远程仓库 1、Git远程仓库 何搭建Git远程仓库呢&#xff1f;我们可以借助互联网上提供的一些代码托管服务来实现 Gitee 码云是国内的一个代码托管平台&#xff0c;由于服务器在国内&#xff0c;所以相比于GitHub&#xff0c;码云速度会更快 码云 Gitee - 基于 Git 的代码托…

3D39无人机摇杆电位器食用指南

这个摇杆精度会非常的不错&#xff0c;虚位只在后面有一点&#xff0c;当然价格也比较贵。最便宜某宝上也得 &#xffe5;15 一个。 使用这个摇杆和使用2块钱一个的 PS 写的代码都一样&#xff0c;只是注意下接线上的一些问题就行。 需要注意两个ADC引脚最好不要挨着&#xf…

RK3568笔记三十:PP-ORCv3自训练部署

若该文为原创文章&#xff0c;转载请注明原文出处。 一、介绍 PP-OCR 是百度公布并开源的OCR领域算法&#xff0c;一个轻量级的OCR系统&#xff0c;在实现前沿算法的基础上&#xff0c;考虑精度与速度的平衡&#xff0c; 进行模型瘦身和深度优化&#xff0c;使其尽可能满足产业…

九家大模型“决战”高考!AI作文哪家强?阅卷名师点评来了!

2024.06.07 本文字数&#xff1a;12474&#xff0c;阅读时长大约21分钟 导读&#xff1a;语文老师对AI作文的评价是&#xff0c;“中规中矩&#xff0c;没有‘血肉’&#xff0c;缺一点情感和灵气。” 作者 | 第一财经 刘晓洁 冯小芯 马一凡 吕倩 又到一年高考季&#xff0c;…

单元测试覆盖率

什么是单元测试覆盖率 关于其定义&#xff0c;先来看一下维基百科上的一段描述&#xff1a; 代码覆盖&#xff08;Code coverage&#xff09;是软件测试中的一种度量&#xff0c;描述程序中源代码被测试的比例和程度&#xff0c;所得比例称为代码覆盖率。 简单来理解&#xff…