【深度学习——RNN心脏病预测】

本文为365天深度学习训练营中的学习记录博客
参考文章:深度学习100例-循环神经网络(RNN)心脏病预测
原作者:K同学啊|接辅导、项目定制

  • 难度:新手入门⭐

要求:

  1. 本地读取并加载数据。
  2. 了解循环神经网络(RNN)的构建过程
  3. 测试集accuracy到达87%

拔高:

  • 测试集accuracy到达89%

我的环境:

  • 语言环境:Python3.7
  • 编译器:Spyder
  • 深度学习框架:TensorFlow2.4.1
  • 数据地址:百度网盘

代码流程图如下所示:
【深度学习——RNN心脏病预测】_第1张图片

一、前期准备

1、设置GRU

在实际应用中,大规模的RNN模型通常需要大量的训练时间才能收敛,而GPU可以大大减少训练时间并提高学习效率。此外,GPU还能够在部署和推理阶段中提高RNN模型的速度和性能,因为GPU对于较大的并行计算具有天然的优势。

import tensorflow as tf

gpus=tf.config.list_physical_devices("GPU")

if gpus:
    gpu0=gpus[0] # 如果有多个GPU,仅使用第0个GPU
    tf.config.experimental.set_memory_growth(gpu0, True)# 设置GPU显存用量按需使用
    tf.config.set_visible_devices([gpu0],"GPU")
    
print(gpus)

2、导入数据

下面是对数据的介绍:

age:1) 年龄
sex:2) 性别
cp:3) 胸痛类型 (4 values)
trestbps:4) 静息血压
chol:5) 血清胆甾醇 (mg/dl
fbs:6) 空腹血糖 > 120 mg/dl
restecg:7) 静息心电图结果 (值 0,1 ,2)
thalach:8) 达到的最大心率
exang:9) 运动诱发的心绞痛
oldpeak:10) 相对于静止状态,运动引起的ST段压低
slope:11) 运动峰值 ST 段的斜率
ca:12) 荧光透视着色的主要血管数量 (0-3)
thal:13) 0 = 正常;1 = 固定缺陷;2 = 可逆转的缺陷
target:14) 0 = 心脏病发作的几率较小 1 = 心脏病发作的几率更大

读取数据

import pandas as pd
import numpy as np

df=pd.read_csv("D:/桌面/深度学习数据/heart.csv")

print(df)

【深度学习——RNN心脏病预测】_第2张图片

3、检查数据是否有空值

print(df.isnull().sum())

【深度学习——RNN心脏病预测】_第3张图片
由结果可知每个数据空值的个数为0,数据正常。

二、数据预处理

1、划分训练集和测试集

训练集、验证集和测试集之间的关系:
在机器学习中,通常将数据集划分为三个部分:训练集、验证集和测试集。训练集用于在模型训练期间进行模型参数的调整,而验证集则用于选择模型,并根据验证集结果进行超参数调整,最后,测试集用于评估模型在未知数据上的性能。验证集和测试集是相互独立的数据集,在进行模型选择和超参数调整时,它们起着不同的作用。

from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split

X=df.iloc[:,:-1

你可能感兴趣的:(深度学习,rnn,人工智能)