前置き:たった1週間で絶望へ
前回の記事(#16)を投稿してから、わずか1週間。
6月20-21日の実戦では、投資¥900で回収¥8,400、回収率833%、利益¥7,500という驚異の成績を記録した。その直後、SNSやnoteで「このAIはマジで機能している」と確信を持って発信した。
だが、6月27-28日の投資結果は全外れ。投資¥6,000に対して回収¥0。
この1週間の落差は、統計学的に何を意味しているのか。AIの「実力」は本当に有るのか。それとも、前回の成功は単なる「運」だったのか。
本記事は、Data Scientistとしての自己反省と、問題の根本分析である。
実戦成績の推移
【6月20-21日:初実戦】
投資額:¥900(シンプル固定型)
回収額:¥8,400
利益:+¥7,500
回収率:833%
的中レース:函館11R
・04番複勝:¥1,080的中
・08番複勝:¥2,160的中
・04-08ワイド:¥5,160的中
【6月27-28日:第2週】
投資額:¥6,000
回収額:¥0
利益:-¥6,000
回収率:0%
対象レース:4レース
・福島4R:全外れ
・小倉10R:全外れ
・福島1R:全外れ
・福島10R:全外れ
・福島9R:全外れ
【累計(6月20-28日)】
投資額:¥6,900
回収額:¥8,400
利益:+¥1,500
回収率:121.7%
的中:1レース
外れ:8レース
的中率:11% ← 統計的に信頼できない
第1週と第2週の何が違ったのか
【開催地の変化】
第1週(6/20-21):
函館(北海道):重賞レース中心
阪神(兵庫県):条件戦・重賞
東京(東京):オープン・重賞
特性:大型開催、実績馬が充実、競馬レベルが高い
第2週(6/27-28):
福島(福島県):夏場の開催、ローカル色
小倉(福岡県):西日本の中堅開催
特性:地方色が強い、実績馬が少ない、独特な馬場特性
この開催地の変化が、モデルの予測精度に影響を与えた可能性が高い。
【オッズの推移】
第1週:
函館11Rでの推奨馬のオッズ
・04番:34.5倍 (人気:2番人気)
・08番:45.2倍 (人気:7番人気)
→ 実際の配当
・04番複勝:1,080倍(推定¥34.5 × 6.5 ≈ ¥224)
・08番複勝:2,160倍(推定¥45.2 × 6.5 ≈ ¥294)
第2週:
福島4R、小倉10R、福島1Rでの推奨馬のオッズ
・推奨馬の人気:多くが5~10番人気
・推定オッズ:15~100倍
しかし実際は全て外れ
→ オッズ推定と実際の着順に大きなズレがあった可能性
統計学的な問題:サンプルサイズの罠
ここが、最も重要なポイントだ。
【サンプルサイズの重要性】
バックテストとの比較:
バックテスト(Phase 3訓練):
・データ量:2022~2024年のJRA全レース
・サンプル数:858レース、19,847馬
・回収率:83.9%
実戦初日(6/20-21):
・サンプル数:1レース(函館11R)
・回収率:833%
実戦第2週(6/27-28):
・サンプル数:4レース
・回収率:0%
実戦累計(6/20-28):
・サンプル数:5レース
・回収率:121.7%
この現実が、統計学が教えることだ。
統計的に信頼できるサンプルサイズは、一般的に:
最小限:n = 30
推奨:n = 100
確実:n = 1,000以上
現在の9レースは、統計的にはほぼ意味を持たない。
【なぜバックテストと現実に乖離が生じるのか】
- バックテストバイアス
- 過去データに最適化されたモデル
- 当日の実データでは、訓練データにない変動が存在
- 市場の動き
- 過去2年間(2024~2026年6月)で、競馬市場が変わった
- 人気度合い、オッズの付け方が異なる
- 季節変動への対応不足
- 6月下旬の福島開催は、訓練データに十分含まれていない可能性
- 地域特性(福島 vs 函館)の影響を未考慮
- 小サンプルの運の影響
- 9レースでは、運が実力を大きく上回る
- 1回の大当たり(函館11R)が全体の回収率を支配している
考えられる原因:3つの仮説
【仮説1:オッズ推定ロジックの破綻】
現在のシステムは、CSVに「単オッズ」(実オッズ)がない場合、人気から推定オッズを計算している。
popularity_odds_map = {
1: 2.5, 2: 4.0, 3: 6.0, ...., 18: 700.0
}
問題:この推定オッズが、福島やローカル開催では精度が低い可能性。
第1週の函館は、大型重賞で人気とオッズの相関が強い。しかし、福島の小さなレースでは、人気と実オッズに乖離がある可能性が高い。
結果:
期待値計算が過度に楽観的になり、
実際には期待値が低い馬を「推奨」していた
【仮説2:モデルの季節・地域適応不足】
訓練データは2022~2024年の全国競馬だが、特に「6月末の福島開催」という特殊条件に対応できていない可能性。
福島開催の特徴:
・梅雨の影響で馬場が不安定
・ローカル馬が活躍しやすい
・大型開催と異なる競馬レベル
これらを訓練データから学習していない
前回改善案で「シーズナリティ補正」を導入したが、地域補正はまだない。
【仮説3:スルーロジックの失敗】
最後の可能性として、「新馬戦や未勝利戦」が推奨馬に含まれている可能性。
スルーロジックは「過去データ保有率70%以上」を基準としているが、福島などローカル開催では、この判定が正しく機能していない可能性がある。
モデルの「実力」を問い直す
前回の成功は、実力か運か
正直に答えると:運の要素が大きい。
理由:
1. サンプルサイズが圧倒的に不足
(9レース vs 858レース)
2. 的中が1回で、かつそれが最初
(典型的なビギナーズラック)
3. バックテストの83.9%回収率は
再現されていない
(現在121.7%は、初回の大当たりに依存)
もし次の9レースが全て外れたら、回収率は 71.4% に低下する。
これは、単なる「運の悪さ」ではなく、「モデルが実力を発揮できていない」ことを示す。
バックテストと実戦の乖離:なぜ起きるのか
Data Scientistとして、これは避けられない現実だ。
バックテスト:環境が固定されている
・過去データのみ
・市場環境が一定
・人気度合いが安定
実戦:環境が動的に変わる
・未来のデータ(訓練には含まれていない)
・市場環境が時々刻々変化
・季節、地域、天候による変動
バックテストが「過去に対して最適化」されたモデルだとすれば、未来では自動的に精度が低下する。
これを「オーバーフィッティング」という。
次のステップ:何をすべきか
【短期:来週を見守る】
来週(7月4-6日)も同じシステムで実行する。
目的:
・サンプルサイズを増やす(現在9 → 18)
・統計的な信頼性を高める
・パターンを確認する
来週の結果次第で:
来週も全外れ → システムの根本的問題の可能性
来週に的中が出る → 単なる「運の波」の可能性
【中期:モデルの改善】
以下の改善を検討する必要がある。
改善案1:オッズ推定ロジックの再検討
現状:人気 → 推定オッズ
改善案:地域・開催地別の補正係数を導入
福島開催での人気-オッズ相関を分析し、
補正係数を計算する
改善案2:シーズナリティ補正の拡張
現状:月別の補正係数のみ
改善案:開催地別の補正係数も追加
北海道(函館): 補正係数 1.10
東海(福島): 補正係数 0.95
西日本(小倉): 補正係数 0.98
改善案3:EV閾値の厳格化
現状:EV ≥ 1.5で推奨
改善案:EV ≥ 2.5に引き上げ
推奨馬を減らし、期待値が高いレースのみに絞る
回収率は低下するが、外れの増加を抑える
改善案4:モデルの再訓練
2026年上半期のデータ(1月~6月)を追加して
再度訓練
最新の市場環境に適応
【長期:統計的検証】
100レース以上のデータを累積し、初めて「実力」を判定する。
現在(9レース):判定不可
30レース到達:「傾向」が見える段階
100レース到達:統計的に有意な判定が可能
これは、Data Scienceの常識だ。短期の成績に一喜一憂してはいけない。
反省:開発者としての過ち
前回の記事(#16)を読み返すと、私は以下の過ちを犯していた:
【過ち1:初回成功による過信】
「初実戦で黒字達成」という1つのデータポイントで、
「システムが完璧に動いている」と判定した
統計学の基本を忘れていた。
1回の成功は、成功ではなく、単なるサンプル である。
【過ち2:バックテストと実戦の混同】
「バックテスト83.9%だから、実戦でも85%程度」
という根拠のない仮定をしていた
バックテストと実戦は、環境が全く異なる。
乖離は、避けられない。
【過ち3:開催地の特性を無視】
「AIは全ての競馬を予測できる」という過信
地域特性、季節変動への対応不足を見落とした
本来なら、福島開催の特性を事前に分析し、 慎重に投資を進めるべきだった。
正直な評価
現在の競馬AIの実力
バックテスト回収率:83.9%
実戦回収率(累計9レース):121.7%
統計的信頼度:極めて低い(n=9)
判定:
「実力があるかもしれない。
だが、確認には最低100レースが必要」
AIの今後
正直に言えば、このAIが長期的に利益を生むかは、未定 である。
ただし、以下の点は確実だ:
✅ 統計学的に正当なアプローチ
✅ 継続的な改善の余地あり
✅ 短期的な運の影響を受けやすい
❌ 完璧なシステムではない
❌ 短期の成績で判定できない
❌ 地域特性への対応不足
結論:Day 18へ向けて
前回(#16)の記事では、「プロレベルのAIが誕生した」と書いた。
今回、その言葉を取り消す必要はないが、修正する必要がある。
正しくは:
「統計学的に有効性が見込まれるモデルが開発された。 だが、実戦での検証はまだ途上である」
来週(7月4-6日)、サンプルサイズは18に増える。
その時点で、初めて「傾向」が見えてくるだろう。
100レースに到達する頃には、このモデルの実力が、数字で証明される。
それまでの間、我々ができることは:
1. 継続的にデータを集める
2. 仮説を立てて、検証する
3. 失敗から学ぶ
4. システムを改善する
この繰り返しが、真の「プロレベル」を生み出す。
【技術ノート】現在のシステム仕様
モデル:LightGBM + Lambdarank 特徴量:19個 訓練データ:2022~2024年 132,969頭 回収率(バックテスト):83.9% 回収率(実戦、n=9):121.7%
既知の問題:
- オッズ推定精度が地域で異なる
- シーズナリティ補正が不完全
- 小サンプル(n<30)では信頼性が低い
次回の改善予定:
- オッズ推定ロジックの再検討
- 開催地別の補正係数導入
- EV閾値の厳格化(1.5 → 2.5)
- 2026年上半期データでの再訓練
次回の記事では、改善版システムと、来週(7月4-6日)の実戦成績を報告予定です。
【競馬AI開発記】シリーズ(予定)
- #16:Phase 3初実戦 155.6%回収率達成
- #17:翌週は全外れ0%。サンプルサイズの罠 ← 本記事
- #18:3週間連続投資。統計的な傾向が見える
- #19:30レース到達。AIの実力が判明
- #20:100レース到達。長期的な実力を確立