Python 数据集划分与深度学习模型训练示例
Python 数据集划分与深度学习模型训练示例
本示例展示如何使用 Python 对数据集进行划分,并使用 Keras 构建一个简单的神经网络模型进行训练和评估。
数据集划分
首先,使用 train_test_split 函数将原始数据集划分为训练集和测试集:
X_train, X_test, y_train, y_test = train_test_split(source_X , source_y, train_size=.8)
其中:
source_X:原始数据集的特征source_y:原始数据集的标签train_size:训练集所占比例
输出数据集大小:
print ('原始数据集特征:',source_X.shape, '训练数据集特征:',X_train.shape , '测试数据集特征:',X_test.shape)
print ('原始数据集标签:',source_y.shape, '训练数据集标签:',y_train.shape , '测试数据集标签:',y_test.shape)
例如:
原始数据集特征: (1179, 11) 训练数据集特征: (943, 11) 测试数据集特征: (236, 11)
原始数据集标签: (1179,) 训练数据集标签: (943,) 测试数据集标签: (236,)
深度学习模型训练
以下是一个使用 Keras 构建简单神经网络模型的示例:
from keras.models import Sequential
from keras.layers import Dense
# 定义模型
model = Sequential()
model.add(Dense(units=64, activation='relu', input_dim=11))
model.add(Dense(units=1, activation='sigmoid'))
# 编译模型
model.compile(loss='binary_crossentropy',
optimizer='sgd',
metrics=['accuracy'])
# 训练模型
history = model.fit(X_train, y_train,
epochs=50,
batch_size=32,
validation_data=(X_test, y_test))
# 评估模型
score = model.evaluate(X_test, y_test, batch_size=128)
print('Test loss:', score[0])
print('Test accuracy:', score[1])
模型解释:
- 使用
Sequential类定义模型,该模型包含一个具有 64 个神经元的隐藏层和一个输出层,输出层使用 sigmoid 函数。 - 使用
binary_crossentropy作为损失函数,使用随机梯度下降法 (sgd) 作为优化器。 - 在训练过程中,将数据按批次处理,每个批次包含 32 个样本,共迭代 50 次。
- 使用验证集进行验证,评估模型的准确性。
- 最后,评估模型在测试集上的表现。
其他深度学习模型
除了上述示例中的简单神经网络模型,还可以使用其他深度学习模型,例如:
- 卷积神经网络 (CNN)
- 循环神经网络 (RNN)
- 长短期记忆网络 (LSTM)
具体选择哪种模型取决于您的数据集和任务。
可视化显示
可以使用 Python 的绘图库(例如 matplotlib)对模型训练过程中的损失、准确率等指标进行可视化显示。
代码内容
# ... 上述代码 ...
# 可视化显示
import matplotlib.pyplot as plt
# 绘制训练集和验证集上的损失曲线
plt.plot(history.history['loss'], label='训练集损失')
plt.plot(history.history['val_loss'], label='验证集损失')
plt.xlabel('Epoch')
plt.ylabel('损失')
plt.legend()
plt.show()
# 绘制训练集和验证集上的准确率曲线
plt.plot(history.history['accuracy'], label='训练集准确率')
plt.plot(history.history['val_accuracy'], label='验证集准确率')
plt.xlabel('Epoch')
plt.ylabel('准确率')
plt.legend()
plt.show()
总结
本示例展示了如何使用 Python 对数据集进行划分,并使用 Keras 构建简单的神经网络模型进行训练和评估。您可以根据您的实际情况调整模型结构、训练参数和评估指标。
原文地址: https://www.cveoy.top/t/topic/nvTa 著作权归作者所有。请勿转载和采集!