深度学习毕设项目 医学大数据分析 - 心血管疾病分析

news/2025/3/21 18:37:46/

# 1 前言

🚩 基于大数据的心血管疾病分析

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:3分
  • 工作量:3分
  • 创新点:4分

1 课题背景

本项目的任务是利用患者的检查结果预测心血管疾病(CVD)的存在与否。

2 数据处理

数据集包括年龄、性别、收缩压、舒张压等12个特征的患者数据记录7万份。

当患者有心血管疾病时,目标类“cardio”等于1,如果患者健康,则为0。

数据描述

有三种类型的输入特征:

  • Objective: 客观事实;
  • Examination: 体检检查结果;
  • Subjective: 病人提供的信息

在这里插入图片描述
数据信息概览

import numpy as np
import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt
import osdf.head()

在这里插入图片描述
变量分析

df.info()

在这里插入图片描述
所有特征都是数字,12个整数和1个小数(权值)。第二列告诉我们数据集有多大,每个字段有多少非空值。
我们可以使用’ describe() ‘来显示每个属性的样本统计信息,比如’ min ‘、’ max ‘、’ mean ‘、’ std ':

评论

df.describe()

在这里插入图片描述
年龄以天为单位,身高以厘米为单位。
让我们看看数值变量以及它们是如何在目标类中分布的。
例如,什么年龄患有心血管疾病的人数超过没有心血管疾病的人数?

3 数据可视化

from matplotlib import rcParams
rcParams['figure.figsize'] = 11, 8
df['years'] = (df['age'] / 365).round().astype('int')
sns.countplot(x='years', hue='cardio', data = df, palette="Set2");

在这里插入图片描述
可以观察到55岁以上的人更容易得心血管疾病的。
从上面的表格中,我们可以看到ap_hi, ap_lo, weight 和height中有异常值。我们以后再处理。

让我们看看数据集中的分类变量及其分布:

df_categorical = df.loc[:,['cholesterol','gluc', 'smoke', 'alco', 'active']]
sns.countplot(x="variable", hue="value",data= pd.melt(df_categorical));

在这里插入图片描述

df_long = pd.melt(df, id_vars=['cardio'], value_vars=['cholesterol','gluc', 'smoke', 'alco', 'active'])
sns.catplot(x="variable", hue="value", col="cardio",data=df_long, kind="count");

在这里插入图片描述
可以清楚地看到,CVD患者的胆固醇和血糖水平较高。而且一般来说不太活跃,运动少。

为了计算“1”在性别栏中代表女性还是男性,让我们计算每个性别的身高平均值。我们假设男人平均比女人高。

corr = df.corr()
cmap = sns.diverging_palette(220, 10, as_cmap=True)
mask = np.zeros_like(corr, dtype=np.bool)
mask[np.triu_indices_from(mask)] = True# 设置matplotlib图
f, ax = plt.subplots(figsize=(11, 9))
# 画出热图,并校正长宽比
sns.heatmap(corr, mask=mask, cmap=cmap, vmax=.3, center=0,annot = True,square=True, linewidths=.5, cbar_kws={"shrink": .5});

在这里插入图片描述
我们可以看到年龄和胆固醇有显著的影响,但与目标阶层的相关性不是很高。

.
让我们创建violinplot来显示不同性别的身高分布。

查看每个性别特征值的身高和体重的平均值可能不足以决定1是男性还是女性。

import warnings
warnings.filterwarnings("ignore")
df_melt = pd.melt(frame=df, value_vars=['height'], id_vars=['gender'])
plt.figure(figsize=(12, 10))
ax = sns.violinplot(x='variable', y='value', hue='gender', split=True, data=df_melt, scale='count',scale_hue=False,palette="Set2");

在这里插入图片描述
让我们创造一个新的特征-身体质量指数(BMI):

在这里插入图片描述
比较健康人的平均BMI和病人的平均BMI。正常的BMI值在18.5到25之间。

df['BMI'] = df['weight']/((df['height']/100)**2)
sns.catplot(x="gender", y="BMI", hue="alco", col="cardio", data=df, color = "yellow",kind="box", height=10, aspect=.7);

在这里插入图片描述
根据女性的BMI,喝酒的女性比喝酒的男性有更高的心血管疾病风险。

4 最后

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

相关文章

PyMuPDF---Python处理PDF的宝藏库详解

1、PyMuPDF简介 1.1 介绍 在介绍PyMuPDF之前,先来了解一下MuPDF,从命名形式中就可以看出,PyMuPDF是MuPDF的Python接口形式。 MuPDF MuPDF 是一个轻量级的 PDF、XPS和电子书查看器。MuPDF 由软件库、命令行工具和各种平台的查看器组成。 …

【网络奇遇之旅】:那年我与计算机网络的初相遇

🎥 屿小夏 : 个人主页 🔥个人专栏 : 计算机网络 🌄 莫道桑榆晚,为霞尚满天! 文章目录 一. 前言二. 计算机网络的定义三. 计算机网络的功能3.1 资源共享3.2 通信功能3.3 其他功能 四. 计算机网络…

【人生苦短,我学 Python】(3)Python 常用内置数据类型 I —— 数值数据类型(int、float、complex、bool)

目录 简述 / 前言1. int 类型1.1 创建int对象1.2 整数的运算 2. float 类型2.1 创建float对象 3. complex 类型3.1 创建 complex 对象3.2 complex对象属性和方法3.3 cmath 模块中复数运算 4. bool数据类型和相关运算符4.1 bool 对象 文章传送门 简述 / 前言 前面主要了解了 Py…

「Linux」进程等待与替换

💻文章目录 📄前言进程等待进程等待的概念进程等待的方法 进程替换进程替换的概念替换方式 📓总结 📄前言 在如今的时代,多进程编程已经变成了必不可少的一部分,而进程等待、进程替换这两个概念都是作为多进…

calendar --- 日历相关函数

calendar --- 日历相关函数 源代码: Lib/calendar.py 这个模块让你可以输出像 Unix cal 那样的日历,它还提供了其它与日历相关的实用函数。 默认情况下,这些日历把星期一作为一周的第一天,星期天作为一周的最后一天(这…

vuepress-----4、侧边栏

# 4、侧边栏 # 自动生成侧栏 如果你希望自动生成一个仅仅包含了当前页面标题(headers)链接的侧边栏,你可以通过 YAML front matter 来实现: --- sidebar: auto ---你也可以通过配置来在所有页面中启用它: // .vuep…

解决antd upload自定义上传customRequest,上传时一直loading加载的问题

问题&#xff1a;antd自定义上传customRequest时&#xff0c;无法正常显示上传成功状态&#xff0c;一直在上传的loading状态中。 查看customRequest参数 解决方法&#xff1a;调用onSuccess事件&#xff0c;解决loading一直加载的问题。 <template><a-uploadref&q…

查看mysql 或SQL server 的连接数,mysql超时、最大连接数配置

1、mysql 的连接数 1.1、最大可连接数 show variables like max_connections; 1.2、运行中连接数 show status like Threads_connected; 1.3、配置最大连接数&#xff0c; mysql版本不同可配置的最大连接数不同&#xff0c;mysql8.0的版本默认151个连接数&#xff0c;…