“勝てる条件だけ買う”は本当に可能か|競馬で「買うレースを絞る」という考え方を検証する

惨敗する様子 競馬データの基礎

競馬で負け続けると、よく一つの結論にたどり着きます。

「全部買うから負けるんだ」

「得意条件だけ買えばいい」

「勝てる条件だけ狙えば回収率は上がるはず」

確かに理屈は分かります。

芝1200mが得意なら、そこだけ。

1番人気の信頼度が高い条件だけ。

AI指数1位の期待値が高いときだけ。

特定の騎手。

特定の競馬場。

特定のオッズ帯。

そうやって「自分が勝てる場所」だけを残していけば、最終的には回収率100%を超える条件だけで戦えるようにも見えます。

では、本当にそんなことは可能なのでしょうか。

今回は、

“勝てる条件だけ買う”という考え方は、どこまで現実的なのか

を競馬AIの視点から考えてみます。

  1. 「全部買わない」はかなり合理的
  2. 問題は「勝てる条件」をどう見つけるか
  3. 条件を探せば、どこかに必ず「勝っている場所」が見つかる
  4. 「勝てる条件」ではなく「過去に勝った条件」かもしれない
  5. 回収率だけで条件を選ぶと危険
  6. 勝てる条件を探すならサンプル数も条件になる
  7. 年ごとに分けると見え方が変わる
  8. 条件を細かくしすぎるとサンプルが消える
  9. 条件を後付けすると何でも勝てるように見える
  10. これはAIの過学習とかなり似ている
  11. 本当に試すなら「後から触らない期間」を作る
  12. ウォークフォワードで見るのも面白い
  13. 「勝てる条件」は永遠には続かないかもしれない
  14. 「強い条件」と「儲かる条件」は違う
  15. 「勝てる条件」は期待値で定義した方が自然
  16. ただし期待値1.0超だけ買えば勝てるほど簡単でもない
  17. 条件を絞ることで回収率が上がることはある
  18. 「モデルが不得意な理由」が分かる条件は強い
  19. 勝てる条件より「負けやすい条件を捨てる」方が現実的かもしれない
  20. 「買わない」が戦略の中心になる
  21. 条件を作るより、条件を守る方が難しい
  22. 勝てる条件だけ買うと購入機会が激減する
  23. 回収率と利益額にはトレードオフがある
  24. 100レース回収率130%と1,000レース105%ならどちらがいい?
  25. 最強条件探しは終わらなくなる
  26. 条件はできるだけシンプルな方がいい
  27. 条件は「発見後に固定」した方がいい
  28. ルール変更履歴は残した方がいい
  29. 「勝てる条件」は事前に決めた時点から本番
  30. AIなら条件ごとの勝率だけでなく確率校正も見たい
  31. 市場とのズレが本当に存在しているかを見る
  32. 勝てる条件が見つからないことも普通
  33. 条件がないなら買わない、も成立する
  34. 本当に目指すのは「勝てる条件」より「壊れにくい条件」かもしれない
  35. 「勝てる条件だけ買う」は可能。ただし意味が少し違う
  36. まとめ

「全部買わない」はかなり合理的

まず、買うレースを絞ること自体はかなり合理的だと思います。

競馬には毎週たくさんのレースがあります。

新馬戦。

未勝利戦。

条件戦。

重賞。

芝。

ダート。

短距離。

長距離。

少頭数。

多頭数。

全部が同じ難易度ではありません。

AIにとっても同じです。

学習データが豊富な条件。

過去例が少ない条件。

予測が安定しているレース。

指数差が小さいレース。

明らかにモデルの得意不得意があります。

なら、

苦手なレースを捨てる

という考え方は自然です。

問題は「勝てる条件」をどう見つけるか

場外発券場で結果を見る様子

ここから難しくなります。

例えば過去データを集計した結果、

東京芝1600m
AI指数1位
単勝10倍以下
良馬場

という条件で、

過去200レース
回収率118%

だった。

すると、

「これが勝てる条件だ」

と思いたくなります。

では次から、この条件だけ買えばいいのでしょうか。

ここで一番怖いのが、

その条件を見つけるまでに何個の条件を試したか

です。

条件を探せば、どこかに必ず「勝っている場所」が見つかる

競馬データは非常に細かく分けられます。

競馬場。

芝・ダート。

距離。

クラス。

馬齢。

性別。

枠。

騎手。

人気。

オッズ。

馬場状態。

季節。

