使用保存的模型进行Keras LTSM预测

时间:2019-03-30 12:16:25

标签: python tensorflow machine-learning keras lstm

我使用输入构建了一个监督学习问题,试图预测var1(t)(多元时间序列预测)。我有四年的数据价值,并且在开始的两年中对其进行了培训,并在第三年对其进行了测试。每行代表每年的一天。

Var1(t-1) = price in previous timestep
Var2(t-1) = temperature in previous timestep
Var3(t-1) = cloud cover in previous timestep

    var1(t-1)  var2(t-1)  var3(t-1)   var1(t)
1   0.445601   0.274205   0.691667  0.448110
2   0.448110   0.598374   0.607740  0.448271
3   0.448271   0.280247   0.575429  0.440942
4   0.440942   0.576814   0.351841  0.448540
5   0.448540   0.281461   0.532586  0.451066

保存模型后,我已经加载了模型,并尝试使用经过训练的模型来预测Var1的每日价值,即当前时间步的价格。每次预测之后,我都希望将预测的var1值与var2和var3一起使用,以预测直到1年的后续天数,月份等。

    year = 365
    X = values[year, :]
    X, Y = values[:, :-1], values[:, -1]
    X = X.reshape((X.shape[0], 1, X.shape[1]))
    m = load("model.h5")
    yhat = m.predict(X)
    X = X.reshape((X.shape[0], X.shape[2]))
    # invert scaling for forecast
    inv_yhat = concatenate((yhat, X[:, 1:]), axis=1)
    inv_yhat = sc.inverse_transform(inv_yhat)
    inv_yhat = inv_yhat[:, 0]
    print(len(inv_yhat))

我很困惑,因为inv_yhat返回的长度是我期望值的四倍,即在仅预测一年的值时,它应该返回365个预测,并返回超过1400个预测的数组。我也不确定如何反复使用该预测进行进一步的预测。我该如何修正我的代码?

0 个答案:

没有答案