嘿伙计!在本教程中,我们将学习如何使用 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() |
步骤 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() |
步骤 4 – 分离输入和输出
1
2
|
X = data.iloc[:, : - 1 ] Y = data.iloc[:, 8 ] |
X 和 Y 值看起来有点像这样:
我们将数据集分为输入数据集和目标数据集,这意味着前八列将用作模型的输入特征,最后一列将用作目标类。
步骤 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 编程语言构建糖尿病预测器。希望你喜欢它!😇
喜欢该教程吗?无论如何,我建议您查看下面提到的教程:
感谢您抽出宝贵时间!希望你学到新东西!😄