我開(kāi)發(fā)了一個(gè) LSTM 編碼器-解碼器模型,以便根據(jù)跳躍擴(kuò)散模型(本質(zhì)上是二元分類問(wèn)題)對(duì)價(jià)格變動(dòng)進(jìn)行分類。我的模型在訓(xùn)練和驗(yàn)證之間分成 75/25。我的問(wèn)題是,在應(yīng)用 SMOTE 等類不平衡技術(shù)之后,我的模型在訓(xùn)練和驗(yàn)證方面的預(yù)測(cè)準(zhǔn)確性都非常高(可能仍然過(guò)度擬合)。但是,當(dāng)談到精度、召回率和 f1 分?jǐn)?shù)時(shí),我的訓(xùn)練模型再次表現(xiàn)良好,但在驗(yàn)證方面,我的精度和召回率顯著下降。這顯然會(huì)導(dǎo)致驗(yàn)證端的 f1 分?jǐn)?shù)較低。有誰(shuí)知道為什么驗(yàn)證準(zhǔn)確率很高,但準(zhǔn)確率和召回率都大幅下降?這是我的模型在驗(yàn)證端計(jì)算精度和召回率的方式的問(wèn)題,還是我的模型過(guò)度擬合導(dǎo)致驗(yàn)證結(jié)果較低?模型結(jié)果匯總見(jiàn)下圖,如有需要我也可以提供notebook。編輯:包括相關(guān)代碼#%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貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果你能給出你的混淆矩陣可能會(huì)更好。
但是,計(jì)算器似乎有問(wèn)題。
從數(shù)學(xué)上講,**(準(zhǔn)確性 + 召回率 >= 精度)
編輯:這是數(shù)學(xué)身份。
在你的例子中,31 + 33 < 97
我會(huì)建議你使用這個(gè)功能。并獲取報(bào)告,如果您能在問(wèn)題中打印它的輸出,我將不勝感激。
添加回答
舉報(bào)
0/150
提交
取消