PR

【機械学習】CNN-LSTMを天気予測を例に解説(時系列分析モデル)

機械学習

CNN-LSTMは

  • CNN(パターン抽出)
  • LSTM(時間関係の理解)

を組み合わせたモデルです。

役割は次の通りです。

モデル役割
CNNデータの形(パターン)を抽出
LSTM時間の流れを理解

例えばFXでは

  • CNN → チャート形状(上昇・レンジなど)
  • LSTM → その形の時間的な変化

を学習します。


CNN-LSTMの主なパラメーター

CNN側

パラメーター意味
filters検出するパターン数
kernel_size一度に見る時間幅
strideスライド幅
padding端の処理
dropout過学習防止

Conv1D(filters=64, kernel_size=5)

LSTM側

パラメーター意味
units記憶セル数
return_sequences次の層へシーケンスを渡す
dropout過学習防止
recurrent_dropout再帰部分のドロップアウト

LSTM(units=64)

CNN-LSTMの使用例(FX以外)

CNN-LSTMは多くの時系列分析で使われています。

主な用途

分野用途
音声認識音声波形の解析
外気温分析天候予測
電力需要予測消費量予測
心電図分析不整脈検出
センサー監視異常検知

特徴は

波形や時系列パターンを学習することです。


外気温分析とFXの対応

CNN-LSTMの構造は多くの時系列で共通しています。

項目外気温分析FX予測
特徴量気温・湿度・気圧OHLC・指標
目的変数次の1時間の天気次の足の上昇 / 下降
シーケンス長過去24時間過去24本
データ構造(24, features)(24, features)

つまり

過去データ → 次の状態

という同じ問題です。


CNN-LSTMのデータ構造

時系列データは次の形になります。

データ構造(シーケンス長, 特徴量)
気温(24,1)
OHLC(100,4)
指標含む(100,20)

データ量とパラメーターの目安

CNN-LSTMでは

データ量に応じてパラメーターを増やします。

小規模データ

sequence = 24
features = 1〜4

推奨

設定例
CNN filters16〜32
kernel3
LSTM units16〜32

中規模データ

sequence = 60〜120
features = 4〜20

推奨

設定例
CNN filters32〜64
kernel3〜5
LSTM units32〜64

大規模データ

sequence = 200以上
features = 20以上

推奨

設定例
CNN filters64〜128
kernel5〜10
LSTM units64〜128

CNN-LSTMの基本構成例

Conv1D(filters=64, kernel_size=5)
MaxPooling1D(2)LSTM(64)Dense(2)

役割

  1. CNN → チャートパターン抽出
  2. LSTM → 時系列の流れ理解
  3. Dense → 最終予測

まとめ

CNN-LSTMは

パターン検出(CNN)
+
時間理解(LSTM)

を組み合わせたモデルです。

FXでは

チャート形状 + 時間の流れ

を同時に学習できるため
時系列予測でよく使われています。

タイトルとURLをコピーしました