AI開発で一番大事なのは「問題設定」
競馬AIにテコ入れを始める前に、どうしても先に語っておきたいことがあります。
AI開発でいちばん重要なのは、
- 特徴量エンジニアリングでも
- パラメータチューニングでも
- モデルアーキテクチャ設計でも
ありません。
本当に重要なのは、「問題設定」です。
「このAIは何を予測するのか?」
「その予測をどう使って、何を最大化したいのか?」
ここを間違えると、どれだけ精巧なモデルを作っても、ゴールにたどり着きません。
競馬予想のゴールは本当に「的中率アップ」か?
では、競馬予想AIにおけるゴールとは何でしょうか?
多くの人がまず思いつくのは、
回収率をできるだけ高くすること(100%を超えること)
だと思います。
数式で書くと、
回収率 = オッズ × 的中率
となります。
オッズは大衆の人気投票によって決まってしまうので、
「じゃあ自分がコントロールできるのは 的中率 だな」
と考えるのは自然です。
つまり、一見すると
競馬予想のゴール = 的中率を高めること
という結論になりそうです。

…でも、本当にそうでしょうか?
「的中率だけ」を追いかけると失敗する例
具体例で考えてみます。
次の2つのAIのうち、どちらが優秀でしょうか?
- ① 10レース中9レースを当てるAI
- ② 10レース中1レースしか当てないAI
「的中率を高めることがゴール」なら、当然①が優秀に見えますよね。
では、条件を少し加えてみます。
- ① 10レース中9レース的中
+ 1位になると予想した馬の平均オッズが 1.1倍 - ② 10レース中1レースだけ的中
+ 1位になると予想した馬の平均オッズが 10倍
このときの回収率を計算してみると…
- ①:平均オッズ × 的中率 = 1.1倍 × 90% = 回収率 99%
- ②:平均オッズ × 的中率 = 10倍 × 10% = 回収率 100%
あれ?
的中率は①の方が圧倒的に高いのに、回収率は②の方が上になってしまいました。
この例から分かるのは、
「的中率が高い=良いAI」とは限らない
ということです。

「的中率」の正体
もう一度、基本式を見直します。
回収率 = オッズ × 的中率
ここで「的中率」を、つい
当たった馬券の数 ÷ 買った馬券の数
として考えがちですが、
期待値の観点で見直すと、少し違う意味が見えてきます。
回収率は長期的には「期待値」とほぼ同じ意味になります。
回収率 ≒ 期待値 = オッズ × 的中率
このとき重要になる「的中率」とは、
各馬券(例:馬番1の単勝、1-2のワイド)が、
長期的にどれくらいの確率で当たるか を表す値
です。
つまり、
全く同じレースを n 回繰り返したとき、ランダム要因や予測不能な出来事も含めて、その馬券が何回ぐらい当たるか
という、理想的な確率をイメージしてください。
「当たったか・外れたか」という1回きりの結果ではなく、
確率そのものをどれだけ正確に予測できるか が重要になります。
本当のゴールは「各馬券の期待値を見抜くこと」
ここまでを整理すると、
各馬券の期待値 =
各馬券のオッズ × 各馬券の的中率(=真の当たる確率)
となります。
そして、もしAIが
- 各馬券ごとの「真の的中確率」を正確に予測できて
- 期待値がプラスの馬券だけを選んで購入できるなら
理屈の上では、長期的な回収率は100%を超えていきます。
もちろん現実には、
- 試行回数(レース数)
- 軍資金
- 回収率と収束スピードのトレードオフ
などの制約があるので、
「プラス期待値の馬券だけを機械的に買えばOK」とまではいきません。
それでも、方向性としては明らかで、
回収率を高める = 期待値の高い馬券だけを選んで買う
= そのために 各馬券の当たる確率を正しく予測する
という構図になります。
競馬AIの目標を「勝率予測」に落とし込む
つまり、競馬予想AIの最終的な目標は
各馬の勝率(単勝率・連対率・三着内率)を正確に予測すること
に集約されます。
- 「どの馬が1着になるか」だけでなく
- 「この馬が3着以内に入る確率は何%くらいか」
- 「この組み合わせの馬券が当たる確率は何%か」
といった確率そのものを出すAIにすることで、
- オッズと掛け合わせて期待値を計算し
- プラス期待値の馬券だけを選んで買う
という、回収率に直結したロジックを組めるようになります。
「的中率」ではなく「確率」を取りにいくAIへ
ここまでのポイントをまとめると、
- 競馬AI開発で最重要なのは「問題設定」
- ゴールは「的中率を上げること」ではなく「回収率(期待値)を上げること」
- そのためには、各馬券の「真の当たる確率(的中率)」をどれだけ正確に予測できるかが重要
結論として、競馬AIの目標は各馬の勝率・連対率・三着内率を精度高く予測することとなります。
次回以降はこの問題設定に沿って、実際に開発を進めていきます。

コメント