Ich versuche eine Zeitreihe zu prognostizieren: gegeben 50 vorherige Werte, möchte ich die nächsten 5 Werte voraussagen.skflow Regression mehrere Werte vorhersagen
Dazu verwende ich das skflow
-Paket (basierend auf TensorFlow), und dieses Problem ist relativ nah an der Boston example provided in the Github repo.
Mein Code ist wie folgt:
%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))
Dies führt zu:
ValueError: y_true and y_pred have different number of output (1!=5)
am Ende der Ausbildung.
Und wenn ich vorherzusagen versuchen, ich habe die gleiche Art von Problem
ypred = regressor.predict(X_test)
print ypred.shape, y_test.shape
(200, 1) (200, 5)
Wir können also sehen, dass das Modell irgendwie nur ein Wert prognostiziert statt der 5 wollte/hoffte.
Wie kann ich das gleiche Modell zur Vorhersage von Werten für mehrere Werte verwenden?
Vielen Dank für diese Zugabe! Es funktioniert :) – Julian
Ich glaube nicht, dass dieser Code mehr funktioniert. Wenn 'fit()' aufgerufen wird, wird der folgende Fehler ausgelöst: 'Shapes (?, 1) und (?, 2) sind inkompatibel'. (Ich benutze Version '0.10.0rc0') Ich habe auch eine neue Frage zu diesem Problem erstellt: http://stackoverflow.com/questions/39192107/multiple-target-columns-with-skflow-tensorflowdnnregressor – twiz
Jede Antwort darauf Frage????!!!! – user40780