競馬AIで各馬の指数や勝率を出していると、ときどき「どの馬もほとんど差がないレース」が出てきます。
例えば、AIが推定した勝率が次のようになっていたとします。
1位 A馬 p_win 0.145
2位 B馬 p_win 0.139
3位 C馬 p_win 0.131
4位 D馬 p_win 0.124
5位 E馬 p_win 0.116
1位から5位までの差がほとんどありません。
こういうレースを見ると、「AI自身もよく分かっていないのだから、買わない方がよいのでは?」と考えたくなります。実際、指数1位が0.30、2位が0.12というレースと比べれば、かなり混戦に見えます。
競馬で長期的に回収率を安定させたいのであれば、難しいレースを無理に買わず、分かりやすいレースだけ選ぶという考え方はかなり合理的です。
一方で、少し別の見方もできます。
AIが迷っているということは、市場も迷っている可能性があります。さらに、もし市場だけが特定の1頭を強く支持しているなら、AIの「横並び」という判断とオッズの間に大きなズレが生まれるかもしれません。
つまり、
指数差が小さいレースは難しいから見送るべきなのか、それとも価格の歪みを探しやすいレースなのか。
今回は、AI指数の差を「レースの難易度」として使えるのか、そして混戦レースを本当に見送るべきなのかを考えてみます。
- まず「指数差が小さい」とは何を意味しているのか
- 指数1位なら何でも同じように買うのは少し危ない
- 混戦レースは本当に的中率が下がるのか
- ただし的中率が低いから見送るとは限らない
- 混戦ほど市場の人気が割れるとは限らない
- 「指数差小+圧倒的人気馬」は面白い条件かもしれない
- AIが迷う理由にも種類がある
- 上位5頭が横並びなのか、全馬が横並びなのか
- 上位3頭合計p_winという見方もできる
- 混戦だからこそBOXが魅力的に見える
- 「分からないから広く買う」は危険なサイン
- 「見送る」は予想を諦めることではない
- ただし混戦を全部見送ると穴馬も捨てることになる
- 「指数差×オッズ」で考える方が自然かもしれない
- レース難易度を一つの数値にできないか
- 予測エントロピーという考え方も使えそう
- モデル同士が割れるレースも「混戦」と考えられる
- 混戦レースには二つの戦略がある
- 「守り口座」と「攻め口座」を分けるのもあり
- 混戦レースを見送る基準を事前に決める
- 見送りによって回収率は上がっても利益額が減ることがある
- 自分が混戦に耐えられるかという問題もある
- AIが迷っているなら、人間が補えばいいのか
- 混戦レースは「研究対象」としてかなり面白い
- 混戦度を記録してみる
- 個人的には「一律見送り」より条件付き見送りから試したい
- まとめ
まず「指数差が小さい」とは何を意味しているのか
指数差が小さいと聞くと、「どの馬が強いか分からない」と考えます。
これはおおむね正しいと思います。
例えばp_winが、
A馬 0.32
B馬 0.18
C馬 0.10
D馬 0.08
なら、AIはA馬をかなり高く評価しています。
一方で、
A馬 0.15
B馬 0.14
C馬 0.13
D馬 0.12
なら、A馬が1位であること自体に大きな意味がない可能性があります。
順位だけを見ると、どちらも「指数1位=A馬」です。しかし中身はかなり違います。
前者は、
A馬が他馬より明確に抜けている
という評価。
後者は、
たまたま最も数字が高かったのがA馬
という程度です。
つまり、指数順位を見るだけでは、AIがどれくらい自信を持っているのかは分かりません。
「1位」という順位より、1位と2位の差、さらに上位全体の確率分布を見ることが重要になります。
指数1位なら何でも同じように買うのは少し危ない

