Python Colaboratory Ⅳ
Python LSTM 豪ドル/円4時間足予測
ここまでで LSTM 豪ドル/円 予測(日足レベル)ができるようになりました。
引き続き、LSTM 豪ドル/円4時間足予測を探求してみたいと思います。
例として豪ドル/円4時間足の動きを格納した
CSV ファイル colab_mane_chart_go_4h.csv
を利用し、それをチヤ-トグラフで表示し、そしてその後の価格変動を予測します。
豪ドル/円 CSV ファイルは
ここからダウンロ-ドできます。
Google Colaboratory で動かします。
類似の豪ドル/円4時間足予測については最も近い予測ファイルを
RNN 豪ドル/円 4時間足予測
~
RNN 豪ドル/円 4時間足予測表示ファイル動作確認
の中で説明してきました。
忙しい方は
RNN 豪ドル/円 4時間足予測表示ファイル
を見てください。
このなかに
keras-go-4h-3.ipynb ファイル
がありますので、これを改造して
LSTM 豪ドル/円4時間足予測ファイル
keras-go-lstm-4h.ipynb
を作成していきます。
全結合モデル(4時間足) ⇒ LSTM モデル(4時間足)
keras-go-4h-3.ipynb は全結合モデル(4時間足)で時系列予測をしています。
これを LSTM モデルで予測するように変更します。
全結合モデルの設定部分は
inputs = keras.Input(shape=(sequence_length,)) x = layers.Flatten()(inputs) x = layers.Dense( 20, activation="tanh", kernel_initializer='zeros' )(x)
のように書いていました。
これを LSTM モデルに変更します。
このモデルの作り方については
LSTM(Long Short Term Memory)の実現
のところで詳しく説明しています。
inputs = keras.Input(shape=(sequence_length, 1)) x = layers.LSTM(20, kernel_initializer='zeros')(inputs)
なお、callbacks_list 中の引数 patience の値ですが、LSTM 豪ドル/円4時間足予測ファイルにおいては
patience = 2 ではうまくいかないケ-スがあることが判明しました。
patience = 6 とします。
callbacks_list = [
keras.callbacks.EarlyStopping(
monitor="val_loss",
patience=6,
),
モデル保存用ファイル名変更
ModelCheckpoint コ-ルバックで設定している
最も性能の良いモデルを保存する保存用ファイル名を
jena_dense_4h.keras ⇒ jena_dense_lstm_4h.keras
に変更します。
このファイルは predict メソッドを使用するときに呼び出すので
model = keras.models.load_model(
"drive/MyDrive/Colab Notebooks/my_data/jena_dense_4h.keras")
⇩ ⇩ ⇩ ⇩
model = keras.models.load_model(
"drive/MyDrive/Colab Notebooks/my_data/jena_dense_lstm_4h.keras")
とする必要があります。
動作結果ファイル名変更
予測チャ-トと予測値の保存ファイル名を変更します。
最後の部分に記述されています。
予測値 csv ファイル
colab_mane_chart_go_keras_4h.csv
⇩
colab_mane_chart_go_lstm_4h.csv
予測チャ-ト図
colab_mane_chart_go_keras_4h.png
⇩
colab_mane_chart_go_lstm_4h.png
引き続きこれらの改造内容を keras-go-4h-3.ipynb ファイルに適用、
keras-go-lstm-4h.ipynb としてまとめます。