【问题标题】:Predicting Past End of Dataset with RNN in Keras在 Keras 中使用 RNN 预测数据集的结束
【发布时间】:2018-01-15 07:04:45
【问题描述】:

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

我有以下内置于 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 中缺少一些简单的功能。

谢谢。

【问题讨论】:

    标签: python machine-learning time-series keras recurrent-neural-network


    【解决方案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 页面,其中提供了示例并解释了更多关于使用 RNN 在 Keras 中的时间序列的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-25
      • 2018-12-23
      • 1970-01-01
      • 2017-01-01
      • 1970-01-01
      • 2017-05-10
      • 2018-11-13
      • 2018-08-08
      相关资源
      最近更新 更多