頭数。

脚質。

AI指数順位。

p_win。

指数差。

これらを組み合わせれば、条件はいくらでも作れます。

例えば1,000種類の条件を調べれば、

たまたま回収率130%になった条件

がいくつか出てきても不思議ではありません。

つまり、

過去に勝っていた条件を見つけること自体は意外と簡単

です。

難しいのは、

その条件が未来でも勝つかどうか

です。

「勝てる条件」ではなく「過去に勝った条件」かもしれない

芝レースの様子

ここはかなり重要です。

過去データから、

回収率125%

という条件を発見した。

でも正確には、

「過去データ上で125%だった条件」

です。

未来の期待回収率が125%とは限りません。

たまたま高配当が数回入っただけかもしれない。

市場環境が変わったかもしれない。

サンプル数が少なかったかもしれない。

条件を探しすぎた結果、偶然良く見えただけかもしれない。

そのため、

実績と期待値を分けて考える

必要があります。

回収率だけで条件を選ぶと危険

例えば、

条件A
500レース
的中率28%
回収率106%

条件B
40レース
的中率20%
回収率145%

どちらが「勝てる条件」に見えるでしょうか。

数字だけならBです。

でも40レースしかありません。

しかも万馬券が1回混ざっていた。

それを除くと回収率78%。

ということもあります。

高回収率条件ほど、

一部の大きな払戻に依存していないか

を見る必要があります。

勝てる条件を探すならサンプル数も条件になる

連敗にもくじけない様子

例えば、

回収率110%以上。

だけでは弱いです。

そこに、

最低300レース。

複数年でプラス。

特定の1レースに依存していない。

最大払戻を除いても極端に崩れない。

という条件を付けたいです。

つまり、

「勝てる条件」を定義するときは、

馬の条件だけではなく、

その実績自体の信頼性

も条件に入れる必要があります。

年ごとに分けると見え方が変わる

例えば過去5年。

全体回収率112%。

一見かなり良いです。

でも年ごとに見ると、

2021年 72%
2022年 84%
2023年 165%
2024年 79%
2025年 118%

だった。

この場合、

「安定して勝てる条件」

と言えるでしょうか。

2023年の一発で全体が持ち上がっているだけかもしれません。

逆に、

102%
108%
105%
111%
106%

なら派手さはありませんが、かなり印象が違います。

勝てる条件を探すなら、

回収率の高さだけではなく、再現性

を見たいです。

条件を細かくしすぎるとサンプルが消える

では条件を厳しくすればいいのでしょうか。

例えば、

東京芝1600m。

4歳馬。

1~3番人気。

単勝3~8倍。

良馬場。

内枠。

前走3着以内。

AI指数1位。

指数差0.05以上。

ここまで絞る。

過去10年で対象18レース。

15勝。

回収率142%。

「最強条件を見つけた!」

となりそうです。

でも18レースです。

次に同じ条件が出るのはいつか分かりません。

そして未来の5レースで全部外れたら、一気に数字は崩れます。

条件を絞るほど、

見た目の成績は良くなりやすい代わりに、信頼性は下がりやすい

という問題があります。

条件を後付けすると何でも勝てるように見える

コイントスを見守る様子

例えば最初は、

AI指数1位。

で集計。

回収率92%。

そこで、

10倍以下だけ。

回収率97%。

さらに、

芝だけ。

回収率101%。

さらに、

良馬場だけ。

回収率106%。

さらに、

東京・阪神だけ。

回収率114%。

ここまで来ると、

「条件を改善した」

ように見えます。

しかし実際には、

過去データに合わせて条件を削っている

だけかもしれません。

未来を当てるルールではなく、

過去を説明するルール

になっている可能性があります。

これはAIの過学習とかなり似ている

機械学習では、

訓練データに合わせすぎる

ことを過学習と呼びます。

勝てる条件探しも同じです。

過去データを見ながら、

この条件を追加。

この条件を除外。

オッズ上限を変更。

距離を限定。

騎手を限定。

と繰り返す。

すると過去成績はどんどん良くなります。

でも未来では再現しない。

つまり、

人間が条件探索で過学習している

とも考えられます。

本当に試すなら「後から触らない期間」を作る

AIがAIを操作する様子

勝てる条件を検証するなら、

期間を分ける方法があります。

例えば、

2015~2022年
条件を探す。

2023年
条件を調整。

2024~2025年
一切条件を変更せず検証。

という形です。

最後の期間は、

