lstm 损失降不下去_LSTM项目实践(二)——预测印度卢比(INR)汇率趋势

本文探讨了在使用LSTM预测印度卢比(INR)汇率趋势时遇到的问题,包括损失函数难以降低和模型性能。设置隐藏单元为15,采用Adam优化器,N=5,以及早停策略。尽管LSTM表现不如ANN,但优于SVR,最佳r2_score达到0.966。早停策略在大约10次迭代后能有效防止过拟合。训练损失(RMSE)曲线揭示了模型行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接着上次的验证LSTM模型的性能

参数设置(hidden unit=15, Adam, N=5, earlystop策略, 单层)

结果:

  1. LSTM的解不稳定,多次运行结果不一致。
  2. LSTM的性能不如ANN, 最多达到r2_score=0.966,但比SVR要好
  3. earlystop策略挺不错,通常10个迭代左右就停止了,说明该数据集容易过拟合
# 5. LSTM模型的预测结果:

#5.1 准备LSTM的数据(samples, time-lag, features)
X_tr_t = X_train.reshape(X_train.shape[0], N, 1)
X_tst_t = X_test.reshape(X_test.shape[0], N, 1)

#5.2 构建LSTM模型
K.clear_session()
model_lstm = Sequential()
model_lstm.add(LSTM(units=30, input_shape=(N, 1), activation='relu', kernel_initializer='lecun_uniform', return_sequences=False))
model_lstm.add(Dense(1))
model_lstm.compile(loss='mean_squared_error', optimizer='adam')

#这里用了早停方法
early_stop = EarlyStopping(monitor='loss', patience=5, verbose=1)
history_model_lstm = model_lstm.fit(X_tr_t, Y_train, epochs=200, batch_size=32, verbose=1, shuffle=False, callbacks=[early_stop])

#预测结果
y_pred_test_lstm = model_lstm.predict(X_tst_t)

r2_test
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值