Я построил контролируемую задачу обучения, используя входные данные, пытаясь предсказать 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 предсказаний. Я также не уверен в том, как использовать прогноз для периодических прогнозов. Как мне исправить код?