結果を見ながら条件変更しない。

そこでプラスなら、かなり説得力が増します。

競馬AIでいう、

アウト・オブ・サンプル

の考え方です。

ウォークフォワードで見るのも面白い

競馬は時系列データです。

そのため、

過去で条件を作る。

未来で試す。

さらに未来へ進む。

という方法が自然です。

例えば、

2018~2021年で発見
→2022年で検証

2019~2022年で更新
→2023年で検証

2020~2023年
→2024年

という形です。

これなら、

条件が時間の変化に耐えられるか

も見られます。

「勝てる条件」は永遠には続かないかもしれない

仮に本当に有効な条件を見つけたとします。

それでも永遠に勝てるとは限りません。

競馬市場も変わります。

データを使う人が増える。

AI予想が普及する。

馬券購入者が特定の傾向に気付く。

すると以前は割安だった馬が売れるようになります。

オッズが下がる。

勝率は同じ。

でも期待値は下がる。

つまり、

予測優位性が残っていても、馬券優位性は消える

可能性があります。

「強い条件」と「儲かる条件」は違う

金ぴかに輝く馬を眺める様子

例えば、

ルメール騎手。

1番人気。

芝。

という条件で勝率が非常に高かったとします。

では儲かるでしょうか。

多くの人も知っています。

そのためオッズも低い。

結果、

的中率は高い。

でも回収率は95%。

ということがあります。

一方、

勝率15%しかない条件。

でも平均オッズ10倍。

なら回収率はプラスかもしれません。

だから、

勝率が高い条件

ではなく、

市場価格に対して過小評価されている条件

を探す必要があります。

「勝てる条件」は期待値で定義した方が自然

競馬AIなら、

条件単位の過去回収率

だけを見るより、

p_win × odds

で考える方が自然です。

例えば、

AI p_win 0.25。

単勝5倍。

期待値1.25。

このような馬だけ買う。

ここで条件は、

東京芝1600m。

ではなく、

AI評価と市場評価のズレ

になります。

もちろんp_winが正確であることが前提です。

でも「過去に回収率が良かったコースだけ買う」より、考え方としては一般化しやすいです。

ただし期待値1.0超だけ買えば勝てるほど簡単でもない

理論上、

真の勝率 × オッズ > 1

なら買いです。

でも問題は、

真の勝率が分からない

ことです。

AIが25%と出した。

本当は18%だった。

5倍でも期待値0.9です。

つまり、

期待値戦略も結局は確率推定精度に依存します。

「期待値1.2以上だから勝てる条件」

ではなく、

その期待値推定がどれだけ信用できるか

まで見る必要があります。

条件を絞ることで回収率が上がることはある

ここまで慎重に書きましたが、

条件絞り込み自体を否定したいわけではありません。

むしろ効果はあると思います。

例えばAIが、

新馬戦に弱い。

障害戦に弱い。

極端な少頭数で不安定。

初ダート馬が多いレースで誤差が大きい。

と分かった。

なら除外する。

これは合理的です。

重要なのは、

過去回収率が悪かったから消す

だけではなく、

なぜ弱いのか説明できるか

です。

「モデルが不得意な理由」が分かる条件は強い

例えば新馬戦。

過去走データがない。

特徴量が少ない。

ならAIが苦手でも理解できます。

2歳戦。

成長差が大きい。

経験が少ない。

これも分かります。

一方、

なぜか中京芝1800mだけ弱い。

理由不明。

となると、

たまたまかもしれません。

つまり条件除外にも、

理屈が通っているか

を確認したいです。

勝てる条件より「負けやすい条件を捨てる」方が現実的かもしれない

個人的にはこちらの方が実践しやすいと思います。

最強条件を探す。

ではなく、

明確に弱い条件を除く。

例えば、

新馬戦。

障害。

極端にデータの少ない条件。

指数差がほぼない混戦。

期待値が低い人気馬。

こうしたものを少しずつ外す。

最終的に残ったレースだけ買う。

これは、

「勝てる条件を発見する」

というより、

負ける要因を減らす

アプローチです。

「買わない」が戦略の中心になる

勝てる条件だけ買う戦略を突き詰めると、

実は買う技術より、

見送る技術

が重要になります。

36レース予測。

買うのは3レース。

33レース見送り。

となるかもしれません。

問題は、

それを人間が本当にできるか

です。

朝から競馬を見ている。

指数も出した。

オッズも確認した。

せっかくだから買いたい。

