我有一个数据集,包含了几百个关于温度的值。显然,在气象学中,根据过去预测未来的数值是有帮助的。在
我在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中缺少了一些简单的功能。在
谢谢。在
你需要的就在那里。要获得对新数据的预测,您必须再次使用
model.predict()
,但在所需的范围上。这取决于数据的外观。在假设您的timeseries
trainX
的事件范围为x
,范围为[0,100]
。在然后,要预测接下来的20个事件,您要对值},如下所示:
101
调用predict()
到{同样,这取决于你的“下20个”事件的外观。如果bin size改为0.1(100,100.1,100.2,…),则应相应地评估预测。在
如果您感兴趣的话,您还可以查看this页面,在那里他们给出了示例,并详细解释了Keras中使用RNNs的时间序列。在
相关问题 更多 >
编程相关推荐