見出し画像

[競馬予想AI] 負ける馬を予想するモデルで的中率や回収率は向上するのか?

今回は「負ける馬を予想して勝ち馬の的中率や回収率を上げることができるのか?」という、検証のお話です。
もう少し詳しく説明すると、勝ち馬予想モデルの出力から負け馬予想モデルの出力を差し引けば勝ち馬モデルの予想精度が向上するのではないかという仮説を検証していきます。


負ける馬を予想するモデルを作る

早速、負ける馬を予想するモデルを作成します。今回はLightGBMで6着以下の馬とそうでない馬の予測を行いました。

y_train = [1 if i > 5 else 0 for i in np.array(X_train["rank"])]

これで負ける馬を学習させてみましょう。
ちなみにですが、このモデルで勝ち馬を予想するとコンマ数%の的中率となりました。100回に1回も勝たない確率なので確かによく予測できてそうです。このモデル単体でも数頭の消去法として活用できそうです。


勝ち馬を予想するモデルとアンサンブルする

みなさんがいつも使用している(?)勝ち馬を予想するモデル(今回は3着内になる馬を予想するモデル)の出力と、先ほど作成した負ける馬を予想するモデルの出力とをアンサンブルします。
具体的には「勝ち馬を予想するモデルの出力」と「負ける馬を予想するモデルの出力」の差をとる簡単な手段を使います。

pred = win_pred - lose_pred

これで勝ち馬であろう馬から負けるであろう馬を割り引いた予測結果が得られたはずだと推測します。つまり、勝つであろう馬がより明確に浮き出て判断しやすくなったはずです。


比較検証1ー3着内馬予想モデル

実際に勝ち馬が予想しやすくなったのか調べてみます。

今回は勝ち馬を予想するモデルをいくつか用意しました(学習データ・教師データは同じ)。勝ち馬を予想するモデルの予想結果と負け馬を予想するモデルとアンサンブルした予想結果とで,、それぞれ的中率と回収率の平均を取ったもので比較することにします。

少し見づらいかもしれませんが結果は次の通りになりました。

勝ちと負けのアンサンブル比較表

的中率

単勝的中率は平均0.02ポイントとわずかに上昇しているもののモデルによっては減少したものもありましたので、的中率が上昇したと判断するのは難しそうです。
1着予想馬の複勝率は平均0.53ポイント上昇し、すべてのモデルにおいて上昇していました。この上昇は信ぴょう性が高そうです。
その他の的中率は減少またはほとんど変化がありませんでした。

回収率

単勝と1着予想馬の複勝の回収率はすべてのモデルにおいて上昇、2着予想馬の複勝の回収率はすべてのモデルにおいて減少、3着予想馬の複勝の回収率はほぼすべてのモデルにおいて上昇しました。

以上より、特に1着予想馬の複勝についてはアンサンブルによる効果があったといえそうです。
なぜ1着予想馬だけ明らかな効果があったのかですが、その理由の一つに勝ち馬を予想するモデルは3着以内に入る馬を予想していたからかもしれません。ということで、1着予想馬を予想するモデルを使用してもう一度比較検証してみます。


比較検証2ー1着馬予想モデル

1着の馬を予想するモデルを使った場合の結果は次の通りです。

勝ちと負けのアンサンブル比較表(単勝)

的中率

単勝の的中率は平均0.66ポイント上昇し、すべてのモデルにおいて上昇していました。また、1着予想馬の複勝率は平均1.48ポイント、2着予想馬の複勝率は平均0.03ポイント上昇し、これらもすべてのモデルで上昇していました。3着予想馬の的中率は平均で減少しました。

回収率

回収率は単勝で平均6.55ポイント、1着予想馬の複勝は平均3.60ポイント、2着予想馬の複勝は平均1.21ポイント、3着予想馬の複勝は平均3.76ポイント上昇し、これらはすべてのモデルにおいて上昇していました。

以上より、このモデルではほぼすべての精度が改善されました。また、検証1で使用したモデルよりも顕著な改善が見られました。しかし、2つのモデルの数値自体を比較するとそれほど性能に差はなさそうです。


検証結果

負け馬を予想するモデルを利用することで、一部的中率や回収率の改善が見られました。一定の効果はあったといえそうです。的中率が0.5%でも、回収率が5%でも上がるのは競馬予想AIを作っている方にとっては大きいと思いますので試す価値はあると思います。
しかしモデルの総合的な性能を比較したときどのモデルを本番で採用するかはまた考える必要がありそうです。


▼AIの開発記は随時こちらでまとめています


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