ここでルールを破る。

すると「勝てる条件だけ買う」は崩れます。

条件を作るより、条件を守る方が難しい

例えば購入ルールを、

p_win 0.15以上。

単勝15倍以下。

期待値1.1以上。

新馬・障害除外。

と決めた。

でも日曜日の午後。

全然対象レースがない。

すると、

期待値1.07。

「まあほぼ1.1だし」

となる。

次は1.04。

「指数差大きいから」

となる。

最終的には条件が形骸化します。

ルールを設計することより、

対象がなくても買わない

方が難しいのかもしれません。

勝てる条件だけ買うと購入機会が激減する

不安定な飛行機

条件を厳しくするほど、購入レースは減ります。

これは当然です。

年間3,000レースあっても、

対象100レース。

さらに厳しくすると30レース。

回収率は上がった。

でも利益額は小さい。

という問題もあります。

例えば、

年間購入額3万円。

回収率130%。

利益9,000円。

これは優秀ですが、

「勝てている」と感じるかは別です。

回収率と利益額にはトレードオフがある

条件を厳選すると、

回収率が上がる。

でも購入額が減る。

逆に条件を緩めると、

購入額は増える。

でも回収率が下がる。

つまり最適化したいのは、

回収率だけではないかもしれません。

例えば、

年間利益。

最大ドローダウン。

購入回数。

資金効率。

なども考えられます。

競馬AIを運用するなら、

高回収率だけを追うと、ほとんど買わないモデルになる

可能性があります。

100レース回収率130%と1,000レース105%ならどちらがいい?

これは面白い比較です。

1レース100円なら、

100レース130%
購入1万円
払戻1万3,000円
利益3,000円

1,000レース105%
購入10万円
払戻10万5,000円
利益5,000円

回収率では前者。

利益額では後者。

さらにサンプル数の信頼性も後者の方が高いかもしれません。

何をもって「勝てる条件」とするかは、

目的によって変わります。

最強条件探しは終わらなくなる

競馬AIをやっていると、条件探索はかなり楽しいです。

オッズ15倍以下。

いや12倍。

p_win 0.10以上。

0.12以上なら?

芝だけ。

東京を除いたら?

こうすると、

「もっと良い条件があるのでは」

と永遠に試せます。

でもそれを続けるほど、過去データへの最適化が進みます。

最終的には、

過去に最も勝てた条件

は見つかります。

それが未来で最も勝てるとは限りません。

条件はできるだけシンプルな方がいい

個人的には、条件数は少ない方が扱いやすいと思います。

例えば、

障害・新馬除外。

p_win 0.10以上。

単勝15倍以下。

期待値基準。

くらいです。

条件が20個あると、

なぜ買っているのか分からなくなります。

さらに条件ごとのサンプルも減ります。

シンプルなルールで未来でも機能する。

その方が説得力があります。

条件は「発見後に固定」した方がいい

例えば過去データから、

p_win 0.10以上。

オッズ15倍以下。

というルールを作った。

そこから先は、

100レース。

300レース。

500レース。

変更しない。

結果を見る。

途中で悪くなったから、

12倍以下へ変更。

芝だけに変更。

とすると検証がリセットされます。

改善自体は悪くありません。

ただし、

旧ルールと新ルールを別物として記録する

必要があります。

ルール変更履歴は残した方がいい

競馬AIでは特に重要です。

Ver.1

p_win 0.10以上
odds 15倍以下

Ver.2

p_win 0.12以上
odds 12倍以下

Ver.3

さらに新馬除外

というようにします。

そうすれば、

どのルールが本当に良かったか

後から確認できます。

すべてまとめて、

「今年のAI成績」

にしてしまうと分からなくなります。

「勝てる条件」は事前に決めた時点から本番

本当にその条件を評価するなら、

条件を発見した日

がスタート地点です。

それ以前のデータは研究用。

それ以後が実戦。

こう考えるとかなり厳しくなります。

過去10年では回収率120%。

でも公開後は95%。

なら、

未来では再現しなかった。

その事実を受け入れる必要があります。

AIなら条件ごとの勝率だけでなく確率校正も見たい

例えば、

期待値1.2以上の馬。

回収率110%。

だけを見るより、

そのグループの平均p_winが20%。

実際の勝率が19%。

なら確率推定はかなり良さそうです。

逆に、

平均p_win 25%。

実際15%。

なら、AIが過信しています。

つまり条件戦略では、

回収率。

