регрессия skflow предсказать несколько значений

Я пытаюсь спрогнозировать временной ряд: учитывая 50 предыдущих значений, я хочу предсказать 5 следующих значений.

Для этого я используюskflow пакет (на основе TensorFlow), и эта проблема относительно близка кБостонский пример представлен в репозитории Github.

Мой код выглядит следующим образом:

%matplotlib inline
import pandas as pd

import skflow
from sklearn import cross_validation, metrics
from sklearn import preprocessing

filepath = 'CSV/FILE.csv'
ts = pd.Series.from_csv(filepath)

nprev = 50
deltasuiv = 5

def load_data(data, n_prev = nprev, delta_suiv=deltasuiv):  

    docX, docY = [], []
    for i in range(len(data)-n_prev-delta_suiv):
        docX.append(np.array(data[i:i+n_prev]))
        docY.append(np.array(data[i+n_prev:i+n_prev+delta_suiv]))
    alsX = np.array(docX)
    alsY = np.array(docY)

    return alsX, alsY

X, y ,= load_data(ts.values) 
# Scale data to 0 mean and unit std dev.
scaler = preprocessing.StandardScaler()
X = scaler.fit_transform(X)
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y,
    test_size=0.2, random_state=42)
regressor = skflow.TensorFlowDNNRegressor(hidden_units=[30, 50],
    steps=5000, learning_rate=0.1, batch_size=1)
regressor.fit(X_train, y_train)
score = metrics.mean_squared_error(regressor.predict(X_test), y_test)
print('MSE: {0:f}'.format(score))

Это ведет к :

ValueError: y_true и y_pred имеют различное количество выходных данных (1! = 5)

в конце обучения.

И когда я пытаюсь предсказать, у меня такая же проблема

ypred = regressor.predict(X_test)
print ypred.shape, y_test.shape

(200, 1) (200, 5)

Поэтому мы можем видеть, что модель каким-то образом предсказывает только 1 значение вместо 5 разыскиваемых / ожидаемых.

Как я могу использовать одну и ту же модель для прогнозирования значений для нескольких значений?

Ответы на вопрос(1)

Ваш ответ на вопрос