我对keras LSTM模型的预测有一个有趣的问题。我模型的目标是根据以下变量来预测选定外汇汇率对的高低价格变化:开盘价,最高价,最低价,收盘价和交易量。我的数据框如下所示:
在训练模型之前,我对数据框应用了以下数据准备步骤:
当我想训练LSTM模型时,我还对数据框应用了回溯窗口(请参见下面的代码)。
df_all_lookback_x = {}
for i in range(0,window_size+1):
if(i==0):
df_all_lookback_x = df_x
else:
df_all_lookback_x = pd.concat([df_x.shift(i),df_all_lookback_x], axis=1)
然后按如下所示训练模型本身:
model = Sequential()
model.add(LSTM(100, input_shape=(train_X.shape[1], train_X.shape[2])))
model.add(Dropout(0.2))
model.add(Dense(2, activation='tanh'))
model.compile(loss='mean_squared_error', optimizer='adam')
如果我随后使用该模型来预测列车运行和测试数据,则两者:低价和高价的百分比变化对我来说都没有意义。似乎对于预测的高百分比价格变化而言,几乎所有值都是低的(均值形成一条线),而对于低百分比价格变化,则相反。请在下面找到图片。
有人遇到过类似的问题,可以在这个问题上给我建议吗?
已经尝试过的东西: