今回の更新を要点だけ
競馬AIが出した勝率を、そのままFair Oddsへ使わないための確率校正を実装しました。
AIが高い勝率を出しても、その自信度が現実の的中頻度と一致しているとは限りません。
そこで、Platt Scalingで予測確率を補正し、Binary Log LossとBrier Scoreで評価。さらに校正後の確率をレース単位で再正規化し、Fair Oddsへ渡せる形に整えました。
Final HoldoutはCalibration fittingから除外し、最終評価用データを途中の調整に使わない境界も固定しています。
なぜ必要なのか
このプロジェクトでは、予測確率からFair Oddsを作り、市場オッズと比較できる状態を目指しています。
そのため、
**予測確率 → Fair Odds → 市場との比較**
の入口にある確率が重要です。
元の確率がズレたままなら、そこから計算するFair Oddsもズレる可能性があります。
今回の確率校正は、AIの自信度をそのまま価格へ変換しないための処理です。
今回変わったこと
確率校正にはPlatt Scalingを実装しました。
校正結果はBinary Log LossとBrier Scoreで評価できます。
また、校正後の確率が有効な範囲に収まり、元の予測順序を壊さないことも確認しています。
さらに、競馬では各レースの勝者が一頭であるため、校正後の確率をレース単位で再正規化します。
これにより後続工程では、**校正済みかつレース単位で整合した確率**をFair Oddsの正式な入力として扱えるようになりました。
Final Holdoutの扱い
最終評価用のFinal HoldoutをCalibration fittingに使うと、未知データでの評価が汚染されます。
そのため、Final HoldoutはCalibration fittingから明示的に除外しています。
検証結果
Task Substance Evidenceでは、Platt Scaling、Binary Log Loss / Brier Score、確率範囲と順序、レース単位再正規化、Final Holdout隔離、Fair Odds入力契約を確認しました。
すべてを判定し、未解決はありませんでした。
現在の限界
この工程だけでは、予測性能や実運用での有効性はまだ確認していません。
今回確定したのは、予測確率を校正し、後続工程へ同じEvidence基準で引き渡せる仕組みです。
次の工程
次は、校正済み確率からFair Oddsを生成します。
ここから、
**「勝つ確率」**
を、
**「その確率ならどの価格が適正か」**
という価格へ変換していきます。