https://aripy.net

株分析

ChainerでAMZNの株価を予測するLSTMモデルを作る

投稿日:2017年9月27日 更新日:

機械学習、ディープラーニングといえば、予測を試したくなりますね。
株価の予測は難しいらしいですが、今回は、時系列解析モデルであるLSTMを用いてAMZNの株価を予測するモデルを試してみます。

 

スポンサーリンク




株価の時系列解析の考え方

混みいった話になると話がややこしくなるため、少しだけ時系列解析について触れます。

株価のように、時系列にデータが並び、前日や前週の株価が今や未来の株価に影響を及ぼすようなデータを時系列データと呼びます。

この「自己相関」の性質を持つデータが厄介で、普通の機械学習のアプローチが使えません。
その理由は、普通の機械学習のアプローチは、データ同士で相関を持たないことを前提としているアルゴリズムが多いためです。

そこで活用可能なのがRNN(リカレント・ニューラルネットワーク)という仕組みです。

これはディープラーニングの一種なのですが、過去のデータの結果を未来のデータのインプットにして学習できる機構を備えており、自己相関が考慮されています。今回はRNNモデルの一種であるLSTMを使います。

LSTMによるAMZN株予測モデル

AMZN株価データの取得

pandas-datareaderで株価データを取得します。

今回は、2016年から現在までの約1年半分のデータで実験してみます。

  Open High Low Close Adj Close Volume
Date            
2016-01-04 656.289978 657.719971 627.510010 636.989990 636.989990 9314500
2016-01-05 646.859985 646.909973 627.650024 633.789978 633.789978 5822600
2016-01-06 622.000000 639.789978 620.309998 632.650024 632.650024 5329200
2016-01-07 621.799988 630.000000 605.210022 607.940002 607.940002 7074900
2016-01-08 619.659973 624.140015 606.000000 607.049988 607.049988 5512900

 

次に、ダウンロードした株価データをプロットしてみます。

訓練データとテストデータの作成

次にデータ加工です。

過去25日分のデータを使い、次の日の株価を予測できるように教師データを作ります。
また、その際に株価の値を標準化します。標準化しないとうまく学習できません。

LSTMモデルの作成

ディープラーニングの最初の関門であるデータの整形の乗り越えたので、次にモデルを作成します。

各種設定

それでは最後にモデルの宣言や学習に関する設定を行なっていきます。

学習の実行

trainerを実行するだけで実行できるのでchainerは楽ですね。
3000回学習を回しました。