使用Keras中的RNN预测数据集结束后的结果

3

我有一个包含数百个温度值的数据集。在气象学中,根据过去的数据预测未来的值是非常有帮助的。

我已经使用Keras构建了以下状态模型:

look_back = 1
model.add(LSTM(32, batch_input_shape=(batch_size, look_back, 1), stateful=True))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
for i in range(10):
    model.fit(trainX, trainY, epochs=4, batch_size=batch_size, verbose=2, shuffle=False)
    model.reset_states()
# make predictions
trainPredict = model.predict(trainX, batch_size=batch_size)

我已经成功地在我的数据集上训练和测试了模型,结果还不错,但是我很难理解如何预测数据集中接下来的20个点。显然,这20个点位于数据集之外,而且它们尚未“发生”。
如果有任何帮助,我将不胜感激;我觉得我可能缺少一些Keras中简单的功能。
谢谢。
1个回答

1
我觉得在Keras中缺少一些简单的功能。 你需要使用model.predict()在所需范围内对新数据进行预测。这取决于你的数据看起来如何。 假设你的时间序列trainX的事件具有x范围从[0,100]。 然后,要预测接下来的20个事件,你需要在值101120上调用predict(),类似于:
futureData = np.array(range(101,121)) #[101,102,...,120]
futurePred = model.predict(futureData)

再次强调,这取决于您的“接下来的20个”事件的情况。如果您的bin大小改为0.1(100, 100.1, 100.2,...),则应相应评估预测。

如果您感兴趣,您还可以查看this页面,其中他们提供了有关使用Keras和RNN进行时间序列分析的示例和更多解释。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接