LSTM时间序列预测,预测稳定

时间:2020-03-06 02:50:09

标签: r lstm prediction forecasting

我的代码在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
}

1 个答案:

答案 0 :(得分:0)

我遇到类似的问题。也许当LSTM单位考虑到自己创建的输入时,它趋于稳定。