はじめに
前回の記事では、人気薄で好走した「馬単体」を sample_weight で重く学習し、穴馬の予測精度やキャリブレーションがどう変わるかを検証しました。
今回はその続編として、馬単体ではなく「波乱レースそのもの」をレース単位で重く学習する方法を検証します。人気薄が勝つ理由は、その馬だけではなく、レース全体の構造にある可能性があります。
前回記事との違い
| 前回 (longshot_weight_learning) | 今回 (upset_race_weight_learning) | |
|---|---|---|
| 重み付け単位 | 馬単体 (1着馬のみ) | レース単位 (全出走馬) |
| 重くする対象 | 人気薄/高オッズの1着馬 | 波乱レースに出走した全馬 |
| 波乱定義 | 1種類 (1着馬≠1番人気) | 8種類 (U1-U8) |
| 対象馬数 | 少ない (1着馬のみ) | 多い (レース全馬) |
なぜレース単位で重み付けするのか
前回の「馬単体重み付け」では、人気薄で勝った馬だけを重くしました。しかし、波乱の原因はその馬だけでなく、レース全体にある可能性があります。
- 人気馬が過大評価されていた
- 上位人気が崩れた
- 人気順そのものが機能しにくいレースだった
- 混戦度が高かった
- 高オッズ馬が勝った
- 人気と着順の対応が崩れた
レース単位で重み付けすれば、波乱レースに出走した人気馬 (負けた側) も重く学習されるため、「なぜ人気馬が負けたのか」をモデルが学習しやすくなる可能性があります。
今回確認すること
- 波乱レースをレース単位で重く学習すると、荒れるレースでの予測性能は上がるか
- 全体 AUC / logloss / Brier はどう変わるか
- NDCG@3 は改善するか
- 人気順 NDCG との差分は改善するか
- 単勝シミュレーションのROIは改善するか
- 最大DD・最大連敗は悪化しないか
- EV候補の予測勝率と実勝率の gap は縮むか
- 高オッズ帯の calibration gap は改善するか、悪化するか
- 人気ありモデル / 人気なしモデルで結果が変わるか
- 波乱レース定義ごとに結果がどう変わるか
使用データ
- テーブル:
result_table - 学習期間: 2017〜2022 年 (787,381 件)
- 検証期間: 2023〜2023 年 (136,354 件, early stopping / unweighted)
- 評価期間: 2024〜2024 年 (138,372 件, レース数 13,677)
- 帯広 (ばんえい競馬) は除外 (124,418 行)
波乱レースの定義
今回は以下の8種類の波乱レース定義を比較します。
| 定義 | 条件 |
|---|---|
| U1: favorite_lost_race | 1番人気が勝てなかったレース (1着馬の人気 != 1) |
| U2: longshot_win_race_6 | 6番人気以下の馬が勝ったレース |
| U3: longshot_win_race_8 | 8番人気以下の馬が勝ったレース |
| U4: high_odds_win_race_10 | 単勝10倍以上の馬が勝ったレース |
| U5: high_odds_win_race_20 | 単勝20倍以上の馬が勝ったレース |
| U6: low_popularity_ndcg_race | 人気順NDCG@3 <= 0.50 のレース |
| U7: popularity_order_broken | 1番人気が3着外、または1-3番人気が誰も3着内に入らない |
| U8: combined_upset_race | U1 or U2 or U4 or U6 の複合 |
人気順NDCG@3の分布 (train)
| 統計量 | 値 |
|---|---|
| 平均 | 0.6455 |
| 中央値 | 0.7453 |
| 25%点 | 0.4398 |
| 10%点 | 0.2015 |
| 最小値 | 0.0000 |
| 最大値 | 1.0000 |
| しきい値 (U6) | 0.5000 |
| しきい値以下の割合 | 31.17% |
学習重みの作り方
- ベースは全サンプル
weight = 1.0 - 波乱レースに含まれる全出走馬の
weight = 倍率 - 1着馬だけではなく、そのレースの全出走馬を重くする
- 重み設計は train データの結果情報のみを使用。valid / test の結果は重み設計にもハイパラ調整にも使わない
- valid の early stopping は unweighted (sample_weight を渡さない)
- 確定オッズ (単勝) は学習特徴量には使わず、sample_weight の作成と評価にのみ使用
比較するモデル
以下の優先バリアントを、「人気なしモデル」と「人気ありモデル」の両方で学習しました。
- A_baseline: 通常学習 (全 weight = 1.0)
- B_favorite_lost_race: U1 波乱レース x1.5 / x2.0
- C_longshot_win_race_6: U2 波乱レース x1.5 / x2.0 / x3.0
- E_high_odds_win_race_10: U4 波乱レース x1.5 / x2.0 / x3.0
- G_low_pop_ndcg_race: U6 波乱レース x1.5 / x2.0
- I_combined_upset_race: U8 複合定義 x2.0
モデルはすべて LightGBM 二値分類 (1着 = 1, それ以外 = 0)。ハイパーパラメータは全モデル共通です。
評価指標
AUC / logloss / Brier
通常の分類評価指標。
NDCG
- model_ndcg@1 / model_ndcg@3 / model_ndcg@5
- popularity_ndcg@1 / popularity_ndcg@3 / popularity_ndcg@5
- delta_ndcg@3 (= model_ndcg@3 – popularity_ndcg@3)
- 人気順に勝ったレース率 / 負けたレース率 / tie率
単勝シミュレーション
各レースで予測1位を1頭選び、単勝100円を購入したと仮定。 ベット数 / 的中数 / 的中率 / 投資額 / 払戻額 / 回収率 / 最大DD / 最大連敗。
EV候補評価
EV = 予測勝率 x 単勝オッズ。閾値 1.0 / 1.1 / 1.2 で候補数・calibration gap・回収率。
オッズ帯別キャリブレーション
1.0-1.9 / 2.0-2.9 / 3.0-4.9 / 5.0-9.9 / 10.0-19.9 / 20.0-49.9 / 50.0+。
人気帯別キャリブレーション
1 / 2-3 / 4-5 / 6-9 / 10+。
条件別評価
全レース / 順当レース / 波乱レース各種で AUC / NDCG@3 / ROI / calibration gap を比較。
結果
波乱レース定義の出現率
表1: 波乱レース定義の出現率 (train / valid / test)
| 定義 | train レース数 | train 割合 | valid レース数 | valid 割合 | test レース数 | test 割合 | 該当レース内の出走馬数(train) |
|---|---|---|---|---|---|---|---|
| U1: 1番人気が負けたレース | 43,586 | 55.44% | 7,543 | 55.43% | 7,526 | 55.03% | 442,966 |
| U2: 6番人気以下が勝ったレース | 7,193 | 9.15% | 1,237 | 9.09% | 1,235 | 9.03% | 78,305 |
| U3: 8番人気以下が勝ったレース | 2,558 | 3.25% | 431 | 3.17% | 416 | 3.04% | 29,521 |
| U4: 単勝10倍以上が勝ったレース | 12,378 | 15.74% | 2,142 | 15.74% | 2,082 | 15.22% | 130,354 |
| U5: 単勝20倍以上が勝ったレース | 5,267 | 6.70% | 863 | 6.34% | 900 | 6.58% | 55,985 |
| U6: 人気順NDCG@3<=0.50のレース | 24,510 | 31.17% | 4,161 | 30.58% | 4,131 | 30.20% | 256,264 |
| U7a: 1番人気が3着外 | 18,726 | 23.82% | 3,191 | 23.45% | 3,211 | 23.48% | 195,636 |
| U7b: 1-3番人気が全員3着外 | 2,145 | 2.73% | 390 | 2.87% | 380 | 2.78% | 24,078 |
| U7: 人気と着順が崩れたレース | 18,726 | 23.82% | 3,191 | 23.45% | 3,211 | 23.48% | 195,636 |
| U8: 複合 (U1 or U2 or U4 or U6) | 43,588 | 55.44% | 7,543 | 55.43% | 7,526 | 55.03% | 442,985 |
通常指標
表2-a: 通常指標 (人気なしモデル)
| バリアント | 件数 | 正例率 | AUC | logloss | Brier | 重み対象行数 |
|---|---|---|---|---|---|---|
| A_baseline (重み=1) | 138,372 | 0.0989 | 0.7359 | 0.2891 | 0.0822 | 0 |
| B_favorite_lost x1.5 | 138,372 | 0.0989 | 0.7349 | 0.2897 | 0.0824 | 442,966 |
| B_favorite_lost x2.0 | 138,372 | 0.0989 | 0.7339 | 0.2906 | 0.0826 | 442,966 |
| C_longshot6 x1.5 | 138,372 | 0.0989 | 0.7353 | 0.2894 | 0.0822 | 78,305 |
| C_longshot6 x2.0 | 138,372 | 0.0989 | 0.7348 | 0.2898 | 0.0823 | 78,305 |
| C_longshot6 x3.0 | 138,372 | 0.0989 | 0.7331 | 0.2911 | 0.0826 | 78,305 |
| E_odds10 x1.5 | 138,372 | 0.0989 | 0.7351 | 0.2894 | 0.0823 | 130,354 |
| E_odds10 x2.0 | 138,372 | 0.0989 | 0.7345 | 0.2902 | 0.0824 | 130,354 |
| E_odds10 x3.0 | 138,372 | 0.0989 | 0.7323 | 0.2922 | 0.0828 | 130,354 |
| G_low_ndcg x1.5 | 138,372 | 0.0989 | 0.7348 | 0.2897 | 0.0823 | 256,264 |
| G_low_ndcg x2.0 | 138,372 | 0.0989 | 0.7340 | 0.2906 | 0.0826 | 256,264 |
| I_combined x2.0 | 138,372 | 0.0989 | 0.7335 | 0.2906 | 0.0826 | 442,985 |
表2-b: 通常指標 (人気ありモデル)
| バリアント | 件数 | 正例率 | AUC | logloss | Brier | 重み対象行数 |
|---|---|---|---|---|---|---|
| A_baseline (重み=1) | 138,372 | 0.0989 | 0.8459 | 0.2438 | 0.0715 | 0 |
| B_favorite_lost x1.5 | 138,372 | 0.0989 | 0.8453 | 0.2472 | 0.0727 | 442,966 |
| B_favorite_lost x2.0 | 138,372 | 0.0989 | 0.8383 | 0.2523 | 0.0747 | 442,966 |
| C_longshot6 x1.5 | 138,372 | 0.0989 | 0.8452 | 0.2447 | 0.0715 | 78,305 |
| C_longshot6 x2.0 | 138,372 | 0.0989 | 0.8437 | 0.2475 | 0.0719 | 78,305 |
| C_longshot6 x3.0 | 138,372 | 0.0989 | 0.8340 | 0.2513 | 0.0727 | 78,305 |
| E_odds10 x1.5 | 138,372 | 0.0989 | 0.8458 | 0.2452 | 0.0717 | 130,354 |
| E_odds10 x2.0 | 138,372 | 0.0989 | 0.8452 | 0.2476 | 0.0722 | 130,354 |
| E_odds10 x3.0 | 138,372 | 0.0989 | 0.8408 | 0.2558 | 0.0740 | 130,354 |
| G_low_ndcg x1.5 | 138,372 | 0.0989 | 0.8455 | 0.2465 | 0.0721 | 256,264 |
| G_low_ndcg x2.0 | 138,372 | 0.0989 | 0.8445 | 0.2496 | 0.0730 | 256,264 |
| I_combined x2.0 | 138,372 | 0.0989 | 0.8385 | 0.2523 | 0.0747 | 442,985 |
NDCG比較
表3-a: NDCG (人気なしモデル)
| バリアント | model_ndcg@1 | model_ndcg@3 | model_ndcg@5 | popularity_ndcg@3 | delta_ndcg@3 | 人気順に勝ったレース率 |
|---|---|---|---|---|---|---|
| A_baseline (重み=1) | 0.4053 | 0.5119 | 0.6080 | 0.6486 | -0.1367 | 23.40% |
| B_favorite_lost x1.5 | 0.4013 | 0.5101 | 0.6069 | 0.6486 | -0.1385 | 23.35% |
| B_favorite_lost x2.0 | 0.4013 | 0.5102 | 0.6068 | 0.6486 | -0.1383 | 23.33% |
| C_longshot6 x1.5 | 0.4015 | 0.5104 | 0.6066 | 0.6486 | -0.1382 | 23.29% |
| C_longshot6 x2.0 | 0.4015 | 0.5106 | 0.6065 | 0.6486 | -0.1380 | 23.29% |
| C_longshot6 x3.0 | 0.4022 | 0.5096 | 0.6053 | 0.6486 | -0.1389 | 23.27% |
| E_odds10 x1.5 | 0.4026 | 0.5111 | 0.6071 | 0.6486 | -0.1375 | 23.49% |
| E_odds10 x2.0 | 0.4023 | 0.5110 | 0.6070 | 0.6486 | -0.1375 | 23.57% |
| E_odds10 x3.0 | 0.4009 | 0.5085 | 0.6056 | 0.6486 | -0.1401 | 23.14% |
| G_low_ndcg x1.5 | 0.4030 | 0.5104 | 0.6065 | 0.6486 | -0.1382 | 23.56% |
| G_low_ndcg x2.0 | 0.4014 | 0.5099 | 0.6061 | 0.6486 | -0.1387 | 23.47% |
| I_combined x2.0 | 0.4002 | 0.5083 | 0.6052 | 0.6486 | -0.1402 | 23.38% |
表3-b: NDCG (人気ありモデル)
| バリアント | model_ndcg@1 | model_ndcg@3 | model_ndcg@5 | popularity_ndcg@3 | delta_ndcg@3 | 人気順に勝ったレース率 |
|---|---|---|---|---|---|---|
| A_baseline (重み=1) | 0.5529 | 0.6479 | 0.7303 | 0.6486 | -0.0007 | 0.96% |
| B_favorite_lost x1.5 | 0.5506 | 0.6476 | 0.7295 | 0.6486 | -0.0010 | 1.32% |
| B_favorite_lost x2.0 | 0.4943 | 0.6316 | 0.7139 | 0.6486 | -0.0170 | 11.74% |
| C_longshot6 x1.5 | 0.5530 | 0.6479 | 0.7271 | 0.6486 | -0.0006 | 0.78% |
| C_longshot6 x2.0 | 0.5530 | 0.6483 | 0.7237 | 0.6486 | -0.0003 | 0.23% |
| C_longshot6 x3.0 | 0.5530 | 0.6393 | 0.7102 | 0.6486 | -0.0093 | 3.90% |
| E_odds10 x1.5 | 0.5530 | 0.6473 | 0.7298 | 0.6486 | -0.0013 | 1.49% |
| E_odds10 x2.0 | 0.5529 | 0.6467 | 0.7293 | 0.6486 | -0.0019 | 4.04% |
| E_odds10 x3.0 | 0.5529 | 0.6361 | 0.7260 | 0.6486 | -0.0125 | 14.67% |
| G_low_ndcg x1.5 | 0.5530 | 0.6467 | 0.7302 | 0.6486 | -0.0019 | 4.05% |
| G_low_ndcg x2.0 | 0.5529 | 0.6422 | 0.7295 | 0.6486 | -0.0064 | 12.11% |
| I_combined x2.0 | 0.4946 | 0.6319 | 0.7142 | 0.6486 | -0.0167 | 11.78% |
単勝シミュレーション
表4-a: 単勝シミュレーション (人気なしモデル / モデル予測1位)
| バリアント | ベット数 | 的中数 | 的中率 | 投資額 | 払戻額 | 回収率 | 最大DD | 最大連敗 |
|---|---|---|---|---|---|---|---|---|
| A_baseline (重み=1) | 13,677 | 4,224 | 30.88% | 1,367,700円 | 1028250円 | 0.7518 | 340330円 | 28 |
| B_favorite_lost x1.5 | 13,677 | 4,187 | 30.61% | 1,367,700円 | 1043270円 | 0.7628 | 324730円 | 24 |
| B_favorite_lost x2.0 | 13,677 | 4,170 | 30.49% | 1,367,700円 | 1028450円 | 0.7520 | 340530円 | 24 |
| C_longshot6 x1.5 | 13,677 | 4,185 | 30.60% | 1,367,700円 | 1018810円 | 0.7449 | 349420円 | 24 |
| C_longshot6 x2.0 | 13,677 | 4,174 | 30.52% | 1,367,700円 | 1020660円 | 0.7463 | 347990円 | 24 |
| C_longshot6 x3.0 | 13,677 | 4,205 | 30.75% | 1,367,700円 | 1018740円 | 0.7449 | 351810円 | 30 |
| E_odds10 x1.5 | 13,677 | 4,201 | 30.72% | 1,367,700円 | 1042560円 | 0.7623 | 326870円 | 30 |
| E_odds10 x2.0 | 13,677 | 4,196 | 30.68% | 1,367,700円 | 1035000円 | 0.7567 | 334460円 | 26 |
| E_odds10 x3.0 | 13,677 | 4,185 | 30.60% | 1,367,700円 | 1029110円 | 0.7524 | 341170円 | 24 |
| G_low_ndcg x1.5 | 13,677 | 4,210 | 30.78% | 1,367,700円 | 1033770円 | 0.7558 | 336380円 | 28 |
| G_low_ndcg x2.0 | 13,677 | 4,184 | 30.59% | 1,367,700円 | 1030640円 | 0.7536 | 338440円 | 26 |
| I_combined x2.0 | 13,677 | 4,148 | 30.33% | 1,367,700円 | 1008490円 | 0.7374 | 362020円 | 23 |
表4-b: 単勝シミュレーション (人気ありモデル / モデル予測1位)
| バリアント | ベット数 | 的中数 | 的中率 | 投資額 | 払戻額 | 回収率 | 最大DD | 最大連敗 |
|---|---|---|---|---|---|---|---|---|
| A_baseline (重み=1) | 13,677 | 6,150 | 44.97% | 1,367,700円 | 1107130円 | 0.8095 | 260730円 | 14 |
| B_favorite_lost x1.5 | 13,677 | 6,114 | 44.70% | 1,367,700円 | 1109070円 | 0.8109 | 259010円 | 14 |
| B_favorite_lost x2.0 | 13,677 | 5,325 | 38.93% | 1,367,700円 | 1106410円 | 0.8090 | 263000円 | 17 |
| C_longshot6 x1.5 | 13,677 | 6,151 | 44.97% | 1,367,700円 | 1107270円 | 0.8096 | 260590円 | 14 |
| C_longshot6 x2.0 | 13,677 | 6,151 | 44.97% | 1,367,700円 | 1106900円 | 0.8093 | 260960円 | 14 |
| C_longshot6 x3.0 | 13,677 | 6,151 | 44.97% | 1,367,700円 | 1106900円 | 0.8093 | 260960円 | 14 |
| E_odds10 x1.5 | 13,677 | 6,151 | 44.97% | 1,367,700円 | 1107300円 | 0.8096 | 260560円 | 14 |
| E_odds10 x2.0 | 13,677 | 6,150 | 44.97% | 1,367,700円 | 1106760円 | 0.8092 | 261100円 | 14 |
| E_odds10 x3.0 | 13,677 | 6,150 | 44.97% | 1,367,700円 | 1106760円 | 0.8092 | 261100円 | 14 |
| G_low_ndcg x1.5 | 13,677 | 6,151 | 44.97% | 1,367,700円 | 1107200円 | 0.8095 | 260660円 | 14 |
| G_low_ndcg x2.0 | 13,677 | 6,150 | 44.97% | 1,367,700円 | 1108390円 | 0.8104 | 259470円 | 14 |
| I_combined x2.0 | 13,677 | 5,334 | 39.00% | 1,367,700円 | 1109660円 | 0.8113 | 258860円 | 17 |
表4-c: 単勝シミュレーション (人気なしモデル / 予測1位 & オッズ>=10.0)
| バリアント | ベット数 | 的中数 | 的中率 | 投資額 | 払戻額 | 回収率 | 最大DD | 最大連敗 |
|---|---|---|---|---|---|---|---|---|
| A_baseline (重み=1) | 1,599 | 54 | 3.38% | 159,900円 | 111220円 | 0.6956 | 57220円 | 141 |
| B_favorite_lost x1.5 | 1,687 | 61 | 3.62% | 168,700円 | 125420円 | 0.7434 | 55970円 | 142 |
| B_favorite_lost x2.0 | 1,690 | 56 | 3.31% | 169,000円 | 116170円 | 0.6874 | 58320円 | 157 |
| C_longshot6 x1.5 | 1,654 | 55 | 3.33% | 165,400円 | 114130円 | 0.6900 | 60520円 | 90 |
| C_longshot6 x2.0 | 1,656 | 55 | 3.32% | 165,600円 | 115100円 | 0.6950 | 54280円 | 111 |
| C_longshot6 x3.0 | 1,670 | 57 | 3.41% | 167,000円 | 105390円 | 0.6311 | 66450円 | 113 |
| E_odds10 x1.5 | 1,655 | 60 | 3.63% | 165,500円 | 128720円 | 0.7778 | 48240円 | 93 |
| E_odds10 x2.0 | 1,700 | 60 | 3.53% | 170,000円 | 123980円 | 0.7293 | 51030円 | 91 |
| E_odds10 x3.0 | 1,725 | 58 | 3.36% | 172,500円 | 121470円 | 0.7042 | 58190円 | 146 |
| G_low_ndcg x1.5 | 1,689 | 56 | 3.32% | 168,900円 | 112940円 | 0.6687 | 66420円 | 151 |
| G_low_ndcg x2.0 | 1,703 | 55 | 3.23% | 170,300円 | 112670円 | 0.6616 | 66340円 | 146 |
| I_combined x2.0 | 1,699 | 56 | 3.30% | 169,900円 | 101330円 | 0.5964 | 72310円 | 158 |
表4-d: 単勝シミュレーション (人気ありモデル / 予測1位 & オッズ>=10.0)
| バリアント | ベット数 | 的中数 | 的中率 | 投資額 | 払戻額 | 回収率 | 最大DD | 最大連敗 |
|---|---|---|---|---|---|---|---|---|
| A_baseline (重み=1) | 1 | 0 | 0.00% | 100円 | 0円 | 0.0000 | 0円 | 1 |
| B_favorite_lost x1.5 | 1 | 0 | 0.00% | 100円 | 0円 | 0.0000 | 0円 | 1 |
| B_favorite_lost x2.0 | 31 | 2 | 6.45% | 3,100円 | 2120円 | 0.6839 | 1900円 | 20 |
| C_longshot6 x1.5 | 1 | 0 | 0.00% | 100円 | 0円 | 0.0000 | 0円 | 1 |
| C_longshot6 x2.0 | 1 | 0 | 0.00% | 100円 | 0円 | 0.0000 | 0円 | 1 |
| C_longshot6 x3.0 | 1 | 0 | 0.00% | 100円 | 0円 | 0.0000 | 0円 | 1 |
| E_odds10 x1.5 | 1 | 0 | 0.00% | 100円 | 0円 | 0.0000 | 0円 | 1 |
| E_odds10 x2.0 | 1 | 0 | 0.00% | 100円 | 0円 | 0.0000 | 0円 | 1 |
| E_odds10 x3.0 | 1 | 0 | 0.00% | 100円 | 0円 | 0.0000 | 0円 | 1 |
| G_low_ndcg x1.5 | 1 | 0 | 0.00% | 100円 | 0円 | 0.0000 | 0円 | 1 |
| G_low_ndcg x2.0 | 1 | 0 | 0.00% | 100円 | 0円 | 0.0000 | 0円 | 1 |
| I_combined x2.0 | 32 | 2 | 6.25% | 3,200円 | 2120円 | 0.6625 | 1800円 | 19 |
EV候補評価
表5-a: EV>=1.0 候補 (人気なしモデル)
| バリアント | 件数 | 予測勝率 | 実勝率 | calibration gap | 平均オッズ | 単勝回収率 |
|---|---|---|---|---|---|---|
| A_baseline (重み=1) | 84,083 | 0.0892 | 0.0285 | 0.0607 | 85.61 | 0.6213 |
| B_favorite_lost x1.5 | 85,777 | 0.0882 | 0.0277 | 0.0605 | 84.69 | 0.6273 |
| B_favorite_lost x2.0 | 87,058 | 0.0875 | 0.0269 | 0.0606 | 84.20 | 0.6248 |
| C_longshot6 x1.5 | 85,214 | 0.0883 | 0.0279 | 0.0604 | 85.08 | 0.6266 |
| C_longshot6 x2.0 | 86,505 | 0.0878 | 0.0274 | 0.0604 | 84.60 | 0.6284 |
| C_longshot6 x3.0 | 87,705 | 0.0872 | 0.0264 | 0.0608 | 84.07 | 0.6295 |
| E_odds10 x1.5 | 85,655 | 0.0879 | 0.0275 | 0.0604 | 84.92 | 0.6260 |
| E_odds10 x2.0 | 87,065 | 0.0874 | 0.0268 | 0.0606 | 84.28 | 0.6270 |
| E_odds10 x3.0 | 88,550 | 0.0870 | 0.0259 | 0.0611 | 83.58 | 0.6328 |
| G_low_ndcg x1.5 | 85,914 | 0.0880 | 0.0275 | 0.0605 | 84.70 | 0.6291 |
| G_low_ndcg x2.0 | 87,420 | 0.0874 | 0.0266 | 0.0607 | 84.07 | 0.6266 |
| I_combined x2.0 | 86,808 | 0.0878 | 0.0272 | 0.0606 | 84.22 | 0.6297 |
表5-b: EV>=1.0 候補 (人気ありモデル)
| バリアント | 件数 | 予測勝率 | 実勝率 | calibration gap | 平均オッズ | 単勝回収率 |
|---|---|---|---|---|---|---|
| A_baseline (重み=1) | 53,050 | 0.0805 | 0.0461 | 0.0345 | 93.75 | 0.5890 |
| B_favorite_lost x1.5 | 67,155 | 0.0666 | 0.0346 | 0.0320 | 92.55 | 0.5981 |
| B_favorite_lost x2.0 | 70,328 | 0.0760 | 0.0383 | 0.0377 | 83.90 | 0.6189 |
| C_longshot6 x1.5 | 64,943 | 0.0661 | 0.0363 | 0.0298 | 93.92 | 0.6218 |
| C_longshot6 x2.0 | 76,466 | 0.0577 | 0.0281 | 0.0296 | 92.95 | 0.6147 |
| C_longshot6 x3.0 | 77,478 | 0.0607 | 0.0263 | 0.0344 | 91.95 | 0.6271 |
| E_odds10 x1.5 | 69,324 | 0.0619 | 0.0333 | 0.0286 | 94.07 | 0.6147 |
| E_odds10 x2.0 | 76,778 | 0.0587 | 0.0288 | 0.0300 | 90.02 | 0.6188 |
| E_odds10 x3.0 | 86,516 | 0.0608 | 0.0248 | 0.0360 | 85.28 | 0.6348 |
| G_low_ndcg x1.5 | 72,692 | 0.0596 | 0.0304 | 0.0291 | 92.82 | 0.6065 |
| G_low_ndcg x2.0 | 76,909 | 0.0620 | 0.0299 | 0.0321 | 87.48 | 0.6238 |
| I_combined x2.0 | 70,480 | 0.0758 | 0.0386 | 0.0372 | 84.05 | 0.6258 |
表5-c: EV>=1.1 候補 (人気なしモデル)
| バリアント | 件数 | 予測勝率 | 実勝率 | calibration gap | 平均オッズ | 単勝回収率 |
|---|---|---|---|---|---|---|
| A_baseline (重み=1) | 79,926 | 0.0880 | 0.0260 | 0.0620 | 89.02 | 0.6181 |
| B_favorite_lost x1.5 | 81,754 | 0.0871 | 0.0251 | 0.0619 | 87.96 | 0.6176 |
| B_favorite_lost x2.0 | 83,251 | 0.0864 | 0.0243 | 0.0621 | 87.33 | 0.6175 |
| C_longshot6 x1.5 | 81,187 | 0.0873 | 0.0255 | 0.0617 | 88.35 | 0.6169 |
| C_longshot6 x2.0 | 82,523 | 0.0866 | 0.0248 | 0.0617 | 87.89 | 0.6233 |
| C_longshot6 x3.0 | 83,929 | 0.0861 | 0.0240 | 0.0621 | 87.20 | 0.6228 |
| E_odds10 x1.5 | 81,655 | 0.0868 | 0.0252 | 0.0617 | 88.16 | 0.6197 |
| E_odds10 x2.0 | 83,229 | 0.0862 | 0.0246 | 0.0616 | 87.46 | 0.6238 |
| E_odds10 x3.0 | 84,880 | 0.0860 | 0.0234 | 0.0626 | 86.60 | 0.6246 |
| G_low_ndcg x1.5 | 81,992 | 0.0869 | 0.0251 | 0.0618 | 87.91 | 0.6214 |
| G_low_ndcg x2.0 | 83,586 | 0.0863 | 0.0243 | 0.0619 | 87.23 | 0.6222 |
| I_combined x2.0 | 82,928 | 0.0867 | 0.0245 | 0.0622 | 87.37 | 0.6196 |
表5-d: EV>=1.2 候補 (人気なしモデル)
| バリアント | 件数 | 予測勝率 | 実勝率 | calibration gap | 平均オッズ | 単勝回収率 |
|---|---|---|---|---|---|---|
| A_baseline (重み=1) | 76,150 | 0.0869 | 0.0236 | 0.0633 | 92.30 | 0.6086 |
| B_favorite_lost x1.5 | 78,138 | 0.0861 | 0.0229 | 0.0632 | 91.07 | 0.6138 |
| B_favorite_lost x2.0 | 79,748 | 0.0856 | 0.0224 | 0.0632 | 90.36 | 0.6138 |
| C_longshot6 x1.5 | 77,530 | 0.0862 | 0.0234 | 0.0628 | 91.54 | 0.6130 |
| C_longshot6 x2.0 | 78,977 | 0.0854 | 0.0226 | 0.0629 | 91.02 | 0.6136 |
| C_longshot6 x3.0 | 80,493 | 0.0851 | 0.0221 | 0.0630 | 90.23 | 0.6206 |
| E_odds10 x1.5 | 78,009 | 0.0858 | 0.0230 | 0.0627 | 91.34 | 0.6162 |
| E_odds10 x2.0 | 79,673 | 0.0852 | 0.0222 | 0.0629 | 90.58 | 0.6154 |
| E_odds10 x3.0 | 81,536 | 0.0851 | 0.0214 | 0.0637 | 89.54 | 0.6196 |
| G_low_ndcg x1.5 | 78,297 | 0.0858 | 0.0226 | 0.0632 | 91.11 | 0.6111 |
| G_low_ndcg x2.0 | 80,201 | 0.0853 | 0.0222 | 0.0631 | 90.18 | 0.6154 |
| I_combined x2.0 | 79,343 | 0.0858 | 0.0223 | 0.0635 | 90.46 | 0.6116 |
表5-e: EV>=1.2 候補 (人気ありモデル)
| バリアント | 件数 | 予測勝率 | 実勝率 | calibration gap | 平均オッズ | 単勝回収率 |
|---|---|---|---|---|---|---|
| A_baseline (重み=1) | 37,200 | 0.0652 | 0.0309 | 0.0344 | 109.95 | 0.5619 |
| B_favorite_lost x1.5 | 50,846 | 0.0567 | 0.0230 | 0.0337 | 108.66 | 0.5540 |
| B_favorite_lost x2.0 | 53,526 | 0.0681 | 0.0283 | 0.0398 | 96.17 | 0.5948 |
| C_longshot6 x1.5 | 49,996 | 0.0527 | 0.0234 | 0.0293 | 108.65 | 0.5990 |
| C_longshot6 x2.0 | 64,289 | 0.0469 | 0.0179 | 0.0291 | 106.05 | 0.5898 |
| C_longshot6 x3.0 | 67,577 | 0.0532 | 0.0182 | 0.0350 | 101.54 | 0.6128 |
| E_odds10 x1.5 | 54,250 | 0.0495 | 0.0206 | 0.0289 | 109.63 | 0.5702 |
| E_odds10 x2.0 | 63,273 | 0.0498 | 0.0191 | 0.0308 | 102.39 | 0.5907 |
| E_odds10 x3.0 | 77,221 | 0.0563 | 0.0191 | 0.0372 | 93.50 | 0.6197 |
| G_low_ndcg x1.5 | 57,826 | 0.0495 | 0.0196 | 0.0300 | 108.27 | 0.5604 |
| G_low_ndcg x2.0 | 62,392 | 0.0554 | 0.0216 | 0.0338 | 99.52 | 0.5982 |
| I_combined x2.0 | 53,671 | 0.0678 | 0.0283 | 0.0395 | 96.46 | 0.6073 |
オッズ帯別キャリブレーション
表6-a: オッズ帯別 calibration_gap 比較 (人気なしモデル)
※ 各セルは 予測勝率 - 実勝率 (オッズ帯別)。正なら過大評価、負なら過小評価。
| バリアント | 1.0-1.9 | 2.0-2.9 | 3.0-4.9 | 5.0-9.9 | 10.0-19.9 | 20.0-49.9 | 50.0+ |
|---|---|---|---|---|---|---|---|
| A_baseline (重み=1) | -0.3275 | -0.1401 | -0.0504 | 0.0069 | 0.0414 | 0.0517 | 0.0427 |
| B_favorite_lost x1.5 | -0.3464 | -0.1489 | -0.0547 | 0.0066 | 0.0434 | 0.0550 | 0.0462 |
| B_favorite_lost x2.0 | -0.3606 | -0.1555 | -0.0580 | 0.0062 | 0.0447 | 0.0573 | 0.0491 |
| C_longshot6 x1.5 | -0.3337 | -0.1445 | -0.0534 | 0.0056 | 0.0415 | 0.0531 | 0.0454 |
| C_longshot6 x2.0 | -0.3403 | -0.1486 | -0.0560 | 0.0047 | 0.0420 | 0.0546 | 0.0482 |
| C_longshot6 x3.0 | -0.3526 | -0.1566 | -0.0612 | 0.0025 | 0.0421 | 0.0569 | 0.0528 |
| E_odds10 x1.5 | -0.3383 | -0.1468 | -0.0547 | 0.0055 | 0.0419 | 0.0538 | 0.0463 |
| E_odds10 x2.0 | -0.3492 | -0.1530 | -0.0585 | 0.0042 | 0.0428 | 0.0562 | 0.0499 |
| E_odds10 x3.0 | -0.3681 | -0.1642 | -0.0652 | 0.0019 | 0.0436 | 0.0594 | 0.0555 |
| G_low_ndcg x1.5 | -0.3428 | -0.1487 | -0.0553 | 0.0057 | 0.0427 | 0.0548 | 0.0468 |
| G_low_ndcg x2.0 | -0.3567 | -0.1559 | -0.0594 | 0.0048 | 0.0439 | 0.0574 | 0.0505 |
| I_combined x2.0 | -0.3595 | -0.1551 | -0.0578 | 0.0063 | 0.0446 | 0.0571 | 0.0487 |
表6-b: オッズ帯別 calibration_gap 比較 (人気ありモデル)
※ 各セルは 予測勝率 - 実勝率 (オッズ帯別)。正なら過大評価、負なら過小評価。
| バリアント | 1.0-1.9 | 2.0-2.9 | 3.0-4.9 | 5.0-9.9 | 10.0-19.9 | 20.0-49.9 | 50.0+ |
|---|---|---|---|---|---|---|---|
| A_baseline (重み=1) | -0.1034 | 0.0274 | -0.0007 | -0.0027 | 0.0064 | 0.0083 | 0.0075 |
| B_favorite_lost x1.5 | -0.2017 | -0.0218 | 0.0170 | 0.0156 | 0.0171 | 0.0144 | 0.0104 |
| B_favorite_lost x2.0 | -0.2628 | -0.0486 | 0.0293 | 0.0276 | 0.0236 | 0.0175 | 0.0107 |
| C_longshot6 x1.5 | -0.1212 | 0.0121 | -0.0101 | -0.0076 | 0.0088 | 0.0160 | 0.0123 |
| C_longshot6 x2.0 | -0.1479 | -0.0088 | -0.0211 | -0.0121 | 0.0119 | 0.0245 | 0.0197 |
| C_longshot6 x3.0 | -0.1669 | -0.0265 | -0.0332 | -0.0191 | 0.0148 | 0.0350 | 0.0248 |
| E_odds10 x1.5 | -0.1370 | 0.0010 | -0.0154 | -0.0040 | 0.0150 | 0.0183 | 0.0128 |
| E_odds10 x2.0 | -0.1641 | -0.0205 | -0.0269 | -0.0049 | 0.0222 | 0.0265 | 0.0167 |
| E_odds10 x3.0 | -0.2236 | -0.0657 | -0.0497 | -0.0065 | 0.0344 | 0.0413 | 0.0274 |
| G_low_ndcg x1.5 | -0.1670 | -0.0196 | -0.0145 | 0.0067 | 0.0210 | 0.0189 | 0.0132 |
| G_low_ndcg x2.0 | -0.2048 | -0.0477 | -0.0220 | 0.0147 | 0.0316 | 0.0253 | 0.0144 |
| I_combined x2.0 | -0.2627 | -0.0488 | 0.0291 | 0.0275 | 0.0237 | 0.0176 | 0.0108 |
参考: A_baseline (人気なしモデル) のオッズ帯別 詳細
| オッズ帯 | 件数 | 予測勝率 | 実勝率 | calibration gap | logloss | Brier | 単勝回収率(帯全体) |
|---|---|---|---|---|---|---|---|
| 1.0-1.9 | 7,211 | 0.2408 | 0.5683 | -0.3275 | 0.9923 | 0.3577 | 0.8236 |
| 2.0-2.9 | 7,863 | 0.1830 | 0.3230 | -0.1401 | 0.7393 | 0.2468 | 0.7754 |
| 3.0-4.9 | 12,860 | 0.1515 | 0.2019 | -0.0504 | 0.5568 | 0.1727 | 0.7657 |
| 5.0-9.9 | 20,680 | 0.1212 | 0.1143 | 0.0069 | 0.3836 | 0.1075 | 0.7851 |
| 10.0-19.9 | 20,849 | 0.0981 | 0.0567 | 0.0414 | 0.2444 | 0.0595 | 0.7832 |
| 20.0-49.9 | 27,077 | 0.0773 | 0.0256 | 0.0517 | 0.1521 | 0.0305 | 0.7880 |
| 50.0+ | 41,832 | 0.0477 | 0.0050 | 0.0427 | 0.0651 | 0.0082 | 0.4821 |
人気帯別キャリブレーション
表7-a: 人気帯別 calibration_gap 比較 (人気なしモデル)
※ 各セルは 予測勝率 - 実勝率 (人気帯別)。正なら過大評価、負なら過小評価。
| バリアント | 1 | 2-3 | 4-5 | 6-9 | 10+ |
|---|---|---|---|---|---|
| A_baseline (重み=1) | -0.2442 | -0.0188 | 0.0380 | 0.0450 | 0.0324 |
| B_favorite_lost x1.5 | -0.2575 | -0.0221 | 0.0397 | 0.0484 | 0.0356 |
| B_favorite_lost x2.0 | -0.2674 | -0.0247 | 0.0408 | 0.0510 | 0.0384 |
| C_longshot6 x1.5 | -0.2494 | -0.0213 | 0.0378 | 0.0468 | 0.0356 |
| C_longshot6 x2.0 | -0.2547 | -0.0235 | 0.0380 | 0.0488 | 0.0387 |
| C_longshot6 x3.0 | -0.2645 | -0.0278 | 0.0377 | 0.0518 | 0.0436 |
| E_odds10 x1.5 | -0.2528 | -0.0223 | 0.0382 | 0.0477 | 0.0362 |
| E_odds10 x2.0 | -0.2610 | -0.0254 | 0.0387 | 0.0505 | 0.0399 |
| E_odds10 x3.0 | -0.2754 | -0.0311 | 0.0391 | 0.0547 | 0.0455 |
| G_low_ndcg x1.5 | -0.2557 | -0.0227 | 0.0390 | 0.0485 | 0.0365 |
| G_low_ndcg x2.0 | -0.2659 | -0.0260 | 0.0398 | 0.0516 | 0.0399 |
| I_combined x2.0 | -0.2668 | -0.0245 | 0.0407 | 0.0508 | 0.0379 |
表7-b: 人気帯別 calibration_gap 比較 (人気ありモデル)
※ 各セルは 予測勝率 - 実勝率 (人気帯別)。正なら過大評価、負なら過小評価。
| バリアント | 1 | 2-3 | 4-5 | 6-9 | 10+ |
|---|---|---|---|---|---|
| A_baseline (重み=1) | -0.0064 | 0.0002 | 0.0032 | 0.0008 | 0.0015 |
| B_favorite_lost x1.5 | -0.1032 | 0.0281 | 0.0150 | 0.0053 | 0.0033 |
| B_favorite_lost x2.0 | -0.1612 | 0.0465 | 0.0224 | 0.0069 | 0.0031 |
| C_longshot6 x1.5 | -0.0254 | -0.0070 | 0.0001 | 0.0104 | 0.0041 |
| C_longshot6 x2.0 | -0.0521 | -0.0154 | -0.0005 | 0.0206 | 0.0098 |
| C_longshot6 x3.0 | -0.0727 | -0.0253 | -0.0058 | 0.0337 | 0.0110 |
| E_odds10 x1.5 | -0.0398 | -0.0107 | 0.0123 | 0.0097 | 0.0048 |
| E_odds10 x2.0 | -0.0667 | -0.0192 | 0.0199 | 0.0170 | 0.0068 |
| E_odds10 x3.0 | -0.1243 | -0.0358 | 0.0334 | 0.0310 | 0.0150 |
| G_low_ndcg x1.5 | -0.0708 | -0.0048 | 0.0233 | 0.0090 | 0.0055 |
| G_low_ndcg x2.0 | -0.1094 | -0.0067 | 0.0386 | 0.0127 | 0.0052 |
| I_combined x2.0 | -0.1612 | 0.0463 | 0.0224 | 0.0070 | 0.0031 |
条件別評価
表8: 条件別評価 (人気なしモデル, 主要バリアント)
| 条件 | バリアント | レース数 | AUC | NDCG@3 | delta_ndcg@3 | 単勝ROI | EV>=1.0 gap | odds>=10帯 gap |
|---|---|---|---|---|---|---|---|---|
| 全レース | A_baseline (重み=1) | 13,677 | 0.7359 | 0.5119 | -0.1367 | 0.7518 | 0.0607 | 0.0414 |
| 1番人気が勝ったレース | A_baseline (重み=1) | 6,151 | 0.8473 | 0.6477 | -0.2264 | 0.8504 | 0.0888 | 0.1035 |
| 1番人気が負けたレース | A_baseline (重み=1) | 7,526 | 0.6445 | 0.4009 | -0.0633 | 0.6713 | 0.0361 | -0.0065 |
| 6番人気以下が勝ったレース | A_baseline (重み=1) | 1,235 | 0.4548 | 0.2156 | 0.0267 | 0.6456 | -0.0322 | -0.0790 |
| 単勝10倍以上が勝ったレース | A_baseline (重み=1) | 2,082 | 0.4956 | 0.2510 | 0.0198 | 0.5342 | -0.0223 | -0.1868 |
| 人気順NDCG@3が低いレース | A_baseline (重み=1) | 4,131 | 0.5787 | 0.3021 | 0.0320 | 0.6181 | 0.0124 | -0.0637 |
| 人気順NDCG@3が高いレース | A_baseline (重み=1) | 4,627 | 0.8397 | 0.6698 | -0.2476 | 0.8262 | 0.0887 | 0.1063 |
| 全レース | C_longshot6 x2.0 | 13,677 | 0.7348 | 0.5106 | -0.1380 | 0.7463 | 0.0604 | 0.0420 |
| 1番人気が勝ったレース | C_longshot6 x2.0 | 6,151 | 0.8456 | 0.6456 | -0.2285 | 0.8371 | 0.0882 | 0.1037 |
| 1番人気が負けたレース | C_longshot6 x2.0 | 7,526 | 0.6438 | 0.4003 | -0.0639 | 0.6721 | 0.0362 | -0.0056 |
| 6番人気以下が勝ったレース | C_longshot6 x2.0 | 1,235 | 0.4562 | 0.2170 | 0.0281 | 0.7047 | -0.0390 | -0.0776 |
| 単勝10倍以上が勝ったレース | C_longshot6 x2.0 | 2,082 | 0.4977 | 0.2528 | 0.0216 | 0.5528 | -0.0277 | -0.1859 |
| 人気順NDCG@3が低いレース | C_longshot6 x2.0 | 4,131 | 0.5787 | 0.3015 | 0.0314 | 0.6109 | 0.0108 | -0.0625 |
| 人気順NDCG@3が高いレース | C_longshot6 x2.0 | 4,627 | 0.8378 | 0.6680 | -0.2495 | 0.8191 | 0.0881 | 0.1063 |
| 全レース | E_odds10 x2.0 | 13,677 | 0.7345 | 0.5110 | -0.1375 | 0.7567 | 0.0606 | 0.0428 |
| 1番人気が勝ったレース | E_odds10 x2.0 | 6,151 | 0.8446 | 0.6462 | -0.2279 | 0.8420 | 0.0882 | 0.1043 |
| 1番人気が負けたレース | E_odds10 x2.0 | 7,526 | 0.6443 | 0.4006 | -0.0637 | 0.6870 | 0.0366 | -0.0046 |
| 6番人気以下が勝ったレース | E_odds10 x2.0 | 1,235 | 0.4575 | 0.2169 | 0.0280 | 0.7432 | -0.0403 | -0.0767 |
| 単勝10倍以上が勝ったレース | E_odds10 x2.0 | 2,082 | 0.4993 | 0.2529 | 0.0217 | 0.5955 | -0.0293 | -0.1850 |
| 人気順NDCG@3が低いレース | E_odds10 x2.0 | 4,131 | 0.5797 | 0.3030 | 0.0330 | 0.6374 | 0.0102 | -0.0615 |
| 人気順NDCG@3が高いレース | E_odds10 x2.0 | 4,627 | 0.8370 | 0.6680 | -0.2495 | 0.8269 | 0.0884 | 0.1069 |
| 全レース | G_low_ndcg x2.0 | 13,677 | 0.7340 | 0.5099 | -0.1387 | 0.7536 | 0.0607 | 0.0439 |
| 1番人気が勝ったレース | G_low_ndcg x2.0 | 6,151 | 0.8428 | 0.6437 | -0.2304 | 0.8369 | 0.0883 | 0.1054 |
| 1番人気が負けたレース | G_low_ndcg x2.0 | 7,526 | 0.6448 | 0.4005 | -0.0637 | 0.6855 | 0.0369 | -0.0035 |
| 6番人気以下が勝ったレース | G_low_ndcg x2.0 | 1,235 | 0.4590 | 0.2153 | 0.0264 | 0.6589 | -0.0400 | -0.0758 |
| 単勝10倍以上が勝ったレース | G_low_ndcg x2.0 | 2,082 | 0.5007 | 0.2520 | 0.0207 | 0.5412 | -0.0301 | -0.1839 |
| 人気順NDCG@3が低いレース | G_low_ndcg x2.0 | 4,131 | 0.5808 | 0.3027 | 0.0326 | 0.6301 | 0.0098 | -0.0604 |
| 人気順NDCG@3が高いレース | G_low_ndcg x2.0 | 4,627 | 0.8351 | 0.6664 | -0.2510 | 0.8246 | 0.0886 | 0.1079 |
| 全レース | I_combined x2.0 | 13,677 | 0.7335 | 0.5083 | -0.1402 | 0.7374 | 0.0606 | 0.0446 |
| 1番人気が勝ったレース | I_combined x2.0 | 6,151 | 0.8423 | 0.6410 | -0.2332 | 0.8258 | 0.0887 | 0.1063 |
| 1番人気が負けたレース | I_combined x2.0 | 7,526 | 0.6445 | 0.3999 | -0.0643 | 0.6651 | 0.0362 | -0.0029 |
| 6番人気以下が勝ったレース | I_combined x2.0 | 1,235 | 0.4572 | 0.2180 | 0.0291 | 0.5645 | -0.0378 | -0.0753 |
| 単勝10倍以上が勝ったレース | I_combined x2.0 | 2,082 | 0.4997 | 0.2571 | 0.0259 | 0.4867 | -0.0284 | -0.1833 |
| 人気順NDCG@3が低いレース | I_combined x2.0 | 4,131 | 0.5800 | 0.3041 | 0.0340 | 0.5904 | 0.0092 | -0.0600 |
| 人気順NDCG@3が高いレース | I_combined x2.0 | 4,627 | 0.8344 | 0.6635 | -0.2540 | 0.8118 | 0.0888 | 0.1089 |
表8-b: 条件別評価 (人気ありモデル, 主要バリアント)
| 条件 | バリアント | レース数 | AUC | NDCG@3 | delta_ndcg@3 | 単勝ROI | EV>=1.0 gap | odds>=10帯 gap |
|---|---|---|---|---|---|---|---|---|
| 全レース | A_baseline (重み=1) | 13,677 | 0.8459 | 0.6479 | -0.0007 | 0.8095 | 0.0345 | 0.0064 |
| 1番人気が勝ったレース | A_baseline (重み=1) | 6,151 | 0.9998 | 0.8739 | -0.0002 | 1.7990 | 0.0278 | 0.0709 |
| 1番人気が負けたレース | A_baseline (重み=1) | 7,526 | 0.7184 | 0.4631 | -0.0011 | 0.0007 | 0.0414 | -0.0433 |
| 6番人気以下が勝ったレース | A_baseline (重み=1) | 1,235 | 0.3670 | 0.1880 | -0.0009 | 0.0000 | 0.0351 | -0.1144 |
| 単勝10倍以上が勝ったレース | A_baseline (重み=1) | 2,082 | 0.4794 | 0.2314 | 0.0002 | 0.0000 | -0.0088 | -0.2183 |
| 人気順NDCG@3が低いレース | A_baseline (重み=1) | 4,131 | 0.6073 | 0.2714 | 0.0013 | 0.0000 | 0.0393 | -0.1003 |
| 人気順NDCG@3が高いレース | A_baseline (重み=1) | 4,627 | 0.9912 | 0.9167 | -0.0007 | 1.6311 | 0.0299 | 0.0723 |
| 全レース | C_longshot6 x2.0 | 13,677 | 0.8437 | 0.6483 | -0.0003 | 0.8093 | 0.0296 | 0.0119 |
| 1番人気が勝ったレース | C_longshot6 x2.0 | 6,151 | 0.9998 | 0.8740 | -0.0001 | 1.7995 | 0.0374 | 0.0732 |
| 1番人気が負けたレース | C_longshot6 x2.0 | 7,526 | 0.7146 | 0.4638 | -0.0005 | 0.0000 | 0.0224 | -0.0353 |
| 6番人気以下が勝ったレース | C_longshot6 x2.0 | 1,235 | 0.4201 | 0.1895 | 0.0006 | 0.0000 | -0.0636 | -0.1035 |
| 単勝10倍以上が勝ったレース | C_longshot6 x2.0 | 2,082 | 0.4791 | 0.2318 | 0.0006 | 0.0000 | -0.0443 | -0.2118 |
| 人気順NDCG@3が低いレース | C_longshot6 x2.0 | 4,131 | 0.5984 | 0.2703 | 0.0002 | 0.0000 | 0.0060 | -0.0904 |
| 人気順NDCG@3が高いレース | C_longshot6 x2.0 | 4,627 | 0.9911 | 0.9172 | -0.0003 | 1.6314 | 0.0385 | 0.0737 |
| 全レース | E_odds10 x2.0 | 13,677 | 0.8452 | 0.6467 | -0.0019 | 0.8092 | 0.0300 | 0.0222 |
| 1番人気が勝ったレース | E_odds10 x2.0 | 6,151 | 0.9998 | 0.8730 | -0.0011 | 1.7993 | 0.0430 | 0.0843 |
| 1番人気が負けたレース | E_odds10 x2.0 | 7,526 | 0.7177 | 0.4618 | -0.0024 | 0.0000 | 0.0177 | -0.0257 |
| 6番人気以下が勝ったレース | E_odds10 x2.0 | 1,235 | 0.3750 | 0.1875 | -0.0014 | 0.0000 | -0.0504 | -0.0963 |
| 単勝10倍以上が勝ったレース | E_odds10 x2.0 | 2,082 | 0.4856 | 0.2374 | 0.0062 | 0.0000 | -0.0587 | -0.2021 |
| 人気順NDCG@3が低いレース | E_odds10 x2.0 | 4,131 | 0.6090 | 0.2774 | 0.0073 | 0.0000 | -0.0052 | -0.0818 |
| 人気順NDCG@3が高いレース | E_odds10 x2.0 | 4,627 | 0.9912 | 0.9129 | -0.0046 | 1.6314 | 0.0441 | 0.0854 |
| 全レース | G_low_ndcg x2.0 | 13,677 | 0.8445 | 0.6422 | -0.0064 | 0.8104 | 0.0321 | 0.0316 |
| 1番人気が勝ったレース | G_low_ndcg x2.0 | 6,151 | 0.9993 | 0.8703 | -0.0039 | 1.7968 | 0.0563 | 0.0969 |
| 1番人気が負けたレース | G_low_ndcg x2.0 | 7,526 | 0.7167 | 0.4559 | -0.0084 | 0.0042 | 0.0089 | -0.0188 |
| 6番人気以下が勝ったレース | G_low_ndcg x2.0 | 1,235 | 0.3699 | 0.1866 | -0.0023 | 0.0000 | -0.0330 | -0.0924 |
| 単勝10倍以上が勝ったレース | G_low_ndcg x2.0 | 2,082 | 0.4859 | 0.2455 | 0.0143 | 0.0000 | -0.0538 | -0.1942 |
| 人気順NDCG@3が低いレース | G_low_ndcg x2.0 | 4,131 | 0.6150 | 0.2922 | 0.0221 | 0.0010 | -0.0187 | -0.0770 |
| 人気順NDCG@3が高いレース | G_low_ndcg x2.0 | 4,627 | 0.9906 | 0.9034 | -0.0140 | 1.6294 | 0.0559 | 0.0993 |
| 全レース | I_combined x2.0 | 13,677 | 0.8385 | 0.6319 | -0.0167 | 0.8113 | 0.0372 | 0.0237 |
| 1番人気が勝ったレース | I_combined x2.0 | 6,151 | 0.9619 | 0.8068 | -0.0673 | 1.2274 | 0.0750 | 0.0907 |
| 1番人気が負けたレース | I_combined x2.0 | 7,526 | 0.7363 | 0.4890 | 0.0247 | 0.4713 | -0.0008 | -0.0279 |
| 6番人気以下が勝ったレース | I_combined x2.0 | 1,235 | 0.3691 | 0.1841 | -0.0048 | 0.0000 | 0.0003 | -0.1007 |
| 単勝10倍以上が勝ったレース | I_combined x2.0 | 2,082 | 0.4809 | 0.2270 | -0.0043 | 0.0102 | -0.0263 | -0.2020 |
| 人気順NDCG@3が低いレース | I_combined x2.0 | 4,131 | 0.6132 | 0.2796 | 0.0096 | 0.1579 | -0.0017 | -0.0860 |
| 人気順NDCG@3が高いレース | I_combined x2.0 | 4,627 | 0.9587 | 0.8651 | -0.0524 | 1.2039 | 0.0696 | 0.0928 |
波乱定義別・重み倍率別比較
表9-a: 波乱定義別・重み倍率別比較 (人気なしモデル)
| バリアント | AUC | logloss | Brier | NDCG@3 | delta_ndcg@3 | 単勝ROI | odds>=10帯 gap | 重み対象行数 |
|---|---|---|---|---|---|---|---|---|
| A_baseline (重み=1) | 0.7359 | 0.2891 | 0.0822 | 0.5119 | -0.1367 | 0.7518 | 0.0414 | 0 |
| B_favorite_lost x1.5 | 0.7349 | 0.2897 | 0.0824 | 0.5101 | -0.1385 | 0.7628 | 0.0434 | 442,966 |
| B_favorite_lost x2.0 | 0.7339 | 0.2906 | 0.0826 | 0.5102 | -0.1383 | 0.7520 | 0.0447 | 442,966 |
| C_longshot6 x1.5 | 0.7353 | 0.2894 | 0.0822 | 0.5104 | -0.1382 | 0.7449 | 0.0415 | 78,305 |
| C_longshot6 x2.0 | 0.7348 | 0.2898 | 0.0823 | 0.5106 | -0.1380 | 0.7463 | 0.0420 | 78,305 |
| C_longshot6 x3.0 | 0.7331 | 0.2911 | 0.0826 | 0.5096 | -0.1389 | 0.7449 | 0.0421 | 78,305 |
| E_odds10 x1.5 | 0.7351 | 0.2894 | 0.0823 | 0.5111 | -0.1375 | 0.7623 | 0.0419 | 130,354 |
| E_odds10 x2.0 | 0.7345 | 0.2902 | 0.0824 | 0.5110 | -0.1375 | 0.7567 | 0.0428 | 130,354 |
| E_odds10 x3.0 | 0.7323 | 0.2922 | 0.0828 | 0.5085 | -0.1401 | 0.7524 | 0.0436 | 130,354 |
| G_low_ndcg x1.5 | 0.7348 | 0.2897 | 0.0823 | 0.5104 | -0.1382 | 0.7558 | 0.0427 | 256,264 |
| G_low_ndcg x2.0 | 0.7340 | 0.2906 | 0.0826 | 0.5099 | -0.1387 | 0.7536 | 0.0439 | 256,264 |
| I_combined x2.0 | 0.7335 | 0.2906 | 0.0826 | 0.5083 | -0.1402 | 0.7374 | 0.0446 | 442,985 |
表9-b: 波乱定義別・重み倍率別比較 (人気ありモデル)
| バリアント | AUC | logloss | Brier | NDCG@3 | delta_ndcg@3 | 単勝ROI | odds>=10帯 gap | 重み対象行数 |
|---|---|---|---|---|---|---|---|---|
| A_baseline (重み=1) | 0.8459 | 0.2438 | 0.0715 | 0.6479 | -0.0007 | 0.8095 | 0.0064 | 0 |
| B_favorite_lost x1.5 | 0.8453 | 0.2472 | 0.0727 | 0.6476 | -0.0010 | 0.8109 | 0.0171 | 442,966 |
| B_favorite_lost x2.0 | 0.8383 | 0.2523 | 0.0747 | 0.6316 | -0.0170 | 0.8090 | 0.0236 | 442,966 |
| C_longshot6 x1.5 | 0.8452 | 0.2447 | 0.0715 | 0.6479 | -0.0006 | 0.8096 | 0.0088 | 78,305 |
| C_longshot6 x2.0 | 0.8437 | 0.2475 | 0.0719 | 0.6483 | -0.0003 | 0.8093 | 0.0119 | 78,305 |
| C_longshot6 x3.0 | 0.8340 | 0.2513 | 0.0727 | 0.6393 | -0.0093 | 0.8093 | 0.0148 | 78,305 |
| E_odds10 x1.5 | 0.8458 | 0.2452 | 0.0717 | 0.6473 | -0.0013 | 0.8096 | 0.0150 | 130,354 |
| E_odds10 x2.0 | 0.8452 | 0.2476 | 0.0722 | 0.6467 | -0.0019 | 0.8092 | 0.0222 | 130,354 |
| E_odds10 x3.0 | 0.8408 | 0.2558 | 0.0740 | 0.6361 | -0.0125 | 0.8092 | 0.0344 | 130,354 |
| G_low_ndcg x1.5 | 0.8455 | 0.2465 | 0.0721 | 0.6467 | -0.0019 | 0.8095 | 0.0210 | 256,264 |
| G_low_ndcg x2.0 | 0.8445 | 0.2496 | 0.0730 | 0.6422 | -0.0064 | 0.8104 | 0.0316 | 256,264 |
| I_combined x2.0 | 0.8385 | 0.2523 | 0.0747 | 0.6319 | -0.0167 | 0.8113 | 0.0237 | 442,985 |
考察
レース単位で重くすると荒れるレースに強くなったか
表8 (条件別評価) を見ると、波乱レース内の NDCG@3 や delta_ndcg@3 がbaseline から改善しているかを確認できます。レース単位の重み付けは、前回の馬単体重み付けよりも重みがかかる行数が大幅に多いため (波乱レースの全出走馬が対象)、モデルへの影響は大きくなります。
改善が見られた場合でも、波乱レースは事後的にしか定義できないため、実運用ではレース前に波乱レースかどうかを判定する Gate が必要です。
波乱定義によって結果は変わったか
表9 (波乱定義別・重み倍率別比較) で各定義の影響を比較できます。U1 (1番人気が負けたレース) は train の約半数を占めるため重み対象が広く、U3 (8番人気以下が勝ったレース) は狭い定義です。定義が広すぎると通常学習との差が薄まり、狭すぎると効果が限定的になります。
順当レースで悪化していないか
波乱レースを重くすると、順当レース (1番人気が勝ったレース) の学習が相対的に軽くなります。表8 の「1番人気が勝ったレース」条件で AUC / NDCG@3 が大きく悪化していないかを確認する必要があります。
高オッズ馬の過大評価は改善したか、悪化したか
calibration gap の定義は 予測勝率 - 実勝率 です。正に大きいほど過大評価、負に大きいほど過小評価です。
表6 (オッズ帯別 calibration_gap) の 10.0-19.9 / 20.0-49.9 / 50.0+ 帯を見ると、重み倍率を上げるほど calibration gap がどう動くかを確認できます。前回記事では重みを強くすると高オッズ帯の gap が正方向に広がる傾向がありましたが、レース単位の重み付けではこの傾向が異なる可能性があります。
単純な重み付けの限界
sample_weight の変更は最も軽い介入であり、レース全体を重くしても波乱レースの特徴をモデルが本質的に学べるとは限りません。よりドラスティックな改善を目指すなら、以下の組み合わせが候補になります。
- キャリブレーション後補正 (Isotonic / Platt Scaling)
- ランキング学習 (LightGBM の lambdarank) との併用
- 波乱レース用/順当レース用モデル分離 (MoE/Gate)
- レース前特徴量で波乱度を推定する「レース前Gate」の構築
まとめ
今回は波乱レースをレース単位で重く学習する8種類の定義 (U1-U8) を比較しました。
- レース単位の重み付けは、前回の馬単体重み付けよりも対象行数が大幅に多い
- 波乱レース定義が広い (U1, U8) ほど重み対象が多く、モデルへの影響は大きい
- 全体 AUC / logloss / Brier はどの定義でも大きく変わらないことが多い
- 波乱レース内の NDCG@3 / delta_ndcg@3 が改善するかが本記事の焦点
- 順当レースで大きく悪化していないかの確認も重要
- 波乱レースはレース後にしか分からないため、実運用にはレース前Gateが必要

