[競馬予想AI] 居残り勉強をするとはずしたレースも当てることができる?

競馬予想AIを使っていると(使っていなくても)どうしてもはずしてしまうレースというものは存在します。はずすレースの割合のほうが大きいのではないでしょうか。となるともったいないですよね。

そのはずしたレースをなんとかカバーできないかというのが今回のnoteです。


どうして予想を外してしまうのか

機械学習では特徴量がすべてと言っても過言ではありません。回帰あるいは分類するために必要な情報が欠けていると予想ははずれてしまいます。ほかに、評価関数や評価指標、モデルの初期値によって学習が偏ったりします。

例えば、AIが予想をはずしてしまう原因が後者のようなある種のクセのようなものなのであれば対策できそうな気がします。そこで、次のような仮説を考えました。

仮説

『はずれたレース群は情報(特徴量)不足ではなく、当たったレース群とクセが異なっていたために予想がはずれた。』

そこで、はずしたレースだけで学習してみてはどうでしょうか?試験勉強や資格の勉強でも不正解だった箇所は改めて学習することで苦手な箇所を克服していきますよね。この手法を機械学習にも応用してみようと思います。これを居残り学習と呼ぶことにします。


居残り学習する

改めて紹介することもありませんが、通常通り学習したモデルで予想をはずしたレースのみを使って学習を行うだけです。

今回は複勝を予想することとします。

当noteで作っているAIの1着予想の複勝正解率は約64%です。つまり平均約36%ははずしてしまうということです。この36%のうちどれくらいカバーできるかがキモになります。

居残り学習した結果

はずしたレースだけで学習した結果、的中率は24.4%でした。つまり、通常通り学習したモデルと合わせれば、

0.64+(1-0.64)×0.244=約72.8%

となり、7割強までカバーできることになります。的中率が低いため約8.8ポイントしかプラスになりませんでしたが、とりあえず良しとしましょう。


実際のレースで確認してみる

12月12日(日)のレースで実際に確認してみましょう。
この日は32レースの予想を行いました。通常のモデルによる複勝の的中率は約64%なので20レースは当たっているはずですが、この日の的中数は19レースでした。誤差と言っていいでしょう。
居残り学習したモデルの予想まで加えると約72.8%までカバーできるので、32レース中23レースは的中するはずです。

結果は、

  • 通常モデルの的中レース数:19レース

  • 居残り学習モデルの予想も加えた的中レース数:25レース

となりました。
的中率にすると約78%です。6レース多く的中することができました。また、この25レースには通常のモデルでは当たっていたが居残り学習のモデルでは他の馬も当たったケースも含みまれているため(複勝のため的中馬は多くの場合3頭存在する)、単純に当たった数は6より多くなります。もちろん同じ馬を当てていたケースもありました。

実際のレースでも問題なく予想できているようです。


この手法による問題点

結果として約72%までカバーできるという結果になりましたが、この手法には問題点があります。
ずっと「カバーできる」と言っていたように、これはAIの的中率を上げる方法ではなく的中する割合を大きくする手法だからです。実際にそのレースが終えるまで予想が当たるかはずれるかはわかりません。にもかかわらず、通常のモデルと居残り学習のモデルを使ってそれぞれ1頭ずつ予想をするのは2頭分の馬券を買っているのと同じです。多くの馬券を買えば当たりやすくなるのは当然です。

つまり、1つの予測器として的中率を上げるまでには至っていません。「居残り学習の結果を使用して実際に的中率を上げることはできるのか」これは今後の課題になります。


最後に

今回は予想を外したレースだけで学習をするとはずれたレースもカバーできるのかというお話でした。結果は「少しカバーできる」程度のものでした。もう少し多くカバーできると期待していたのですが、8ポイントのカバーも大きな進歩です。
今後はこの居残り学習の考えを使ってAI自体の性能を上げることができるか挑戦してみる予定です。

また、現在血統データを使用した予想にも着手し始めたところです。こちらの試行錯誤の結果や進捗についてもまた後日noteでお知らせできたらと思います。

よろしければサポートをよろしくお願い致します。いただいたサポートは今後の技術向上のために書籍費用等に当てられ、このnoteで還元できればと思います。