首页 > 解决方案 > LSTM时间序列预测,预测稳定

问题描述

我的代码在 R 中,使用 Keras 和 Tensorflow 库。我正在创建一个 LSTM 模型来预测 100 个未来值。我的输入形状是 (100,200,1)。

假设我的输入数据是 X。我在时间步 t=201 进行预测并获得预测的 Y 列。然后我创建 Xnew = c(X[2:200],Y) 一个新变量,在其中连接 X(第一列除外)和 Y。我使用这个 Xnew 来预测下一个时间步。

实际情况是,经过一定数量的预测未来时间步长(大约 15 个)后,预测在之后的每个时间步长都变得恒定。有谁知道为什么会这样?

prdvec = function(dat,modname, numpreds, cnt, scl){

  model = load_model_hdf5(modname)

  inpt = dat
  pred = list()

  for(i in 1:numpreds){
    pred[[i]] <- predict(model, reshape_X_3d((inpt[,1:ncol(inpt)]-cnt)/scl), batch_size = 1)
    inpt = cbind(inpt[,2:ncol(inpt)],(pred[[i]]*scl+cnt))
    print(i)
    flush.console()
  }

  pred
}

标签: rlstmpredictionforecasting

解决方案


我遇到了类似的问题。也许当 LSTM 单元接受自己创建的输入时,它趋于稳定。


推荐阅读