LSTM二分类预测Python代码,并输出模型训练的损失函数图
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
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01