我開發了一個 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個贊
如果你能給出你的混淆矩陣可能會更好。
但是,計算器似乎有問題。
從數學上講,**(準確性 + 召回率 >= 精度)
編輯:這是數學身份。
在你的例子中,31 + 33 < 97
我會建議你使用這個功能。并獲取報告,如果您能在問題中打印它的輸出,我將不勝感激。
添加回答
舉報
0/150
提交
取消