自作した競馬予測モデルを今後1年間のGIレースに適用して性能を検証してみようと思います。
本稿は、検証したレースの予測結果と、実際のレース結果を受けてのモデルの挙動に関する所感をまとめておく記録用の記事となります。
予測結果までスキップする▶高松宮記念予測結果
予測モデルの概要と検証方法
ベース
今回、モデルを2種類構築しましたが、使用するデータや加工は両モデルで同じです。
- アルゴリズム:LightGBM
- モデル①:スピード指数予測モデル
- モデル②:3着以内予測モデル
使用データ概要
| 分野 | 指標 |
|---|---|
| レース情報 | 会場, レース目, 距離, トラック種別, 重賞, レースクラス, 年齢クラス, 性別クラス, 頭数, 天気, 馬場 |
| 出走馬情報 | horse_id, 枠番, 馬番, 性別, 年齢, 斤量, 馬体重, 前走比, jockey_id, trainer_id, 累計獲得賞金, 輸送距離, 会場_相性, トラック種別_相性,馬番_相性, 騎手_相性, 馬場_相性, 天気_相性 |
| 前走~3走 | タイム, Last3F, 着順, スピード指数, 馬場指数, 会場, レース目, 距離, トラック種別, レースクラス, 頭数, 天気, 馬場, 枠番, 馬番, jockey_id, trainer_id |
基本的にはnetkeibaの中央競馬のデータをスクレイピングし加工しています。
相性は、過去の同条件のレースでの賞金獲得実績から算出しています。
スピード指数はこちらのサイトの算出方法を参考に、自身で算出プロセスを組みました。
https://team-d.club/speed-index/about-speed-index/
算出には過去3走の実績を使用しているので、中央競馬の出走実績が3走に満たない馬は予測の対象外となります。
スピード指数予測モデル
- 予測手法:回帰
- 目的変数:スピード指数
- 購入対象(フラグ):スピード指数上位5頭
継続的な検証をするには1レースで5頭は多すぎる気もしますが、シミュレーションでは上位3頭よりは網羅できる結果となっていたので、これで行きたいと思います。
3着以内予測モデル
- 予測手法:分類
- 目的変数:flg(3着以内だと1)
- 購入対象(フラグ):予測確率上位3頭
こちらのモデルは、キャリブレーション(sigmoid、isotonic)やオッズに応じた予測確率の補正を施しています。
検証方法
2026年に中央競馬で開催されるGIレースを対象として予測結果に従って単勝馬券を購入します。
ただし、予測対象の頭数が出走頭数の過半数に満たないときは、そのレースの購入を見送ります。
モデル別に毎レースの回収率を算出し、結果を検証します。
最終的に有馬記念までの合算した回収率から実績を評価します。
高松宮記念予測結果
| 馬番 | 馬名 | 予測スピード指数 | 3着以内予測確率 | 参考単勝オッズ | 人気 | flg_1 | flg_2 |
|---|---|---|---|---|---|---|---|
| 9 | サトノレーヴ | 86.4181 | 0.273783 | 4 | 1 | ○ | - |
| 6 | レッドモンレーヴ | 86.3735 | 0.205452 | 49.8 | 13 | ○ | - |
| 3 | エーティーマクフィ | 86.1002 | 0.217752 | 20.1 | 8 | ○ | - |
| 8 | ウインカーネリアン | 85.947 | 0.275462 | 17.5 | 7 | ○ | - |
| 7 | ヨシノイースター | 85.2777 | 0.268344 | 66.5 | 16 | ○ | - |
| 2 | ビッグシーザー | 85.1583 | 0.179109 | 52.5 | 14 | - | - |
| 5 | ヤマニンアルリフラ | 85.0615 | 0.322243 | 38.1 | 11 | - | ○ |
| 11 | ララマセラシオン | 84.2582 | 0.319036 | 42.9 | 12 | - | ○ |
| 17 | ペアポルックス | 84.0476 | 0.311555 | 34.6 | 10 | - | - |
| 4 | ダノンマッキンリー | 83.8338 | 0.191985 | 59.1 | 15 | - | - |
| 1 | パンジャタワー | 83.2284 | 0.0137709 | 4.9 | 3 | - | - |
| 10 | ママコチャ | 82.3095 | 0.106403 | 8.8 | 4 | - | - |
| 15 | インビンシブルパパ | 82.2811 | 0.217672 | 23.3 | 9 | - | - |
| 14 | レイピア | 82.1813 | 0.387648 | 16.8 | 6 | - | ○ |
| 13 | ナムラクレア | 81.4454 | 0.260379 | 4 | 2 | - | - |
| 16 | フィオライア | 80.9009 | 0.223236 | 92.3 | 17 | - | - |
| 18 | ジューンブレア | 80.7102 | 0.299964 | 15.2 | 5 | - | - |
| 12 | ピューロマジック | 79.7124 | 0.168332 | 94.3 | 18 | - | - |
「flg_1」はスピード指数予測モデルの予測結果をもとに単勝を購入する対象を「○」とし、
「flg_2」は3着以内予測モデルの予測結果をもとに単勝を購入する対象を「○」としています。
※参考単勝オッズと人気は予測時点のものです。
予測結果の傾向から、今回は予測馬の重複がありませんので、良くても片方のモデルでしか的中はできません。
ですが、サトノレーヴ以外の予測馬が勝利すれば、全体の回収率に大きく貢献します。
また、高松宮記念はあれやすい印象を持たれている傾向ですので、最低でもサトノレーヴ、あわよくば他の予測馬の勝利を期待したいです。
レース結果を受けての所感
1着:9番サトノレーヴ(1番人気)単勝オッズ3.5倍
見事、的中することができました。実に爽快な勝利でしたね。
| 予測モデル | 的中 | 回収率 |
|---|---|---|
| 予測スピード指数 | ○ | 70.0% |
| 3着以内予測確率 | - | 0.0% |
今回の予測結果の着眼点としては、スピード指数モデルでは3着以内全頭にフラグを立てていたということです。
回収率を検証する観点から、単勝のみの買い目であったためトリガミとなっていますが、予測結果を踏まえて買い方を判断するような運用の場合なら、今回の予測結果は非常に有意義だったといえます。
今回1着となったサトノレーヴは、昨年の高松宮記念でも1着をとっており、これが今回の予測結果に大きく影響したと考えられます。
一方、2番人気で今回がラストレースだったナムラクレアは、高松宮記念の出走経験が豊富で毎度好成績を残していましたが、高松宮記念ではスピード指数は82点台で推移していたため、これが予測に反映されたものとして、今回はフラグ対象となりませんでした。
現在の成績
検証レース数:2
| 予測モデル | 的中率 | 回収率 |
|---|---|---|
| 予測スピード指数 | 100.0% | 69.0% |
| 3着以内予測確率 | 50.0% | 56.7% |
スピード指数モデルは的中率を維持しており、いい調子です。
ですが、人気の低い馬が勝利するかつその回を的中させる展開にならなければ、このシミュレーション条件下ではまだまだ厳しい状況です。
これからが楽しみですね。
それではまた、次回の検証で。