的中率。

だけでなく、

予測確率と実績が合っているか

も見たいです。

市場とのズレが本当に存在しているかを見る

勝てる条件の本質は、

「この条件だから勝てる」

ではありません。

市場がその条件を正しく評価できていない。

そこに価値があります。

例えば、

距離短縮馬は市場が過小評価する。

特定条件の先行馬は売れにくい。

AI指数上位なのに人気が低い馬は期待値がある。

こういう構造なら面白いです。

ただし、市場が気付けば消えます。

だから、

条件ではなく市場の歪みを探している

と考えた方が本質に近いと思います。

勝てる条件が見つからないことも普通

これはかなり大切です。

分析した。

条件も試した。

でも安定して100%を超える場所がない。

その可能性もあります。

そのとき、

「もっと細かく条件を絞れば見つかるはず」

と続けると危険です。

本当に優位性がないのに、

偶然100%を超える条件が見つかるまで掘ってしまう

からです。

「見つからなかった」

も立派な分析結果です。

条件がないなら買わない、も成立する

競馬は必ず馬券を買う必要はありません。

AIを作った。

指数も出した。

でも現時点では市場を上回る条件が確認できない。

なら、

研究を続ける。

という選択もあります。

これは地味ですが、かなり重要です。

勝てる条件だけ買う戦略は、

最終的には、

勝てると確認できるまでは買わない

という考え方にもつながります。

本当に目指すのは「勝てる条件」より「壊れにくい条件」かもしれない

派手な条件は魅力的です。

回収率150%。

的中率40%。

しかし未来で崩れたら意味がありません。

それより、

回収率105~110%。

サンプル多数。

複数年プラス。

特定高配当に依存しない。

条件もシンプル。

市場構造として説明できる。

こういう方が長く使える可能性があります。

つまり探すべきなのは、

最も強い条件

ではなく、

未来でも壊れにくい条件

なのかもしれません。

「勝てる条件だけ買う」は可能。ただし意味が少し違う

最初の問いに戻ります。

“勝てる条件だけ買う”は本当に可能なのでしょうか。

過去データを見れば、

勝っている条件

は簡単に見つけられます。

しかし未来でも勝てる条件を事前に特定することは、かなり難しいです。

だから実際には、

「絶対に勝てる条件だけ買う」

ではなく、

十分な根拠があり、過去と未来の検証でも比較的優位性が確認できた条件だけ買う

という意味になります。

かなり地味です。

まとめ

「勝てる条件だけ買えばいい」

競馬では非常に魅力的な考え方です。

苦手なレースを捨てる。

得意な条件だけ残す。

期待値の高い場所だけ買う。

考え方としては合理的です。

ただし最大の問題は、

本当に勝てる条件なのか、それとも過去にたまたま勝った条件なのか

を区別することです。

条件を細かく探せば、どこかに高回収率の場所は見つかります。

でも条件探索を繰り返すほど、

過去データへの過学習

が起こります。

だから、

サンプル数を見る。

複数年に分ける。

高配当依存を確認する。

条件探索用データと検証用データを分ける。

未来期間では条件を変えない。

ルール変更を別バージョンとして管理する。

といった検証が必要になります。

そして個人的には、

「勝てる条件を探す」

より、

AIが明確に苦手な条件を捨てる

方が現実的だと思います。

新馬戦が苦手。

データ不足条件が苦手。

指数差の小さい混戦で弱い。

なら、そこを買わない。

少しずつ負けやすい場所を削る。

その結果として残ったレースだけを買う。

これなら「最強条件探し」より過学習しにくそうです。

さらに重要なのは、条件を守ることです。

対象レースがない。

それでも買わない。

せっかくAI指数を出した。

それでも買わない。

この行動ができて初めて、

「勝てる条件だけ買う」

が成立します。

結局、競馬で本当に難しいのは、

勝てる条件を見つけることだけではなく、

勝てない可能性が高い条件で何もしないこと

なのかもしれません。

そしてもし長期的に使える条件が存在するとしたら、

回収率150%の派手な条件より、

回収率105%程度でも、

サンプルが多い。

複数年で再現する。

高配当に依存しない。

理由も説明できる。

そんな地味な条件の方が、むしろ信用できる気がします。

競馬AIで探したいのも、

「過去最高に勝った条件」

ではなく、

未来でも少しだけ市場より正しくあり続けられる条件

なのかもしれません。

コメント

タイトルとURLをコピーしました