15
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

LSTMの予測精度に対するサンプルデータ絶対値の影響

やりたいこと

  • 人工知能で株価などを予測させたい
  • そのための、下準備

人工知能で時系列データを予測する手法

言語認識や時系列データの分析・予測には、下記の手法を使うらしい。
- RNN (Recurrent Neural Network)
- LSTM (Long Short-Term Memory)
- GPU (Gated Recurrent Unit)

詳しくはこちら:
詳解 ディープラーニング ~TensorFlow・Kerasによる時系列データ処理~

LSTMによるSINカーブの予測

元データ: 振幅1のSinカーブに標準偏差0.05のノイズが乗っている
image.png

ディープラーニングのモデル:
image.png

学習結果
10 Epochs程度でlossがなくなっており、非常によく学習できていると分かる。
10 Epochで、loss: 0.0298, val_loss: 0.0199
image.png

学習済エンジンによるSinカーブの予測
点線: 元データ、黒実線: 予測データ
image.png

参考:

ソースコードはこちらを使ってます
yusugomori/deeplearning-tensorflow-keras

LSTMで株価を予測するときの問題点

上の文献通りに進めれば、株価を予測できるかも! と、思ったけれども、
そのままの価格データを使っても、うまく予測できない場合があるらしい。

LSTMで仮想通貨の価格予測をする

機械学習においてデータの前処理は予測の精度を左右します。
今回、そのままの価格データを使ってもうまくいかなった(値のスケールが大きかったせい?)ので、ひとまずmin-maxスケーリングをしてみます。

絶対値が変わったときの影響検証

検証データ: 元データに2を足してみる (平均2のデータ)
image.png

ディープラーニングのモデル
先ほどと同じもので

検証結果
lossがなくなるまで、40Epochほどかかっており、明らかに学習が遅くなりました。
image.png

Sinカーブの予測
こちらも誤差が大きくなっていることが、目視でわかります。
image.png

追加: 平均4のSinカーブに対する予測
ちなみに、平均4のSinカーブに対してはトレンド予測が全くできなくなってます。
image.png

所見

単純なLSTMを使って時系列のトレンドを予測する場合、データの前処理で精度が全然変わってしまうという問題がありそうです。どうも、平均ゼロ付近の周期的なデータはよく予測できるけど、平均値が0から大きく離れるとLSTMではうまくトレンドを予測できないようです。
株価予測を実装するまでには、ちょっと時間がかかりそうです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
15
Help us understand the problem. What are the problem?