競馬AI開発記(開発・改善)

競馬AI開発記|適性1位・2位はよく来る。それでも単勝では儲からない

競馬AIを作りながら実戦を続けていると、ときどき数字の見方に迷うことがあります。

今回もそうでした。

適性順位1位と2位の成績を集計してみると、複勝ではかなり興味深い数字が出ています。

適性1位 複勝回収率104.2%
適性2位 複勝回収率142.2%

どちらも100%を超えました。

「それなら適性1位と2位を買えばいい」

そう考えたくなります。

ところが、単勝で見ると話が変わります。

適性1位も2位も、単勝回収率は100%を超えていません。

ここで一つ、大きな疑問が出てきました。

「よく来る馬」と「単勝で儲かる馬」は、同じではないのではないか。

私が競馬AIで最終的にやりたいことは、複勝をたくさん当てることではありません。

1レースの勝ち馬を1頭見つけること。

今回は、この矛盾について考えてみます。


適性1位・2位は確かによく来ている

8月から実戦データを蓄積してきて、最近特に注目しているのが適性順位です。

その中でも適性1位と2位。

実際の成績を集計すると、複勝では、

適性1位 回収率104.2%
適性2位 回収率142.2%

という結果になりました。

まだ十分なレース数とは言えません。

この数字だけを見て、

「適性1位と2位を買えば儲かる」

と結論づけるつもりもありません。

それでも、自分で作ってきた「適性」という数字が、少なくとも3着以内に来る馬を探すという点では機能している可能性があります。

これは素直に今後も検証したいと思います。

ところが、私には一つ困ったことがあります。

私が作りたいのは「複勝AI」ではない

複勝の数字だけを追うなら、話は比較的簡単かもしれません。

適性1位・2位を中心に複勝を買う。

その結果を記録する。

回収率が100%を超える状態が長期間続くかを調べる。

これも一つの競馬AIでしょう。

でも、私が作りたいものは少し違います。

私の最終目標は最初から、

「1レースの勝ち馬を1頭見つけること」

です。

究極的には、

単勝1点。

ここを目指しています。

だから、複勝回収率が100%を超えたことはうれしいのですが、それだけで満足するわけにはいきません。

単勝にすると100%を超えない

問題はここです。

適性1位も2位も、単勝回収率では100%を超えていません。

つまり、

馬券圏内にはよく来る。
しかし、勝ち切る馬を選べているわけではない。

ということになります。

ここは非常に大きな違いだと思います。

例えば2着、3着が何度続いても、複勝なら的中です。

しかし単勝では全部外れです。

逆に単勝では的中数が少なくても、高い配当を何度か取れば回収率が上がることがあります。

そこで改めて感じたのが、

的中率が高いことと、回収率が高いことは違う。

という当たり前の事実でした。

競馬AIを作って数字を細かく残すようになったことで、その違いが以前よりはっきり見えるようになりました。

8月、9月は実戦収支もマイナスだった

ここで実際の馬券成績にも目を向けなければなりません。

8月、9月と、単勝・複勝の月間収支はマイナスでした。

AIを作りながらの8月。

なるべく現在のシステムを固定して実戦した9月。

それでも、実際のお金は増えていません。

一方で、適性順位を個別に集計すると、1位・2位の複勝には興味深い結果が出てきた。

つまり、

AIの中に使えそうな数字はある。
でも、それを馬券としてどう使えばいいのかは、まだ完成していない。

今の状態は、そんなところだと思います。

そこで「役割」を分けることにした

ここで馬券を増やすことも考えられます。

適性1位も買う。

2位も買う。

ワイドも買う。

馬連も買う。

そうすれば的中する可能性は高くなるかもしれません。

でも、それではまた何を検証しているのか分からなくなります。

そこで10月からは、適性1位と2位の役割を整理することにしました。

考え方は単純です。

適性1位・2位の「来る力」は複勝で利用する。

そして、

単勝については、その2頭からAIに1頭を選ばせる。

これを新しい検証テーマにします。

10月からの購入ルール

10月以降は、まず適性順位1位と2位を必ず比較対象にします。

その2頭を現在のAI採点で比較。

AI点が高い方を主軸馬。

同点なら適性1位を優先します。

そして主軸馬について、

単勝+複勝

を購入します。

もう一方の適性上位馬については、

複勝3,000円

