16
- 4月
2017
No Comments
【chainer】機械学習で株価の予測を試してみる その2
Advertisements
概要
前回、twitterのデータから株価の予測に挑戦してみました。
しかし、残念ながらその結果は惨敗に終わりました。。。。
ということで、改善してみようと思います。
やっていること
Yahooファイナンスで公開されている、過去の株価情報を用いて、株価を再現する。
そして、予測もどきを行ってみる。
- Yahoo!ファイナンス
- twitterの過去ログ
- 予測した対象企業の公式twitter
- 過去ログの取得方法は、いろいろあるのでググってください。
Advertisements
データの使い方について
- 上記の2つの情報で、2014/01/01~2016/12/31までの期間を学習データとする。
- 学習させたモデルで、2014/01/01~2016/12/31までの期間の電力需要の再現を試みる。
- 学習データの90%を実際に学習に使い、残る10%で評価を行う。
使用したアルゴリズム
データの準備や機械学習で、以下のようなアルゴリズムを利用しています。
学習データ
以下の2種類を用意
- twitterデータ
- 株価の前日終値と、前日終値と当日終値の差
twitterデータについては、以下のようにします。
- 言語を学習データとするために、ベクトル化を行っています。
- mecabを使って、日本語を形態素解析(品詞分解)を行います。
- doc2vecを使用しています。前後の単語の文脈も学習結果に取り込みたいためです。
- 200次元ベクトルに変換しています。
学習プロセス
- Neural Networkを使った、Deep Learningを使っています。
- 隠れ層は3層、隠れ層のノード数は600、出力は1層です。
結果について
前回との違いは、学習データに、株価の前日終値と、前日終値と当日終値の差を追加したことです。
結果の可視化
計算して再現(上)したものと予測(下)したものをグラフ化しました。
前回の結果と比較すると、下のグラフ(予測結果)のバタつきが、だいぶ抑えられていますね。
前日終値と当日終値の差は、自己回帰性のある株価データで、その特性を消して分析を進めるために、よく使われる手法ですね。
結果の解釈
解釈というより感想ですが、やはり「株価」を精度良く予測することは難しいです。
しかるべきデータを使って、しかるべきチューニングを行えば、出来そうな気はします。
しかし、どこまでそこに労力をかけるのか?という投資対効果を考えると、
世の証券会社にはとても太刀打ちできそうにありません。
それでは次の展望は・・・?
「株価」を当てるのが難しい。
それならば、今日【上がるか】【下がるか】を予測できるだけで十分な気がしますね。
ということで、そういう方向性を目指すことにしましょう。
Advertisements