BitCoinの価格変動をニュースの見出しデータセットを用いた多変量LSTMで予測する

はじめに

何年か前から仮想通貨が流行ってますよね。

今回はBitCoinの価格変動の予測を試してみます。

売りが売りを呼ぶときがある
引用:機械学習による株価予想の十八手 – Qiita

私は株はやったことがないので詳しいことは知りませんが、株や仮想通貨などは複雑な事象が影響して変動してます。

したがって、投資で稼ごうとするといろいろなことを勉強する必要があります。当然ですね。

今回は機械学習を使って予測していこうという試みです。

RNN等を用いて予測する手はよくありますが、今回の思い付きは「ニュースを参考にして精度を上げよう!」というものです。

ニュースの見出しのデータセットをUniversal Sentence Encoderでベクトル化して多変量LSTMの入力にします。

世で起きている事象を把握できれば、BitCoinの価格予測の精度は高まるはずです。

そんなうまくいくか半信半疑ですが、やっていきましょう。

BitCoinのデータは2014/11/03からです。
1日ごとのデータを持ってきます。ここから借りました↓。

Bitcoin
Bitcoin USD price, real-time (live) charts, news and videos. Learn about BTC value, bitcoin cryptocurrency, crypto trading, and more.

LSTM(予備実験)

やってみましょう。
ググりながら適当に実装しました。緑が予測したものになります。


過去のデータから学び、1日先を予測しました。
BitCoinの2015/01/01~2020/12/31の期間で予測をしてみました。

プログラムはこちら
このAIは投資に手を出さない方がいいですね。
正しく実装できてるか怪しいレベルです。
(簡単なサイン波などは正しいっぽく予測できます。)

多変量LSTM

追加の情報として、日々のニュースの見出しを用います。
方法としてはUniversal Sentence Encoderを用いて、各日のニュースの見出しを512次元のベクトルに変換します。
入力するデータは以下のようになります。

実装はそのまま↓のサイトを参考にさせていただきました。
https://qiita.com/tizuo/items/b9af70e8cdc7fb69397f
実行結果はこちら!↓

ダメでした。

プログラムはこちら

所感

正直実装しながらうまくいかないだろうとは思ってました。

理由としては
①学習データが約6年分(365*6)と少な目
②ニュースの見出しデータが情報としてバラバラすぎる
の2点から学習しようがないのでは、というところです。

次やってみるとしたら、この反省を生かして
①1分おきのデータをたくさん用いてもっと細かい変動を予測する
②もっと役に立つ情報(ロングとショートの比率とか?)を使う
を試すともうちょっと良い結果が得られるかもですね。
同じ手法だとしても、もっと金融に関するニュースとかに絞るのも手だと思います。

LSTM使ってみたい! & Universal Sentence Encoderを使ってみたい!という動機でやったので取りあえずできてよかったです。

コメント