为了账号安全,请及时绑定邮箱和手机立即绑定

训练和验证 LSTM 问题:精度和召回问题

训练和验证 LSTM 问题:精度和召回问题

慕勒3428872 2023-06-13 19:12:41
我开发了一个 LSTM 编码器-解码器模型,以便根据跳跃扩散模型(本质上是二元分类问题)对价格变动进行分类。我的模型在训练和验证之间分成 75/25。我的问题是,在应用 SMOTE 等类不平衡技术之后,我的模型在训练和验证方面的预测准确性都非常高(可能仍然过度拟合)。但是,当谈到精度、召回率和 f1 分数时,我的训练模型再次表现良好,但在验证方面,我的精度和召回率显着下降。这显然会导致验证端的 f1 分数较低。有谁知道为什么验证准确率很高,但准确率和召回率都大幅下降?这是我的模型在验证端计算精度和召回率的方式的问题,还是我的模型过度拟合导致验证结果较低?模型结果汇总见下图,如有需要我也可以提供notebook。编辑:包括相关代码#%pip install keras-metrics# Importing required packagesimport keras_metrics as km# LSTM Workings_Autoencoder Modelac_model_1b = Sequential()ac_model_1b.add(Bidirectional(LSTM(units=200, return_sequences = True,                               input_shape = (n_timesteps, n_features),                                 kernel_initializer='glorot_normal')))ac_model_1b.add(LSTM(100))ac_model_1b.add(Dropout(0.2))ac_model_1b.add(RepeatVector(n_timesteps))ac_model_1b.add(LSTM(100, return_sequences = True))ac_model_1b.add(Dropout(0.2))ac_model_1b.add(LSTM(200, return_sequences = True))ac_model_1b.add(TimeDistributed(Dense(1, activation='sigmoid')))ac_model_1b.compile(loss='binary_crossentropy', optimizer='Adamax',                  metrics=['accuracy', km.binary_precision(), km.binary_recall()])results_ac_model_1b = ac_model_1b.fit(x_train, y_train, epochs=100, batch_size=32,                        shuffle=True, validation_data=(x_valid, y_valid))print(ac_model_1b.summary())ac_model_1b.save('lstm_model_adamax.h5')
查看完整描述

1 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

如果你能给出你的混淆矩阵可能会更好。

但是,计算器似乎有问题。

//img3.sycdn.imooc.com/64884f460001672906500087.jpg

//img1.sycdn.imooc.com/64884f4d00017bf305440115.jpg

//img2.sycdn.imooc.com/64884f530001adce05100103.jpg

从数学上讲,**(准确性 + 召回率 >= 精度)

编辑:这是数学身份。

在你的例子中,31 + 33 < 97

我会建议你使用这个功能。并获取报告,如果您能在问题中打印它的输出,我将不胜感激。


查看完整回答
反对 回复 2023-06-13
  • 1 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信