前置き:先週の結果
前回(#30)は累計67件・的中0、札幌除外後24件だった。その後の3連休(10月10日〜12日)の結果を報告する。
10月10日:推奨馬なし
10月11日:推奨馬なし
10月12日(京都・東京):2件推奨 的中0
ワッザイカ(京都3R・芝1400m)EV4.06 → 12着(11番人気)
テングカゼ(東京3R・芝1800m)EV4.32 → 7着( 8番人気)
2件とも着外。累計は69件、的中0になった。
推奨が2件しかなかった週が、これで3週続いている。条件が絞られているぶん、チェックポイントに届くまでの時間もかかる。
数字で確認する
全期間累計:69件 的中0 回収率0%
札幌除外前(8/8〜8/30):43件 的中0
札幌除外後(9/5〜10/12):26件 的中0
全ハズレ確率(バックテスト的中率9.6%想定)
69件すべて:約0.09%
札幌除外後26件のみ:約7.3%
札幌除外後の「全ハズレ確率」は、24件の8.9%から7.3%に下がった。次のチェックポイント(30件)まで、あと4件。
訂正:前回の「5.0%」は4.8%だった
#30で、「30件すべてハズレの確率は約5.0%」と書いた。計算し直したところ、正しくは次の通りだった。
0.904^30 ≈ 4.8%
大きな差ではないが、「5%を下回る」という見え方が変わる数字なので訂正しておく。判断の枠組みは変わらない。
本題:システムを改善した方がいいのか
今週は、一つ相談をした。「このシステム、改善した方がいいのでは」と。
結論から言うと、改善はする。ただし、変えるのは買い条件ではなく、評価の仕組みにした。理由は三つある。
1. 週に2件程度の買い目では、いつまで待っても結論が出ない
的中率10%前後の賭けでは、100件でも回収率はほとんど判定できない。
2. モデルの主張が強すぎる
勝率10%前後の馬を30〜58倍で買っている。市場の暗黙確率は2〜3%程度なので、
「市場が3倍以上間違っている」と主張していることになる。
この水準のEVは、優位性より予測の過大評価である可能性が高い。
3. EV3.50〜5.00という帯は、バックテストで後から選んだもの
上限5.00は特に怪しい。成績の悪い帯を切っただけなら、ノイズへの当てはめになる。
だから、買い条件を触る前に、まず「モデルが本当に市場に勝てているのか」を測れる状態にすることにした。
実装:全出走馬の予測確率を記録する(シャドー記録)
推奨スクリプトに、買わない馬も含めた全出走馬の予測確率を保存する処理を追加した。買い目のロジックには一切手を入れていない。
保存先 :shadow_logs/shadow_YYYYMMDD.csv
保存内容:予測確率、オッズ、人気、EV、推奨したかどうか、使ったモデル
件数 :週末で約700頭(買い目は数件)
結果が出た後、評価スクリプトで次の4点を測る。
1. モデルは市場(単勝オッズ)に勝てているか(レース単位の対数損失)
2. 予測確率は校正されているか(確率帯ごとの実際の勝率)
3. 人気薄の「売られすぎ」はあるか(オッズ帯ごとの勝率と回収率)
4. EV帯ごとの回収率(全出走馬ベース)
買い目は週数件でも、全出走馬なら4〜5週で約3,000頭になる。これなら、統計的に意味のある議論ができる。
先に決めておく:判断のルール
結果を見てから基準を決めると、自分に甘くなる。だから、今のうちに書いておく。
✓ 本番の買い条件は、札幌除外後30件のチェックポイントまで変えない
✓ シャドー記録が約3,000頭溜まるまで、条件変更の判断材料にしない
✓ 評価の結果、モデルが市場に勝てていない場合は、
買い条件の調整より先に、市場確率とのブレンド等のモデル側の改善を優先する
✓ 予測確率が過大評価になっている場合は、確率の再校正を行う
注意点が一つある。シャドー記録は、レース前に予測した確率でなければ意味がない。本番モデルは結果を取り込むたびに更新されるため、後から同じデータで再実行すると、未来の情報が混ざってしまう。過去分を後から埋めるのではなく、毎週の通常運用の中で溜めていく。
Data Scientistとしての振り返り
当たらない週が続くと、買い条件をいじりたくなる。ただ、それは多くの場合、少ないサンプルのノイズに設計を合わせる行為になる。
今回学んだのは、「待つこと」と「何もしないこと」は違うということだ。条件を変えずに待つ一方で、待っている間に集められる証拠を増やす。この二つは両立できる。
そして、結果を見ずに先にルールを書いておくこと。これは何度書いても、守る価値があると思う。
技術ノート
実運用累計成績(2026年10月13日時点)
全期間累計:69件 的中0 回収率0%
札幌除外前(8/8〜8/30):43件 的中0
札幌除外後(9/5〜10/12) :26件 的中0(次のチェックポイントまであと4件)
統計的評価(的中率9.6%想定)
69件すべてハズレ :約0.09%
札幌除外後26件すべてハズレ:約7.3%
札幌除外後30件すべてハズレ:約4.8%(チェックポイント到達時の参考値)
次回の予定
シャドー記録は、次の週末から実運用の中で溜め始める。札幌除外後の累計が30件に到達した時点で、事前に決めたルールに沿って棚卸しを行う。
【競馬AI開発記】次回予定:
- Day 32:札幌除外後30件到達時の棚卸し(または次週の実運用報告)