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 构建简单的神经网络模型进行训练和评估。您可以根据您的实际情况调整模型结构、训练参数和评估指标。

Python 数据集划分与深度学习模型训练示例

原文地址: https://www.cveoy.top/t/topic/nvTa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录