Прогноз Keras LTSM с использованием сохраненной модели - PullRequest
0 голосов
/ 30 марта 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...