例えば毎週、AI指数1位の単勝を買う戦略を考えたとします。
指数差が大きいレースも、小さいレースも同じ100円です。
しかし、本当にそれでよいのでしょうか。
Aレースでは、
1位 30%
2位 12%
Bレースでは、
1位 14%
2位 13%
です。
どちらも「指数1位」ではありますが、AIの評価構造はまったく違います。
Bレースでは、2位だけでなく3位、4位とも差が小さいかもしれません。その場合、1位馬が最も勝ちやすいというより、「候補の一頭」という表現の方が近いでしょう。
この状態で、単純に指数1位だからという理由だけで馬券を買うと、AIがほとんど差を付けられていないレースまで強制的に参加することになります。
それなら、
指数1位を買う前に、その1位がどれくらい抜けているのかを見る
方が自然です。
混戦レースは本当に的中率が下がるのか
これはまずデータで確認したいところです。
例えば過去レースについて、1位と2位のp_win差を次のように分類します。
| 1位と2位の差 | イメージ |
|---|---|
| 0.15以上 | かなり抜けている |
| 0.10~0.15 | 明確な上位 |
| 0.05~0.10 | やや優勢 |
| 0.02~0.05 | 混戦気味 |
| 0.02未満 | ほぼ横並び |
そして各グループで、指数1位の勝率を調べます。
もし差が大きいほど1位馬の実勝率も上昇しているなら、指数差は「AIの自信度」として使える可能性があります。
逆に、指数差と実際の勝率にほとんど関係がないのであれば、現在のモデルで指数差をレース選択へ使う意味はあまりありません。
ここで大切なのは、「差が小さいから難しそう」という感覚を、そのまま事実だと思わないことです。
AIで使うなら、まず本当に指数差が予測難易度と関係しているかを確認したいところです。
ただし的中率が低いから見送るとは限らない

仮に混戦レースで指数1位の勝率が低かったとします。
それなら買わない方がよいのでしょうか。
ここで競馬特有の問題が出てきます。
馬券では、的中率だけでなくオッズがあります。
例えば指数差が大きいレースでは、AI1位が市場でも1番人気になりやすく、単勝2倍前後かもしれません。
一方、混戦レースでは人気も割れ、AI1位でも単勝8倍になることがあります。
仮に、
指数差大:勝率35%、平均単勝2.2倍
指数差小:勝率15%、平均単勝8.0倍
だったとします。
単純な期待値なら、
指数差大
0.35 × 2.2 = 0.77
指数差小
0.15 × 8.0 = 1.20
です。
この仮定では、当たりやすいレースの方が馬券としては魅力がありません。
つまり、
「予想しやすいレースを選ぶ」
と、
「期待値の高いレースを選ぶ」
は同じではありません。
混戦ほど市場の人気が割れるとは限らない
さらに面白いのは、AIが混戦と判断しているのに、市場はそう思っていないケースです。
例えば、
AI評価
A馬 15%
B馬 14%
C馬 13%
D馬 12%
なのに、単勝オッズが、
A馬 1.8倍
B馬 6倍
C馬 8倍
D馬 10倍
だったとします。
市場はA馬を圧倒的に高く評価しています。
しかしAIから見ると、A馬は他馬とほとんど差がありません。
このとき重要なのは、
AIが迷っていることそのものより、市場が迷っていないこと
です。
もしAIの確率推定が正しいなら、1.8倍のA馬にはかなり厳しい価格が付いています。
一方、B~Dには価格的な余裕が生まれている可能性があります。
つまり混戦レースは、
買わないレース
ではなく、
人気馬を疑うレース
として使える可能性があります。
「指数差小+圧倒的人気馬」は面白い条件かもしれない
競馬AIで検証するなら、個人的にはこの組み合わせがかなり気になります。
例えば、
1位と2位のp_win差が0.02未満。
にもかかわらず、
1番人気単勝2.0倍以下。
というレースです。
AIは、
「どの馬も大差ない」
と判断しています。
市場は、
「この馬がかなり強い」
と判断しています。
この評価差が、実際に何を意味するのかを調べます。
例えば1番人気の勝率が市場想定ほど高くないなら、
1番人気を消した馬連。
ワイド。
三連複。
あるいは他馬の単勝。
といった戦略へつながるかもしれません。
もちろん逆に、市場の方が正しく、AIが単に能力差を認識できていない可能性もあります。
だからこそ検証価値があります。
AIが迷う理由にも種類がある

