前提・実現したいこと
kerasで多変量LSTMの記事を見ながら内容を理解しようとしているのですが、データの整形の項目ででわからないところが出てきました。
"3ヶ月前までの値を使って次の月の値を学習させるので、以下のような形で整形します。これを使う変数分作成し、1時点分のデータにそれぞれ格納します"という文なのですが、
この画像とともに説明されているので、1月の場合なら10月11月12月のデータを用いて1月の値を予想するということだと思います。
そこでこのようなコードが用いられています。
python
1def create_dataset(dataset, look_back=1): 2 dataX, dataY = [], [] #空のリストを作っておく 3 for i in range(len(dataset)-look_back-1): #datasetの行数-12-1回for文で回す 4 xset = [] #空のリストを作っておく 5 for j in range(dataset.shape[1]): #datasetの列数分for分で回す 6 a = dataset[i:(i+look_back), j] #datasetのi行目から12行分とj列のデータをaに入れる 7 xset.append(a) #作っておいたxsetにaをappendする。これが予測するためのデータ 8 dataY.append(dataset[i + look_back, 0])#変数aの時に選択した行の範囲の1行後の予測する列をappendする。 9 dataX.append(xset) #(12行1列)のデータ×datasetの列数のデータが入ったリストxsetをdataXにappendする 10 return numpy.array(dataX), numpy.array(dataY)#numpy配列に変換して返す 11#このときdataXの構造は(len(dataset)-look_back-1, 12, datasetの列数)だと思う。 12look_back = 12 13trainX, trainY = create_dataset(train, look_back) 14testX, testY = create_dataset(test, look_back)
このコードに対してわからない点はlook_back=12なら12ヶ月前までの値を使って次の月の値を学習しているのではないのかと思うのですがどうなのでしょうか?
追記
今回は年間でセットとすると書いてるのでコードではlook_back=12にしていると思いました。見落としてました。
またLSTMで学習するときはこの記事のように何ヶ月前のデータを学習させることを繰り返すような処理をした方が良いのでしょうか?
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
ソースコード
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー