日経平均株価をLSTMを用いて予測してみた
概要 今流行りの深層学習で日経平均株価を予想してみました。 結論から言えば、全く予想できず、惨敗でした。 LSTMとは LSTMとはリカレントニューラルネットワーク(RNN)と呼ばれる機械学習手法の一つです。 RNNを用いることで、現在と過去一定時間の時系列データから、未来のデータを予測することができます。 また、RNNを改良したLSTMでは、長期のトレンドが反映されやすいとされています。 詳しくはこちらのサイトをご覧ください。 学習データとかモデルとか こちらのサイトから、過去4ヶ月の1時間足のデータをダウンロードし、学習データとして用いました。 モデルの隠れ層のユニット数は100、過去20時間の株価から1時間先の株価を予測するモデルを用いました。学習方法はAdamを用いました。 実装 Keras(TensorFlow)を用いて実装しました。初めて使ったんですが、短く書けて便利ですね。以下、ソースコードを載せておきます。 # coding: utf-8 import numpy as np from keras.models import Sequential from keras.layers import Dense, Activation from keras.layers.recurrent import LSTM from keras.optimizers import Adam from keras.initializers import TruncatedNormal from keras.callbacks import EarlyStopping from sklearn.model_selection import train_test_split import matplotlib.pyplot as plt import seaborn import pandas as pd df = pd.read_csv('~/deep_learning/csv/nikkei4_7.csv') x = df['始値'] / df['始値'].max() f = list(x) length_of_sequences = len(f) maxlen = 20 data = [] target = [] for i in range(0, length_of_sequences - maxlen): data....