私は時系列を予測しようとしています:以前の50個の値を与えて、私は次の5個の値を予測したいと思います。skflow回帰は複数の値を予測する
これを行うには、skflow
パッケージ(TensorFlowベース)を使用しています。この問題は、Boston example provided in the Github repoに比較的近いです。次のように
私のコードは次のとおりです。
%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 and y_pred have different number of output (1!=5)
。
そして、私は予測しようとすると、私たちはそのためのモデルは何とかのみ1値を予測する代わりに5されることを期待/たかったことがわかります問題
ypred = regressor.predict(X_test)
print ypred.shape, y_test.shape
(200, 1) (200, 5)
の同じ種類を持っています。
同じモデルを使用して、複数の値の値を予測するにはどうすればよいですか?
感謝を!それは動作します:) – Julian
私はこのコードがもう働くとは思わない。 'fit()'が呼び出されると、 'Shapes(?、1)と(?、2)は互換性がありません.'というエラーがスローされます。 (私はバージョン '0.10.0rc0'を使用しています)この問題に関する新しい質問を作成しました:http://stackoverflow.com/questions/39192107/multiple-target-column-with-skflow-tensorflownnregressor – twiz
これに対する返答質問????!!!! – user40780