深度学习-第R1周心脏病预测( 二 )


= sc.():将测试集中的特征数据使用之前计算得到的训练集的均值和标准差进行标准化处理 。这里使用的是方法,它会使用已经计算得到的均值和标准差来对测试集进行标准化,确保测试集的特征也符合与训练集相同的标准正态分布 。
= .(.shape[0], .shape[1], 1): 这行代码对训练集进行了维度调整 。有些机器学习模型,尤其是深度学习模型,可能对输入的维度有特定要求 。在这里,将的维度从原本的 (样本数量, 特征数量) 调整为 (样本数量, 特征数量, 1) 。这样的维度调整通常用于一维卷积神经网络 (1D) 模型中,其中 1 表示每个特征现在具有 1 个维度 。
= .(.shape[0], .shape[1], 1): 这行代码对测试集进行了与训练集相同的维度调整,以保持输入维度的一致性 。
二、构建RNN模型: 实验代码:
import tensorflowfrom tensorflow.keras.models import Sequentialfrom tensorflow.keras.layers import Dense,LSTM,SimpleRNNmodel = Sequential()model.add(SimpleRNN(200,input_shape=(13,1),activation = 'relu'))model.add(Dense(100, activation = 'relu'))model.add(Dense(1,activation = 'sigmoid'))model.summary()
model.add((200,=(13,1), = 'relu'))代码中=(13,1)的输入过程为:
输入1: [样本1的特征1]
[样本2的特征1]
[样本3的特征1]
...
[样本13的特征1]
输入2: [样本14的特征1]
[样本15的特征1]
[样本16的特征1]
...
[样本26的特征1]
输入3: [样本27的特征1]
[样本28的特征1]
[样本29的特征1]
...
[样本39的特征1]

直至270*13个特征全部输入完毕后输入过程结束
整个训练过程流程
训练数据 (, )

前向传播

输入层 (Input Layer)层Dense层Dense层
(输入数据的形状为 (13,1))(200个神经元)(100个神经元)(1个神经元)
↓↓↓↓
──────────────? ─────────────? ───────────? ──────────?
↓↓↓↓
↘ (包含权重)↘ (包含权重)↘ (包含权重)↘ (包含权重)
计算损失

反向传播

优化器更新权重

循环以上过程 (多次Epoch)
运行结果:
三、编译
opt = tf.keras.optimizers.Adam(learning_rate = 1e-4)model.compile(loss = 'binary_crossentropy',optimizer = opt,metrics = "accuracy")
1. opt = tf.keras..Adam( = 1e-4):
Adam 是一种常用的梯度下降优化算法,它在深度学习中广泛使用 。= 1e-4是指定的学习率,用于控制参数更新的步长,即每次迭代中参数更新的幅度 。
2. pile(loss = '',= opt,= ""):
为训练过程指定损失函数、优化器和评估指标 。
loss = ':
代码指定了损失函数,该模型使用二分类问题的交叉熵(Cross )作为损失函数 。在二分类问题中,交叉熵是常见的损失函数之一,用于度量模型输出与实际标签之间的差异 。
= opt:
【深度学习-第R1周心脏病预测】代码指定了优化器,将之前创建的 Adam 优化器 `opt` 赋值给了模型的优化器 。模型在训练过程中将使用 Adam 优化器来自动调整参数以最小化损失函数 。
= "":
代码指定了评估指标,模型在训练过程中将计算并输出准确率()作为评估指标 。准确率是衡量模型分类性能的常用指标,它表示模型在预测时正确分类的样本比例 。
四、模型训练 实验代码:
epochs = 100history = model.fit(X_train,y_train,epochs = epochs,batch_size = 128,validation_data = http://www.kingceram.com/post/(X_test,y_test),verbose = 1)