指数差が小さい理由をすべて同じものとして扱うのも少し危険です。
例えば、16頭すべてが同程度の能力だから横並びになっているレースがあります。
一方で、
データが少なくて分からない。
初出走馬が多い。
条件替わりが多い。
距離延長馬ばかり。
久々の出走馬が多い。
など、モデルが判断材料を持っていないために横並びになるケースもあります。
前者は、
本当に能力差の小さい混戦。
後者は、
AIにとって情報不足な混戦。
です。
この二つは、同じ指数差でも意味が違います。
特に新馬戦やキャリアの浅い未勝利戦では、モデルの予測が横並びになる理由が単純な情報不足という可能性があります。
それなら、指数差を使うときにはレースクラスや各馬の出走回数も一緒に見た方がよさそうです。
上位5頭が横並びなのか、全馬が横並びなのか
同じ「指数差が小さい」でも、さらに違いがあります。
例えばAレース。
1位 18%
2位 17%
3位 16%
4位 8%
5位 6%
これは上位3頭が混戦ですが、4位以下とは差があります。
一方Bレース。
1位 14%
2位 13%
3位 12%
4位 11%
5位 10%
6位 9%
こちらは上位6頭まで横並びです。
どちらも1位と2位の差は1%ですが、レース構造はまったく違います。
Aレースなら、
「A・B・Cのどれかが勝つ可能性が高い」
という判断ができます。
Bレースでは、
「かなり多くの馬にチャンスがある」
という状態です。
つまり、単純な1位-2位差だけではなく、確率がどこまでの馬に集中しているかも見た方がよいでしょう。
上位3頭合計p_winという見方もできる
例えば上位3頭の勝率合計を使います。
Aレース。
1位 25%
2位 20%
3位 15%
合計60%。
Bレース。
1位 15%
2位 14%
3位 13%
合計42%。
Aレースでは上位3頭で勝ち馬の大部分をカバーしています。
Bレースでは、上位3頭以外にもかなり勝つ可能性があります。
この指標なら、
レース全体の上位集中度
を見ることができます。
ワイドや三連複のように複数頭を選ぶ馬券なら、こちらの方が重要になるかもしれません。
例えば上位3頭の勝率・馬券内率が高く集中しているレースなら、単勝1点では難しくても、上位馬同士の組み合わせには向いている可能性があります。
混戦だからこそBOXが魅力的に見える

指数差が小さいレースを見ると、
「どれが来るか分からないからBOXにしよう」
と思います。
例えば指数上位5頭の三連複BOX。
以前考えたように、5頭BOXなら10点です。
混戦ならどの馬が来てもおかしくないので、BOXは合理的に見えます。
しかし、ここには注意が必要です。
本当に混戦なら、
指数6位や7位も5位と大差ない
可能性があります。
例えば、
5位 0.090
6位 0.087
7位 0.081
くらいなら、「上位5頭」という区切りに大きな意味はありません。
5頭BOXにした瞬間、6位以下を完全に切ることになります。
つまり混戦レースほど、BOXを広げたくなる一方で、どこまで広げても切る境界が曖昧になります。
その結果、6頭BOX、7頭BOXと点数が膨らんでしまいます。
「分からないから広く買う」は危険なサイン
これは混戦レースで特に気を付けたいところです。
指数差が小さい。
だから自信がない。
自信がないから買い目を増やす。
結果として購入金額が増えます。
かなり逆説的です。
予測精度が低いレースほど、多くのお金を使っている
状態になるからです。
例えば指数差の大きいレースでは単勝1点100円。
混戦では三連複10点1,000円。
こうなると、AIが最も迷っているレースに10倍の資金を投入しています。
これは少し不自然です。
混戦だからこそ買い目を増やすのではなく、
混戦だから賭け金を減らす、あるいは見送る
という考え方も十分合理的です。
「見送る」は予想を諦めることではない

