• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

LSTM二分类预测Python代码,并输出模型训练的损失函数图

武飞扬头像
蝶舞梦龙
帮助1

import numpy as np
import matplotlib.pyplot as plt
from keras.models import Sequential
from keras.layers import LSTM, Dense, Dropout
from keras.optimizers import Adam
from sklearn.metrics import confusion_matrix

# 创建模型
def create_model(input_shape):
    model = Sequential()
    model.add(LSTM(units=64, input_shape=input_shape, return_sequences=True))
    model.add(Dropout(rate=0.2))
    model.add(LSTM(units=32, return_sequences=True))
    model.add(Dropout(rate=0.2))
    model.add(LSTM(units=16, return_sequences=False))
    model.add(Dense(units=1, activation='sigmoid'))
    optimizer = Adam(lr=0.001)
    model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['accuracy'])
    return model

# 生成数据
x_train = np.random.rand(1000, 10, 5)  # 1000个样本,10个时间步长,5个特征
y_train = np.random.randint(2, size=(1000, 1))  # 二分类标签

# 训练模型
model = create_model(input_shape=(10, 5))
history = model.fit(x_train, y_train, epochs=50, batch_size=32, validation_split=0.2)

# 绘制损失函数图
plt.plot(history.history['loss'], label='train')
plt.plot(history.history['val_loss'], label='validation')
plt.title('Model Loss')
plt.ylabel('Loss')
plt.xlabel('Epoch')
plt.legend()
plt.show()

# 预测测试集数据
x_test = np.random.rand(1000, 10, 5)  # 100个测试数据,10个时间步长,5个特征
y_test = np.random.randint(2, size=(1000, 1))  # 二分类标签
#y_pred = model.predict_classes(x_test)
y_pred = model.predict(x_test)
# 计算混淆矩阵
cm = confusion_matrix(y_test, y_pred.argmax(axis=1))
print('Confusion Matrix')
print(cm)
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfebae
系列文章
更多 icon
同类精品
更多 icon
继续加载