質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

0回答

830閲覧

keras LSTMのデータ整形について

yuudai

総合スコア65

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/04/11 08:38

編集2020/04/11 08:40

前提・実現したいこと

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/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問