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%で実際の値と予測値を比較したのが下図です。(値は正規化されています) この予測は、まあまあ近いように見えますが、実際の時系列データから次の日を予測してるだけなので、大きくかい離するはずがありえません。むしろ、この予測のズレはランダムウォークを体現しているかもしれません。 株価のトレンド予測 †翌日の株価を予測するのは難しそうなので、LSTMで株価のトレンドを予測してみましょう。50日間のデータから次の50日間を予測することでトレンドを見てみます。トレンドは見えるでしょうか?(epochs = 1) これは、トレンドを正しく捉えているでしょうか。。 |