我使用输入构建了一个监督学习问题,试图预测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个预测的数组。我也不确定如何反复使用该预测进行进一步的预测。我该如何修正我的代码?