Deep learning LSTM时间序列递归预测收敛到相同值

Deep learning LSTM时间序列递归预测收敛到相同值,deep-learning,time-series,keras,multi-step,Deep Learning,Time Series,Keras,Multi Step,我正在使用LSTM进行时间序列序列预测。 我的目标是使用25个过去值的窗口,以便为接下来的25个值生成预测。我递归地这样做: 我使用25个已知值来预测下一个值。将该值附加为已知值,然后移动25个值并再次预测下一个值,直到我有25个新生成的值(或更多) 我正在使用“Keras”来实现RNN 架构: regressor = Sequential() regressor.add(LSTM(units = 50, return_sequences = True, input_shape = (X_tra

我正在使用LSTM进行时间序列序列预测。 我的目标是使用25个过去值的窗口,以便为接下来的25个值生成预测。我递归地这样做: 我使用25个已知值来预测下一个值。将该值附加为已知值,然后移动25个值并再次预测下一个值,直到我有25个新生成的值(或更多)

我正在使用“Keras”来实现RNN 架构:

regressor = Sequential()
regressor.add(LSTM(units = 50, return_sequences = True, input_shape = (X_train.shape[1], 1)))
regressor.add(Dropout(0.1))
regressor.add(LSTM(units = 50, return_sequences = True))
regressor.add(Dropout(0.1))
regressor.add(LSTM(units = 50))
regressor.add(Dropout(0.1))
regressor.add(Dense(units = 1))
regressor.compile(optimizer = 'rmsprop', loss = 'mean_squared_error')
regressor.fit(X_train, y_train, epochs = 10, batch_size = 32)
问题: 递归预测总是收敛到某个值,无论之前的序列是什么

当然,这不是我想要的,我希望生成的序列会有所不同,这取决于我之前所做的,我想知道是否有人知道这种行为以及如何避免它。也许我做错了什么

我尝试了不同的纪元号码,但没有多大帮助,事实上,更多的纪元让情况变得更糟。更改批次大小、单位数量、层数和窗口大小也无助于避免此问题

我正在使用MinMaxScaler获取数据

编辑:

扩展新的测试输入:

dataset_test = sc.transform(dataset_test.reshape(-1, 1))

您是否以与以前相同的方式重新调整了新输入的比例?当然。是的,我做了。你能告诉我怎么做吗?另一个快速解决方法-尝试使用
predict\u on_batch
而不是
predict
我附加了测试数据的重新缩放OK-看起来不错-现在尝试使用
predict\u on_batch
而不是
predict