競馬をしていると、見送りに少し敗北感を感じることがあります。
指数を出した。
馬柱を見た。
時間を使った。
せっかくだから何か買いたい。
しかし、予想したから馬券を買わなければならないわけではありません。
むしろAIを使う最大のメリットの一つは、
全レースを予測したうえで、買うレースだけ選べること
です。
36レース予想しても、購入するのは3レースでも構いません。
AIが「このレースはかなり混戦」と出しているなら、それ自体が見送り理由になります。
「何を買うか」だけでなく、
「どこでは買わないか」を決めるAI
として使うわけです。
ただし混戦を全部見送ると穴馬も捨てることになる
ここで再び問題があります。
混戦レースは、人気薄にも勝機があります。
当然オッズも高くなります。
もし指数差の大きいレースだけ選ぶと、
AI1位=1番人気
ばかりになるかもしれません。
的中率は上がります。
しかし回収率は下がる可能性があります。
例えば混戦レースでは、
AI1位が6番人気。
AI2位が8番人気。
ということも起きます。
予測精度は低くても、的中したときのリターンは大きい。
つまり、
見送りフィルターを強くしすぎると、期待値の源泉まで消してしまう
可能性があります。
これは実際のデータで確認するしかありません。
「指数差×オッズ」で考える方が自然かもしれない
そこで、指数差だけで見送るのではなく、オッズを組み合わせます。
例えば次のような4象限を考えます。
| AI評価 | オッズ | 考え方 |
|---|---|---|
| 指数差大 | AI1位が人気 | 堅いが価格確認 |
| 指数差大 | AI1位が人気薄 | 強い買い候補 |
| 指数差小 | 人気も割れている | 本当に混戦 |
| 指数差小 | 1頭だけ圧倒的人気 | 市場とのズレを検証 |
この中で最も分かりやすいのは、
指数差大+人気薄
でしょう。
AIはかなり差を付けているのに市場では評価されていない。
一方、
指数差小+人気も割れている
なら、本当に難しいレースとして見送る選択肢が強くなります。
そして、
指数差小+1頭だけ圧倒的人気
なら、人気馬の過剰評価を疑うレースとして面白い。
このように、指数差は単独で使うより、市場評価と組み合わせた方が意味が出る気がします。
レース難易度を一つの数値にできないか
競馬AIとしては、単純な「1位と2位の差」からもう少し発展させたいところです。
例えばレースごとに、
- 1位と2位のp_win差
- 1位と3位の差
- 上位3頭のp_win合計
- 上位5頭のp_win合計
- モデル間の順位一致度
などを組み合わせます。
そして、
race_confidence
のようなレース単位の指標を作ります。
race_confidenceが高いほど、上位馬の評価がはっきりしている。
低いほど混戦。
さらに実際の結果と照らし合わせ、
race_confidence別の、
指数1位勝率。
単勝回収率。
複勝回収率。
を出します。
これが安定していれば、「買う馬を予測するAI」だけでなく、**「買うレースを選ぶAI」**へ進化できます。
予測エントロピーという考え方も使えそう
もう少し数学的に考えるなら、各馬の勝率分布から「予測の散らばり」を測ることもできます。
一頭へ勝率が集中しているレースは、AIの予測がはっきりしています。
多くの馬へ均等に勝率が散っているレースは、AIも迷っています。
こうした分布の散らばりを使えば、単純な1位-2位差よりもレース全体の混戦度を表現しやすくなります。
ただし、複雑な指標を作ること自体が目的ではありません。
重要なのは、
その指標が本当に将来の予測精度や回収率と関係しているか
です。
名前の格好よい「混戦指数」を作っても、成績と無関係なら意味はありません。
モデル同士が割れるレースも「混戦」と考えられる
指数差とは別に、複数モデルの予測結果を見る方法もあります。
例えば、
モデルA:1位A馬
モデルB:1位A馬
モデルC:1位A馬
なら、モデル間で一致しています。
一方、
モデルA:A馬
モデルB:D馬
モデルC:B馬
なら評価が割れています。
もし指数自体は多少差が付いていても、モデルによって1位馬が変わるなら、予測は不安定かもしれません。
つまり「混戦」とは、
馬同士の指数差が小さいこと
だけではなく、
予測方法を少し変えるだけで答えが変わること
とも考えられます。
これは以前考えた「AI自身の迷い」を測る方法として面白そうです。
混戦レースには二つの戦略がある
ここまで考えると、指数差の小さいレースへの対応は、大きく二つに分けられます。
一つ目は、
守りとして見送る。
AIが迷っているなら無理に参加しない。買い目を増やして不確実性を埋めようとせず、次のレースを待つ。
これは回収率のブレや購入レース数を減らす方向です。
もう一つは、
攻めとして市場との評価差を探す。
AIは横並びなのに1頭だけ過剰人気なら、その人気馬以外のオッズに注目する。あるいはAI上位馬の中で、市場が最も評価していない馬を探す。
こちらは的中率より期待値を狙う方向です。
同じ「混戦」という情報から、全く逆の戦略が出てきます。
だから単純に、
混戦=見送り
とは言い切れないのだと思います。
「守り口座」と「攻め口座」を分けるのもあり
もし両方を検証するなら、戦略を混ぜない方がよさそうです。
例えば、
安定戦略
指数差0.08以上のみ購入。
AI1位単勝。
混戦逆張り戦略
指数差0.02未満。
1番人気2.5倍以下。
AI上位の人気薄を購入。
というように分けます。
そして別々に回収率を集計します。
こうすれば、
「指数差でレースを絞った方が安定するのか」
と、
「混戦レースの市場ズレを狙う戦略に価値があるのか」
を同時に確認できます。
一つの口座で全部混ぜてしまうと、どちらの戦略が良かったのか分からなくなります。
混戦レースを見送る基準を事前に決める
見送り戦略で一番避けたいのは、結果を見てから、
「これは混戦だったから仕方ない」
と説明することです。
例えばAI1位が外れた後に、
「確かに指数差が小さかった」
と気付く。
これでは後付けです。
見送るなら、
レース前に基準を固定する
必要があります。
例えば、
1位-2位差0.02未満は単勝戦略から除外。
上位5頭が一定範囲内なら購入しない。
複数モデルで1位が一致しない場合は見送り。
といったルールです。
そして、それを過去データと未来データの両方で試します。
「今日は何となく難しそう」ではなく、数字で線を引くことがAIを使う意味だと思います。
見送りによって回収率は上がっても利益額が減ることがある
ここも注意が必要です。
例えば全1,000レース購入すると、
回収率102%。
利益2,000円。
指数差の大きい300レースだけに絞ると、
回収率108%。
利益2,400円。
これは良いフィルターです。
しかし、
100レースだけに絞って回収率115%。
利益1,500円。
ならどうでしょうか。
回収率は大きく改善していますが、利益額は減っています。
さらにサンプル数も少なくなります。
つまり見送り戦略を評価するときは、
回収率だけでなく、購入回数と利益総額も見る
必要があります。
極端に条件を厳しくすれば、たまたま高回収率になることもあります。
「買わなければ負けない」は正しいですが、買わなければ利益も生まれません。
自分が混戦に耐えられるかという問題もある

