まずわかる今回の更新
校正済みかつレース単位で整合した勝率から、馬ごとのFair Oddsを生成できるようにしました。
Fair Oddsの入力には校正済み・race-normalized probabilityだけを認め、異常な確率はFail Closedで拒否します。
これにより、予測勝率を後続工程で市場オッズと比較できる形へ渡せるようになりました。
何が変わったか
これまでは、勝率を校正してレース単位で整えるところまででした。
今回、その確率をFair Oddsへ変換する正式なmaterialization処理を追加しました。
Fair Oddsは校正済み勝率の逆数として生成します。
入力条件
Fair Oddsへ渡せるのは、RF_DEV_121_06で確立した校正済み・race-normalized probabilityだけです。
生のモデル確率や、レース単位で整合していない確率は正式入力として扱いません。
安全側の処理
Fair Odds生成前に、レースごとの確率合計が整っていることを要求します。
ゼロ、範囲外、有限でない確率はFail Closedで拒否します。
また、勝率が高いほどFair Oddsが低くなる逆単調関係も検証しています。
現在できること
runner単位で、
- race_id
- runner_id
- calibrated_win_probability
- fair_odds
を対応づけて扱えるようになりました。
これで、校正済み勝率からFair Oddsまでを同じ根拠で後続工程へ引き渡せます。
検証結果
Task Substance Evidenceでは、Fair Odds生成式、入力確率契約、レース確率整合性、異常値のFail Closed、確率とFair Oddsの関係、runner単位materializationを確認しました。
確認対象はすべて判定済みで、未解決項目はありません。
制約
この工程では、予測精度・収益・回収率などの性能は主張しません。
Fair Oddsを生成できることと、そのFair Oddsが有効であることは別です。
次
次はBaseline Probability Evaluationです。
LogLoss、Brier、Calibration diagnostics、Ranking、Segment Stabilityを使って、Baseline勝率モデルの確率品質を評価します。