Kerasによる時系列データの分析を行っています。
この際、LSTMモデルへの入力データの構造について混乱しています。
TeraTail内にも極めて近い質問がありますが、その内容も含め有識者の方、ご教示いただけますと幸甚です。
LSTMモデルへの入力が3次元データになることは納得しているのですが、
その2次元目、3次元目の考え方について知りたいです。
具体的には、
A:(サンプル数, ウインドウサイズ, 特徴量の次元数) とすべきなのか
B:(サンプル数, 特徴量の次元数, ウインドウサイズ) とすべきなのか
C: AでもBでもどちらでもよい のか
A~Cで迷っております。
具体例:
1時間おきにCPU使用率とメモリ使用率の2変量のデータが入手できるとして、
3時間前までさかのぼって分析する。24時間分のデータを保有している
A:[ [cpu1,mem1],[cpu2,mem2],[cpu3,mem3]],
...あと23行続く。
→shapeは(24,3,2)であり、
model.add(LSTM(XX, input_shape=(3, 2)))とすればよい
B:[ [cpu1,cpu2,cpu3],[mem1,mem2,mem3]],
...あと23行続く
→shapeは(24,2,3)であり、
model.add(LSTM(XX, input_shape=(2, 3)))とすればよい
上記の類似質問への回答で、日本語サイトと英語サイトの引用がありましたが、
- 日本語サイトはBのパターン
- 英語版サイトはAのパターン
のように見えます。
これまで私は盲目的にパターンAで進めていたのですが、
上記リンクの回答にあった日本語サイトの説明も非常に説得力があります。
- 3次元であることが重要であり、AかBかはケースバイケースなのか・・・
- 使用するライブラリやフレームワークに応じて使い分ける必要があるのか・・・
有識者の方、ご回答をよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/16 03:46