LSTMで日経平均株価を予測する
時系列データを処理できるRNNを使ったなにがしかの実験をしてみたかったので、試しに日経平均株価をLSTMで予測するということをしてみた。
LSTMとは
LSTMとは、1995年に登場したRNNを拡張したモデル。RNNに比べ、時系列データの非常に長い依存関係(長い文章など)も学習することが出来る。通常のRNNでは数十ステップほどだが、LSTMは100ステップを超える依存関係も処理することができる。
実験概要
日経平均株価の2007年から2017のデータを使い、LSTMを使って学習します。10日分のデータを入力とし、その次の日のデータを教師ラベルとすることで、予測を学習します。
結果
LSTMセル数: 50
バッチサイズ: 50
エポック数: 100
損失関数: MAPE(Mean Absolute Percentage Error, 平均絶対パーセント誤差)
青: 予測 オレンジ: テストデータ
大きく上昇したときに予測が全然追いつかず。その後セル数やエポック数を変えてみても特に変わりなし。
しかし、損失関数をMAPEからMAE (Mean Absolute Error, 平均絶対誤差)に変更したところ、予測が改善。
損失関数の違いをわかってないので、勉強していきたい。
考察
MAEからMAPEにしたら予測がかなりテストデータに近くなったがあまりに近いので、前日の値をそのまま出力してるのでは疑惑がある。どうしたら確かめられるだろうか…?