【不労所得】ディープラーニングで株価予測を試してみた その3

IT技術

ちょらすか雑多ログ

 ちょらすか雑多ログ 管理人 (開設5か月目で収益化達成)
 現役エンジニア (メーカー勤務10年 → 某大手電機会社 勤務)
 子供の頃RPGツクールに触れて独学でプログラミングを習得
 AI研究、ゲーム、キャンプが生きがい

前回から間が空いてしまいましたがディープラーニングで株価予測検証の

続きを書いていきます!

間が空いた原因ですが新しいモデルで勾配爆発や勾配消失を

一通り起こしていてなかなか学習が進まなかったんです・・・。

そこからハイパーパラメータを調整し活性化関数を変更したことでやっと

学習が進んでくれました。つかれた・・・。

という訳で新しく構築したモデルの検証と予測結果についての考察結果を紹介します!

目指せ不労所得!

スポンサーリンク

前回のおさらい

前回は株価予測データの中に妙なバラつきがあったこととその原因を探っていました。

まだ原因にはたどり着けませんでしたがいくつかの要因に分けて対応可能である

「モデルの学習が不足している」ことに対して対策を取る方針としました。

詳細は前回の記事をご覧ください!

今回の内容

というわけでまずは前回から改良した新たな予測モデルついて紹介します。

続けて新たなモデルの予測結果のプロットを載せて考察していきたいと思います。

より良いモデルを作るためにこれらを踏まえて改善すべき部分をピックアップしていきます!

ちょらすか
ちょらすか

新しいモデルは本当に調整に苦労したんです・・・。

New 株価上昇/下降 予測モデル

では新しくなった予測モデルを紹介します。

今回のモデルは下図のようになっています。

・・・どこが変化したか分かりますかね?

そう、実は中間層が1層分増えてます!

前回の結論の1つとして「モデルの学習が不足している」ということだったので

それならば中間層を増やしてしまえと脳筋的解決法を取りました。

あと勾配消失の対策として活性化関数を シグモイド関数 → tanh関数 に変更しています。

結果は次で解説していきます。

あ、ちなみに入力データやデータの加工方法は変えていません。

詳しくは1番最初の記事をご覧ください

ちょらすか
ちょらすか

新しいモデルの実力は!?

株価予測データプロット

では前回モデルと新しい予測モデルの株価上昇/下降的中率プロットを示します。

今回は学習データの組み合わせを変えた3つの予測結果を紹介します。

5銘柄ずつ学習させたモデル

ここでは予測時の入力データに対応する銘柄が学習データに入るように5銘柄ずつ選定して

学習させています。

結果として

  • 株価上昇的中率: 前回モデルと比較して 4[%] ほど精度が上がった
  • 株価下降的中率 : 前回モデルと比較して 5[%] ほど精度が下がった

となりました。

結果として新しい予測モデルの方が性能が上がりました!

(本検証の目的は株価上昇的中率を上げるモデルを作成することのため

株価下降的中率が下がったことに関しては無視していきます。)

前回モデルより学習時間が倍以上になったので、この結果を受けて報われた気分です。笑

ここで思ったのですが、株価上昇的中率が高くなった銘柄データだけを使って学習させたら

精度は上がるのでしょうか?もしくは逆は?

と、いう訳でついでに検証した結果を次で紹介します!

ちょらすか
ちょらすか

狙い通り予測精度が改善しました・・・!

株価上昇的中率TOP10銘柄で学習させたモデル

先ほどのプロットの中で株価上昇的中率の高い順から10銘柄分選定して

学習させたモデルの予測結果プロットはこのようになりました。

ぶっちゃけほぼ変わらないですね。

予測結果が良いデータを選定して学習させても精度は変わらないようです。

価上昇的中率UNDER10銘柄で学習させたモデル

今度は逆に先ほどのプロットの中で株価上昇的中率の低い順から10銘柄分選定して

学習させたモデルの予測結果プロットをお見せします。

結果はこちらのようになりました!

なんとなく予想できてましたが、これもほぼ変わらないですね。

ということで予測結果が悪いデータを選定して学習させても精度は変わりませんでした。

全銘柄データで学習させたモデル

現在学習中…。近日公開予定!

【2021.10.07 追記】 データ数が多すぎたのか24時間学習させても終わらず断念しました・・・

スポンサーリンク

今後の方策

今回の検証の結論として中間層を増やすことで予測精度が向上することが確認できました。

これは前回の検証で「単に学習しきれていなから予測精度が低いのでは?」という仮定を

肯定する結果となったと思います。

また学習データの組み合わせは予測精度と関係ないように思えました。
(現時点では全データ学習時モデルの結果を出せていませんが・・・)

 ⇒ 学習が完了せず断念しました

よって今回の検証結果から改善点はモデルの中間層を増やすことと考えますが

現在たった5層でも学習時間がかなりかかってしまっているので中間層を増やすのは

現実的ではない気がしています。

そこで次回からは時系列データに強いとされる RNN構造 として

新たなモデルを構築し予測精度がどうなるかを確認していこうかと思います。

CHECK

RNN』とは 再帰型ニューラルネットワーク (Recurrent Neural Network) のことで

ニューラルネットワークを時系列データを扱えるように拡張した構造です。

特徴としてニューロンの出力を自分の入力へ返すように接続されていることです。

ちょらすか
ちょらすか

RNNの実装は骨が折れそうだけど楽しそう!

いっちょやってみますか!

まとめ

この記事では

  • 中間層を増やしたモデルの予測精度検証
  • 学習データの組み合わせによるモデルの予測精度検証

についてまとめてみました!

つづく・・・

IT技術
スポンサーリンク
ちょらすかをフォローする
ちょらすか雑多ログ

コメント

タイトルとURLをコピーしました