在Keras中用RNN预测数据集的过终点

2024-04-29 07:21:34 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我在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中缺少了一些简单的功能。在

谢谢。在


Tags: 数据模型addsizemodel状态batchback
1条回答
网友
1楼 · 发布于 2024-04-29 07:21:34

I feel like I am missing some simple functionality in Keras.

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

假设您的timeseries trainX的事件范围为x,范围为[0,100]。在

然后,要预测接下来的20个事件,您要对值101调用predict()到{},如下所示:

futureData = np.array(range(101,121)) #[101,102,...,120]
futurePred = model.predict(futureData)

同样,这取决于你的“下20个”事件的外观。如果bin size改为0.1(100,100.1,100.2,…),则应相应地评估预测。在

如果您感兴趣的话,您还可以查看this页面,在那里他们给出了示例,并详细解释了Keras中使用RNNs的时间序列。在

相关问题 更多 >