Python 在Keras中用RNN预测数据集的过去结束

Python 在Keras中用RNN预测数据集的过去结束,python,machine-learning,time-series,keras,recurrent-neural-network,Python,Machine Learning,Time Series,Keras,Recurrent Neural Network,我有一个数据集,涵盖了数百个温度值。显然,在气象学中,根据过去预测未来的价值是有帮助的 我有以下有状态模型,内置于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 ra

我有一个数据集,涵盖了数百个温度值。显然,在气象学中,根据过去预测未来的价值是有帮助的

我有以下有状态模型,内置于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中缺少了一些简单的功能

多谢各位

我觉得Keras中缺少了一些简单的功能

你需要的东西就在那里。要获得对新数据的预测,您必须再次使用
model.predict()
,但要在所需范围内。这取决于数据的外观

假设您的timeseries
trainX
中有
x
范围为
[0100]
的事件

然后,要预测接下来的20个事件,您需要对值
101
调用
predict()
120
,类似于:

futureData = np.array(range(101,121)) #[101,102,...,120]
futurePred = model.predict(futureData)
同样,这取决于“下一个20”活动的外观。如果容器大小改为0.1(100100.11000.2,…),则应相应地评估预测

如果您感兴趣,您可能还想查看页面,其中给出了示例,并解释了更多关于Keras中使用RNN的时间序列的信息