機械学習で株価予測したら損した件

広告

以前、tensorflowのLSTM(時系列データを扱うのに便利なモデル)を使って、株価予想をやってみました。そして実際に買ってみました。もちろんテストをしていません(笑)。

テストをして、よくない結果が出れば、1回も取引することなく、終わりを迎えることになりますからね。なんとなくそれが寂しかったので。テストをせずに機械学習で予想した通り、日本化薬を買ったら、ちょい損しました

今では機械学習はほとんどせずにビットコインのマイニングをやっております。今回はなぜ失敗したのかを考えてみたいと思います。予想がうまくいっていて、たまたま日本化薬が下がったという結果ではありません。複数の予想銘柄が日経平均のパフォーマンスに下回っていましたから、このシステム自体が良くなかったのでしょう。

まず一つ言えることは、学習がうまくいっていなかった可能性が高いです。学習がうまくいかないとは将来の価格は今と同じ価格と同じだと予想してしまうことです。いうまいことチャートの共通点のようなものが見つけられず、結果として、現状維持と予測するのが最も損失関数を小さくする状況です。このとき、現在値あるいは過去数日間の平均的な値と近い値を予想するようになります。

実際に複数の銘柄を予想させてみましたが、1週間後に上昇するとされた銘柄にはある特徴がありました。それは直近で急落している銘柄だということです。例えば過去7日間の平均的な値を予想値として出力するシステムなら次のような仕組みで、直近で急落している銘柄が魅力的に見えるというわけです。

なんとなくイメージがつかめるかと思います。そして私は急落中の銘柄を購入してしまい、そのままずるずる下がってしまったということになります。残念。

まだ諦めたわけではありません。今後の改善点はいくつかあります。

  • CNNを使った時系列データの分析に関する論文をたまに見るので、CNNを利用してみる。
  • 入力を1銘柄ではなく、関連するであろう9銘柄も入力して、10行の行列を入力データとしてみる。
  • 日経平均との相関を考慮し、日経平均の影響を抜いたデータを入力にしてみる。
  • データ量をもっと増やす。

などなど、考えられることは沢山あります。こういった改善であったり、根本からシステムを見直すことで、株価予測第二弾を作っていこうかと思ってます。

時系列データの分析なら次の書籍がオススメです!

学びの多い失敗でした。次からはちゃんとテストします!

関連記事