炮炮寻找数据集的坎坷之路2——UCI数据集Heart Disease

博客介绍了基于UCI Heart Disease数据集,利用深度学习构建心血管疾病预测模型的过程。内容包括数据预处理,如处理缺失值和转换特征,以及构建基于卷积神经网络(CNN)、RNN和LSTM的模型。讨论了训练集和测试集划分对模型性能的影响,以及模型优化策略,如调整学习率和防止过拟合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、数据集

 

在阅读心血管疾病相关的论文中,发现以下论文中所使用的公开数据集,因此选用此数据集来进行复现,以及在复现的基础上实现突破

参考论文:心血管疾病预测模型的研究_朱宵彤心血管疾病预测模型的研究 - 中国知网

数据集来源:

本论文中用到的数据集取自UCI机器学习数据库https://archive.ics.uci.edu/ml/datasets.php)中的用于心血管疾病预测的Heart Disease数据集UCI Machine Learning Repository

Heart disease数据集下载地址:UCI Machine Learning Repository

数据集的预处理

以该数据集为例进行实验:processed.cleveland.csv

参考:http://t.csdn.cn/doUMJ

  1. 查看原始数据的维度【数据的维度是(302,14)】


# 查看原始数据的维度,原始数据集是.data文件
import pandas as pd
data=pd.read_csv('data/processed.cleveland.data')
print(data.shape)
print(data.head())
  1. 把data文件转为 csv文件并加上表头


import pandas as pd
#读取data文件,指定属性
data=pd.read_table('data/processed.cleveland.data',names=['age','sex','cp','trestbps','chol','fbs','restecg','thalach','exang','oldpeak','slope','ca','thal','target'],sep=',')
#生成csv文件
data.to_csv('data/processed.cleveland.csv',index=False)
  1. 对csv文件进行分析

对某列数据进行处理参考内容:http://t.csdn.cn/jF9g5

缺失值的处理:对存在的'?'进行处理(还需进一步的学习,而不是删除后再处理

缺失值的处理有多种方式,这里采取的是删除缺失值所在的行论文中对缺失值的处理为:

缺失值填充 对于缺失的特征属性有4种解决方案:使用缺失值所在数据之外的同一属性平均值来进行填充;使用其他数据库相似样本的平均值填充;使用算法来生成数据;舍弃带有缺失属性的样本。考虑到原始数据样本数量有限,故选择第一种方案,使用其他数据的同一属性均值填充。而对于缺失标签属性的数据,由于标签代表着最终的结果,与其他属性不同,所以无法对其进行填充,本文中对于这类数据选择直接舍弃。

将thal指标用0,1, 2替换,target指标用0 ,1(1 2 3 4)替换,方便做二分类
数据预处理过程代码实现

# 数据分析
import pandas as pd
import ydata_profiling
df=pd.read_csv('processed.cleveland.csv')
print(df.head())
#(303,14)增加了一行表头
print(df.shape)
# 查看数据集的基本信息
# print(df.info())

# 查看缺失值,然后显示都没有缺失值,但是问号要处理掉,所以手动打开了文件把?删除,再查看缺失值就存在了
# 处理后的文件保存为data/processed.cleveland.csv
# print(df.isnull())
print(df.isnull().any())

# 删除缺失值所在的行
# df.dropna(axis=0)

#指标的替换
df=df.replace({"thal":{3.0:0,6.0:1,7.0:2}})
df=df.replace({"target":{2:1,3:1,4:1}})
#查看
print(df.head())
df.isnull().any()
df=df.dropna()
# 数据预览分析
ydata_profiling.ProfileReport(df)
数据预览分析详细说明
  • age-年龄

后续可以筛选>=50的age,进行老年人慢性病的预测

  • sex-性别 (1 =男性; 0 =女性)

男:女=206:97

  • cp-胸痛类型(4个值,值1:典型的心绞痛,值2:非典型心绞痛,值3:非心绞痛,值4:无症状)

  • trestbps-患者入院时的静息血压(单位:mm Hg)(单位:mm Hg)

  • chol-血清胆固醇水平(单位:mg / dl)

  • fbs-空腹血糖(> 120 mg / dl ,1=真;0=假)

  • restecg-静息心电图结果(值0:正常,值1:有ST-T波异常(T波倒置和/或ST升高或降低> 0.05 mV),值2:根据Estes的标准显示可能或确定的左心室肥大)

  • thalach-达到的最大心率

  • exang-运动引起的心绞痛(1 =是; 0 =否)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大炮不想学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值