LSTMによる時系列データ予測

機械学習ライブラリTensorFlowを高水準のニューラルネットワークライブラリKerasから使用して、LSTM(長短期記憶)ネットワークによる時系列データの予測を行います。

以下の内容は、LSTM-Neural-Network-for-Time-Series-Predictionの記事を、日経平均株価指数に適用しました。詳しい内容やソースコードの使用法は、上記記事を参照ください。

また、LSTMの理論的な内容を知りたい場合は、他に解説記事がたくさん存在しますので、そちらをご参照ください。

LSTM(長短期記憶)ネットワーク

LSTM(Long Short Term Memory;長短期記憶)ネットワークは、RNN(Recurrent Neural Network;再帰型ニューラルネットワーク)の1つで、よく使用されるニューラルネットワークです。 時系列データの未来予測などにも適用されています。上記記事では、正弦関数の予測を行っています。

翌日の株価予測

過去の株価のデータから、将来の株価を予測できるでしょうか?

答えはNoです。

株価はランダムウォークなので、将来の株価を予測するのは極めて困難です。

しかし、LSTMなら隠れたトレンドが見つけられるかもしれません。

そこで、2007年1月から2017年3月までの日経平均株価の終値を使用して、株価の予測をしてみましょう。

まずは、翌日の株価をLSTMで予測します。50日間のデータと次の51日目のデータを組にし、1日ずつずらしながら、最初の90%のデータで訓練し、残り10%で実際の値と予測値を比較したのが下図です。(値は正規化されています)

predict point by point

この予測は、まあまあ近いように見えますが、実際の時系列データから次の日を予測してるだけなので、大きくかい離するはずがありえません。むしろ、この予測のズレはランダムウォークを体現しているかもしれません。

株価のトレンド予測

翌日の株価を予測するのは難しそうなので、LSTMで株価のトレンドを予測してみましょう。50日間のデータから次の50日間を予測することでトレンドを見てみます。トレンドは見えるでしょうか?(epochs = 1)

predict sequences multiple

これは、トレンドを正しく捉えているでしょうか。。


添付ファイル: filepredict_point_by_point.png 214件 [詳細] filepredict_sequences_multiple.png 202件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-04-01 (土) 20:37:06 (330d)