Keras(ケラス)のRNN-LSTMを使用して明日のビットコイン価格を予想する

predict-tomorrow-bitcoin-price

どうも!最近、機械学習について学ぶのにハマってるヤバWEBです。

今日ははじめてKeras(ケラス)のRNN-LSTMを使用して

時系列データの将来予測をやってみたので

簡単に勉強したことをメモしておこうかと思います。

  • Keras(ケラス)
  • RNN
  • LSTM

↑機械学習やったことない人からすればなんのこっちゃって単語ですねw

Keras(ケラス)とは

Keras(ケラス)は簡単にデープラーニング処理ができるようにつくられた
機械学習ライブラリです。

機械学習に詳しくない人でも
少ないコード量で機械学習を活用することができます。

Kerasを使用すれば
難しい数学的理論の部分を自分で実装する必要がなくなります。

参考①: 機械学習のライブラリ (Vol.3)
参考②: 【入門者でもわかる】Kerasとは?基礎から丁寧に解説!

例えば、Kerasを利用すれば

  • 文章の自動生成
  • 画像認識

などを簡単に実装することができます。

RNNとは

“RNN”は正式名称を“Recurrent Neural Network”といいます。

RNNは時系列データの予測で
よく使用されるディープランニングの代表的手法です。

過去の時系列データをもとに未来のデータを予測するときに使われます。

詳しくは以下の記事が参考になります。

参考: RNN(Recurrent Neural Network)の概要を理解しよう(TensorFlow編)

LSTMとは

“Long short-term memory”を略して“LSTM”といいます。

LSTMはRNNの拡張として登場しました。

RNNは長時間前のデータを利用しようとするとうまく機能しない
場合があるので短時間のデータ処理に向いています。

LSTMはRNNでは学習できなかった長期の時系列データ(long-term dependencies)を学習することができます。

参考①: わかるLSTM ~ 最近の動向と共に
参考②: やさしい深層学習の原

機械学習の簡単な流れについて

さて、今回使用するツールについて簡単に説明しましたが

もうひとつ

機械学習の流れ

について整理しておきます。

なにをやりたいのかにもよりますが

大雑把にこんな感じになります

  • データ収集
  • データクレンジング(データの重複や欠損データなどを取り除く)
  • アルゴリズムの選択
  • 機械学習とチューニング
  • サービス化

これらは機械学習の区分(教師あり学習や教師なし学習、強化学習)によって
多少フローに変化があるかもしれません。

また、目的によって選択するアルゴリズムは変わってきます。

  • 分類 ex) テキストのカテゴリ分類がしたい, ある画像が犬か猫かに分類したい etc
  • 回帰 ex) 過去のデータから今後のレポートの数値の予測をしたい, 株価を予測したい etc

といった具合です。

この流れを把握しておけば、
他の人が書いてる機械学習関連の記事も

「あ、この部分はこのフェーズのことを書いてるんだな」

と意識しながら読んでいくことができるので

すんなり中身を理解しやすくなります。

KerasのRNN-LSTMを使用してビットコイン価格を予想してみる

今回、

機械学習を使用したビットコインの価格予測プログラムを実装するのに

こちらの記事を参考にしました。

参考①: How to predict Bitcoin and Ethereum price with RNN-LSTM in Keras
参考②: ディープラーニングでBitcoinの価格を予測して見る #Deep Learning #Keras
参考③: Predict Tomorrow’s Bitcoin (BTC) Price with Recurrent Neural Networks

実際につくってみて試した結果はこのような感じですw

個人的には3つめに参考にしたこちらの記事が非常にわかりやすかったです。

Predict Tomorrow’s Bitcoin (BTC) Price with Recurrent Neural Networks

ソースコードはほぼそのまま使用しているので
よければお試しくださいw