Chainerの導入が完了したので、今日はLSTMを使って気温予測をやってみるで

なんで気温予測なの?BTC価格予測しようよ

株価とかBTCは予測が難しいって言われているから、いきなりBTCでやってみて、失敗した時に、プログラム不良なのかモデル不良なのかをわかりやすくするためやで

そうなんだ。意外と慎重だね

ということでやっていくでー


【準備編】
・Chainer動作環境を準備 導入編記事
・15年分の気温データを準備する。 MD-NEXTさんからおかりしました

実測値
【目的】
15年間の気温データを用いて、データの7割で学習させ、残りの3割を利用して予測し、LSTMがうまく機能していることを確認する。

【予測フロー】(気が向いたらプログラムにも別途触れていきます)
(1)気温データを読み込む
(2)気温データの階差をとる
(3)階差データを0-1の範囲に収まるように正規化する(MinMaxScaler()を使用)
(4)階差データを入力データとラベルデータにセットする。
 →階差データが0~Tだとすると、入力データを0~T-1、ラベルデータを1~Tとする
(5)学習データとテストデータ(もしくは予測するデータ)に分ける(train_test_split()を使用)
 →今回は15年間のデータのうち7割(図の赤線のところ)を学習データとして準備
(6)LSTMを適用し、最適なパラメータを持ったエポックを探索する
(7)最適なエポックのパラメータを用いて、予測し、誤差を確認する

※ハイパーパラメータ関連はBTCの時に最適化するので、今回は適当に設定しています。

【結果と考察】
LSTMを使用して後半3割の時系列の気温を予測した結果が以下になります。

予測

・学習で使用したデータ期間(赤線より左)については、かなり一致している
・一方で予測期間(赤線より右)は、波形はほぼ一致しているが、遅れて反応している

つまり、学習期間における学習は非常にうまくいっているが、そのモデルの予測に対する精度は多少落ちているという結果です。とはいえ大方は成功しているといっていいのではないでしょうか。

これくらいBTCのチャートも予測できたら、チョコミントアイス食べ放題だね!

そんな簡単にいったらみんなやってるんだよなぁ。期待はできひん


次回は、LSTMのBTC編!