Keras LSTM用于时间序列错误预测和融合到不可变的值范围

时间:2017-05-20 19:58:57

标签: tensorflow time-series keras forecasting lstm

模特:

def buildModel(neurons= 5, batch_size= 1, timestep=1, features=1):
    model = Sequential()
    model.add(LSTM(neurons, 
                   batch_input_shape=(batch_size, timestep, features), 
                   #return_sequences= True,
                   stateful=True))

    model.add(Dense(1))
    model.compile(loss='mean_squared_error', optimizer='adam',  
                  metrics=[metrics.MAPE, 'accuracy'])
    return model

测试RMSE:0.104 测试MAPE:14.040

但是当逐步运行多步骤预测时,结果会迅速增加,然后在一定范围内稳定。

时间序列是单变量的 有关模型或时间序列预测问题的任何建议吗?

1 个答案:

答案 0 :(得分:1)

neurons = 5,这是一个容量非常低的模型。可能不足以模拟目标时间序列函数。

timesteps = 1,这是时间序列,因此在进行正确的预测之前,输出必须依赖于一定数量的timestepstimesteps = 1表示您的输出仅取决于1 timestep

batch_size = 1,这需要一段时间才能收敛。通常,这应该是2的幂(16,32,64,128,256,512)。