を購入します。

これまで使ってきた、

「7番人気以内」

「単勝3.0~14.9倍」

という条件は撤廃します。

オッズが高い方を優先する方法もやめます。

これによって、

適性順位
+
AI評価

という、私が作ってきた二つの数字を直接比較してみることにしました。

主役はあくまで単勝

ここは自分でも間違えないようにしておきたいと思います。

新しい買い方では複勝も買います。

しかし、複勝が主役になったわけではありません。

現在の考え方は、

本命馬券=AIが選んだ主軸馬の単勝

です。

主軸馬の複勝はリスクヘッジ。

もう一方の適性上位馬の複勝3,000円は補助。

この役割を分けます。

なぜなら、最終的に知りたいのは、

「適性1位・2位からAIが選んだ1頭を単勝で買い続けたらどうなるのか」

だからです。

ここは他の馬券と混ぜず、独立して集計していくつもりです。

単勝だけを別に検証する

10月から特に見たい数字があります。

AIが適性1位と2位を比較して選んだ主軸馬について、

単勝購入額
単勝払戻額
単勝的中率
単勝回収率

を別に記録します。

複勝が当たったから成功。

補助馬が3着に来たから成功。

そういう評価とは分離します。

AIが選んだ1頭が本当に勝っているのか。

そして、その馬の単勝を買い続けた場合に100%を超えられるのか。

これを見ます。

もしここでも単勝回収率が100%を超えなければ、まだAIの「1頭を選ぶ力」は足りないということになります。

それでも駄目なら、次に考えること

もちろん、その先の案も頭にはあります。

例えば、

「適性1位と2位のAI点差が一定以上あるときだけ単勝を買う」

あるいは、

「S評価、A評価など一定以上の評価が出たときだけ買う」

さらに、

「単勝を買わないレースを作る」

という考え方もあります。

すべての重賞で無理に勝ち馬を選ぶのではなく、

AIが本当に自信を持てるレースだけ単勝を買う。

最終的には、こちらの方が重要になる可能性もあります。

ただし、これはまだ先の話です。

今は条件を増やさない

8月、9月の経験から一つ学びました。

結果を見るたびに条件を追加すると、いつまでたっても検証が終わりません。

外れた。

条件を追加する。

また外れた。

さらに条件を追加する。

これを繰り返せば、過去の結果には合うAIを作れるかもしれません。

しかし、それが次のレースで通用するとは限りません。

だから10月は、まず現在決めたルールでやってみます。

適性1位と2位を比較する。
AIに1頭を選ばせる。
その馬の単勝成績を独立して記録する。

まずはこれだけです。

複勝で結果が出ても、まだ完成ではない

適性1位の複勝回収率104.2%。

適性2位は142.2%。

現時点では面白い結果です。

でも私は、ここで「競馬AIが完成した」とは考えません。

むしろ、この数字が出たからこそ次の問題がはっきりしました。

適性順位は馬券圏内に来る馬を探せても、勝ち馬を1頭に絞るには何かが足りないのではないか。

そこをAI採点で補えるのか。

10月から調べます。

もし補えなければ、またその数字を見て考えます。

まとめ|よく来る馬から「勝つ1頭」を選べるか

競馬AIを作り始めた頃は、AIが上位に出した馬が馬券圏内に来れば、それだけでもかなりうれしいものでした。

今でも、それは変わりません。

しかし実戦を続けていると、次の課題が出てきます。

よく来ることと、勝つことは違う。

そして、

当たることと、儲かることも違う。

適性1位・2位には、少なくとも現時点のデータでは複勝で興味深い結果が出ています。

ならば次は、その2頭の中からAIが勝ち馬を選べるか。

10月から、そこを試します。

70歳になって、自分で作ったAIに、

「この2頭なら、どちらが勝つ?」

と毎週聞くことになるとは思っていませんでした。

でも、これが今は面白い。

数字を見て、

悩んで、

少し直して、

また実戦する。

成功しているのか、遠回りしているのか。

まだ分かりません。

だから記録しておきます。

複勝で結果が出ていても、私が作りたいのは複勝AIではない。

私が作りたいのは、1レースの勝ち馬を1頭見つけるAIです。

10月は、その一歩先へ進めるのか。

まずはルールを変えず、データを積み上げてみます。

-競馬AI開発記(開発・改善)