Python 在Keras中用RNN预测数据集的过去结束
我有一个数据集,涵盖了数百个温度值。显然,在气象学中,根据过去预测未来的价值是有帮助的 我有以下有状态模型,内置于Keras中: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
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()
,但要在所需范围内。这取决于数据的外观
假设您的timeseriestrainX
中有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的时间序列的信息