理論だけではなく、人間側の問題もあります。
例えば混戦レース戦略が、
的中率12%。
回収率115%。
だったとします。
数字だけなら魅力的です。
しかし8回、10回、15回と外れる可能性があります。
そのたびに、
「やっぱり混戦なんて買うべきじゃない」
と思うかもしれません。
一方、指数差の大きいレースなら、
的中率35%。
回収率105%。
こちらの方が心理的には続けやすいでしょう。
長期戦略では、
理論上の期待値だけでなく、自分がそのブレに耐えられるか
も重要です。
AIには感情がなくても、馬券を購入する人間には感情があります。
AIが迷っているなら、人間が補えばいいのか
もう一つ考えられるのが、
混戦レースだけ人間が詳しく見る
という方法です。
例えばAI上位5頭がほぼ横並び。
そこで、
パドック。
当日の馬場。
展開。
返し馬。
直前オッズ。
などを人間が確認します。
AIが数値上差を付けられないところを、人間の追加情報で補う考え方です。
これは理屈としては魅力的です。
ただし、人間が介入した結果、本当に成績が改善したかを記録する必要があります。
AI混戦レース100件のうち、
人間判断で購入30件。
見送り70件。
その30件の回収率がどうだったのか。
そこまで残さなければ、
「自分が見れば混戦でも分かる」
という感覚だけが残る可能性があります。
混戦レースは「研究対象」としてかなり面白い
馬券を買うかどうかとは別に、混戦レースはAI研究としてかなり価値があります。
なぜAIは差を付けられなかったのか。
本当に能力差が小さかったのか。
データ不足だったのか。
結果的に勝った馬には、AIが見ていない情報があったのか。
市場はどの馬を高く評価していたのか。
こうしたことを調べれば、モデル改善のヒントになります。
むしろ、
指数1位が0.40で順当に勝ったレースより、
上位5頭横並びの中から市場人気薄が勝ったレース
の方が、新しい発見につながるかもしれません。
買わないレースだから分析しないのではなく、買わないレースこそモデルの限界を知る材料にするわけです。
混戦度を記録してみる
実際の運用では、各レースに「混戦度」を付けて保存してみると面白そうです。
例えば、
A:1位が明確に抜けている
B:上位2~3頭の争い
C:上位5頭程度の混戦
D:ほぼ全体が横並び
のような簡単な分類でもよいでしょう。
そして半年後に、
- AI1位勝率
- AI1位複勝率
- 単勝回収率
- ワイド回収率
- 平均オッズ
- 最大連敗
を比較します。
もしDランクだけ極端に回収率が低いなら、見送りルールとして使えます。
逆にDランクで人気薄単勝の回収率が高いなら、別戦略として独立させる価値があります。
感覚としての「混戦」を、実際の成績へつなげることが大切です。
個人的には「一律見送り」より条件付き見送りから試したい
現時点でこのテーマを考えるなら、
指数差が小さいレースをすべて見送る
というルールは少し強すぎる気がします。
まずは、
指数差が小さい。
さらに市場人気も割れている。
さらにモデル間でも評価が一致しない。
この3つが揃った場合に見送る。
くらいから試したいところです。
逆に指数差が小さくても、
1番人気だけ極端に売れている。
AI上位馬の中に大きな人気薄がいる。
なら、市場との評価差を見る研究対象として残します。
つまり、
AIが迷っているか
だけでなく、
市場も迷っているか
を見るわけです。
AIも市場も迷っているなら、素直に見送り。
AIは迷っているのに市場だけ自信満々なら、そこに価格差があるかもしれません。
この区別はかなり重要だと思います。
まとめ
指数差が小さい混戦レースは見送るべきなのか。
直感的には、見送る理由があります。1位と2位、さらに3位以下までほとんど差がないのであれば、AI自身が勝ち馬を明確に絞れていない状態だからです。
特に、「分からないからBOXを広げる」と購入点数を増やすのは注意したいところです。予測精度が低いレースほど多くの資金を使うという逆転が起きるからです。
一方で、
混戦=馬券として価値がない
とは限りません。
指数差の大きいレースでは、市場も同じ馬を強いと評価して低オッズになっている可能性があります。逆に混戦レースでは人気が割れ、AI上位馬に高いオッズが残ることがあります。
さらに面白いのは、AIが混戦と判断しているのに、市場だけが1頭を圧倒的に支持しているケースです。
ここには、
「AIは横並び、市場は一本かぶり」
という大きな評価差があります。
このときはレースを見送るより、人気馬が本当にそこまで信頼できるのかを検証する価値がありそうです。
つまり指数差は、
そのまま購入可否を決める答えではなく、レースの性格を判断する材料
として使う方がよいのだと思います。
指数差が大きい。
AI1位も人気薄。
これは買い候補。
指数差が小さい。
市場人気も割れている。
モデル間でも評価がバラバラ。
これは見送り候補。
指数差が小さい。
しかし1頭だけ圧倒的人気。
これは市場との評価差を調べる候補。
このように分類すれば、「混戦だから買わない」という単純なルールより、もう少し競馬AIらしいレース選択ができそうです。
そして最終的に確認したいのは、実際のデータです。
1位と2位の指数差別に勝率はどう変わるのか。
回収率はどう変わるのか。
最大連敗はどうか。
人気との組み合わせではどうなるか。
そこまで調べて初めて、
「指数差が小さいレースを見送る」という判断自体に期待値があるのか
が分かります。
もしかすると、競馬AIで最初に作るべきなのは「一番勝ちそうな馬を選ぶ仕組み」だけではないのかもしれません。
今日はどのレースなら自分のAIを信用してよいのか。
それを判断する仕組みまで作れれば、AIは予想するだけでなく、「待つべきレース」を教えてくれる存在になりそうです。




コメント