Python 糖尿病预测 – 简单指南

嘿伙计!在本教程中,我们将学习如何使用 Keras 的深度学习 API 在 Python 中使用深度学习技术构建糖尿病预测。

用 Python 实现糖尿病预测

为此,我们将利用可用的数据集,并构建深度神经网络架构。该数据集可在此处下载。

下载数据集后你可以研究一下,你会发现它被分成0和1。让我们继续使用 TensorFlow 和 Keras 在 Python 中实现我们的模型。

我希望您已经在本地系统上安装了所有库。如果没有,不用担心,你可以打开 Google Colab 和我一起练习本课。


第 1 步 – 导入模块

现在,让我们将必要的 Python 库导入到我们的笔记本中。

Keras API 已经包含 Python 的 TensorFlow 深度学习包,这对于糖尿病预测挑战至关重要。

1
2
3
4
5
6
7
8
9
import numpy as np
import pandas as pd
import tensorflow as tf
from keras.layers import Dense,Dropout
from sklearn.model_selection import train_test_split
import matplotlib as mlp
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.preprocessing import StandardScaler

第 2 步 – 加载数据集

我们现在准备开始导入数据集。在下一段代码中,我们导入数据集并使用 head() 方法获取前五个数据点。

1
2
data=pd.read_csv("pima-indians-diabetes.csv")
data.head()
糖尿病数据集 Top5

步骤 3 – 重命名列

您可能已经意识到这些列毫无意义,对吧?现在让我们重命名列名称。

另请阅读:Pandas 中的 head()

1
2
3
4
5
6
7
8
9
10
11
data = data.rename(index=str, columns={"6":"preg"})
data = data.rename(index=str, columns={"148":"gluco"})
data = data.rename(index=str, columns={"72":"bp"})
data = data.rename(index=str, columns={"35":"stinmm"})
data = data.rename(index=str, columns={"0":"insulin"})
data = data.rename(index=str, columns={"33.6":"mass"})
data =data.rename(index=str, columns={"0.627":"dpf"})
data = data.rename(index=str, columns={"50":"age"})
data = data.rename(index=str, columns={"1":"target"})
 
data.head()
重命名列糖尿病数据集 Top5

步骤 4 – 分离输入和输出

1
2
X = data.iloc[:, :-1]
Y = data.iloc[:,8]

X 和 Y 值看起来有点像这样:

输入 N 输出 糖尿病数据集

我们将数据集分为输入数据集和目标数据集,这意味着前八列将用作模型的输入特征,最后一列将用作目标类。

步骤 5 – 数据的训练-测试分割

下一步涉及将训练和测试分成数据,然后标准化数据以使稍后的计算更简单。

1
2
X_train_full, X_test, y_train_full, y_test = train_test_split(X, Y, random_state=42)
X_train, X_valid, y_train, y_valid = train_test_split(X_train_full, y_train_full, random_state=42)
1
2
3
4
5
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_valid = scaler.transform(X_valid)
X_test = scaler.transform(X_test)

第 6 步 – 构建模型

我们首先使用随机种子生成伪随机数并将其设置到tf graph然后,我们将使用顺序模型,并在模型中使用一些 dropout 层,以避免数据过度拟合。

1
2
3
4
5
6
7
8
9
np.random.seed(42)
tf.random.set_seed(42)
 
model=Sequential()
model.add(Dense(15,input_dim=8, activation='relu'))
model.add(Dense(10,activation='relu'))
model.add(Dense(8,activation='relu'))
model.add(Dropout(0.25))
model.add(Dense(1, activation='sigmoid'))

第 7 步 – 模型的训练和测试

现在,让我们继续训练我们的模型,然后将模型拟合到测试数据集上。

1
2
model.compile(loss="binary_crossentropy", optimizer="SGD", metrics=['accuracy'])
model_history = model.fit(X_train, y_train, epochs=200, validation_data=(X_valid, y_valid))

您将意识到,将训练模型 200 个 epoch,并使用二元交叉熵损失函数和 SGD 优化器。


结论

恭喜!您刚刚学习了如何使用 Python 编程语言构建糖尿病预测器。希望你喜欢它!😇

喜欢该教程吗?无论如何,我建议您查看下面提到的教程:

  1. 使用 Python 预测股票价格
  2. 使用 Python 进行加密货币价格预测
  3. 使用 Python 预测股票价格
  4. Python 票房收入预测——简单的实现

感谢您抽出宝贵时间!希望你学到新东西!😄