- 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
- 🍖 原作者:K同学啊
一、实验目的:
学习使用LSTM对糖尿病进行探索预测
二、实验环境:
- 语言环境:python 3.8
- 编译器:Jupyter notebook
- 深度学习环境:Pytorch
- torch==2.4.0+cu124
- torchvision==0.19.0+cu124
三、数据预处理
逻辑回归在二分类问题中应用广泛;KNN(K 近邻算法)、SVM(支持向量机)、决策树、贝叶斯分类器、随机森林和 XGBoost(极端梯度提升树)都是常见的用于结构化数据分类的算法。
本次实验我们采用 LSTM(长短期记忆网络)进行分类预测。LSTM 主要用于处理序列数据,虽然在一些特定情况下可以对序列数据进行分类,但对于一般的二维结构化数据,上述提到的传统分类算法通常更加合适。二维结构化数据通常指表格形式的数据,每一行代表一个样本,每一列代表一个特征,对于这类数据,传统的机器学习分类算法在计算效率和可解释性方面往往具有优势。
1. 设置GPU、导入数据
#设置GPU
import torch.nn as nn
import torch.nn.functional as F
import torchvision,torch
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
device
#导入数据
import numpy as np
import pandas as pd
import seaborn as sns
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
plt.rcParams['savefig.dpi'] = 500 #图片像素
plt.rcParams['figure.dpi'] = 500 #分辨率
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
import warnings
warnings.filterwarnings('ignore')
DataFrame = pd.read_excel('diabetes.xls')
DataFrame.head()
DataFrame.shape
(1006, 16)
2. 数据检查
#查看数据是否有缺失值
print('数据缺失值--------------------------')
print(DataFrame.isnull().sum())
#查看数据是否有重复值
print('数据重复值--------------------------')
print('数据集的重复值为:'f'{
DataFrame.duplicated().sum()}')
3. 数据分布分析
feature_map = {
'年龄': '年龄',
'高密度脂蛋白胆固醇': '高密度脂蛋白胆固醇',
'低密度脂蛋白胆固醇': '低密度脂蛋白胆固醇',
'极低密度脂蛋白胆固醇': '极低密度脂蛋白胆固醇',
'甘油三酯': '甘油三酯',
'总胆固醇': '总胆固醇',
'脉搏': '脉搏',
'舒张压':'舒张压',
'高血压史':'高血压史',
'尿素氮':'尿素氮'