投資家さとしのひとりFintech

AI(人工知能)で億超えトレーダーを目指してます。

株の短期売買モデルでのクロスバリデーションは有効な検証にはならないかも

統計や機械学習を用いて予測モデルを構築する場合にはオーバーフィッティング(過学習)に気をつける必要があります。手持ちのデータをすべて使ってモデルを構築すると、そのデータにしか適応できないモデルができてしましい、新たな発生したデータには有効に機能しない可能性があるからです。

 

それを避けるために、クロスバリデーションという方法があります。手持ちのデータをランダムに学習データとテストデータに分けて(たとえば、学習データ:テストデータ=90:10)、学習データのみでモデルを構築し、テストデータでモデルが機能するか検証するというものです。これにより、オーバーフィッティングをある程度確認することができます。

 

僕の作った人工知能による株の短期売買モデルでもクロスバリデーションを行い、有効性をチェックしました。なかなかのパフォーマンスがでていたので、これは行けるとおもったのですが、念のためモデルに基づいてペーパートレーディングを行っていると予想よりも大分パフォーマンスが悪いことに気づきました。

 

ペーパートレーディングとは、株の値動きを、モデルどおりに売買すると仮定して、損益を計算するものです。実データをつかったシミュレーションですね。これがあまりワークしなかったのです。よく調べてみたら原因がわかりました。

 

株の値動きは、極端に動くときは、銘柄によらず一斉に同じような挙動をすることがあります。たとえば、天災や経済に関する悪いニュースなんかがあるときには一斉に投げ売りして、その後に一斉に戻しがあったりします。そうなると、そのパターンを人工知能が過度に学習してまいます。すると、クロスバリデーションにおいては、そのときの値動きに対しては非常に機能するのでパフォーマンスがよく見えますが、実際には似たような動きというのは、ほとんど起こることがなく、銘柄ベースでは十分なサンプルはあるものの、その日の値動きという意味では十分なサンプルがあるとはいえず、別の期間ではワークしないということがあるようです。

 

実際に、僕は学習データとテストデータをランダムではなく、期間が重複しないように分けると、モデルのパフォーマンスは大分悪くなりました。。とほほ。。ですので、今はモデルの構築のやり直しをしています。なかなか簡単にはいきませんね。。