自作した競馬予測モデルを今後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 |
|---|---|---|---|---|---|---|---|
| 7 | スズハローム | 86.253917 | 0.204587 | 31.2 | 12 | ○ | - |
| 17 | トロヴァトーレ | 86.217661 | 0.300893 | 4.4 | 1 | ○ | ○ |
| 11 | ワールズエンド | 86.086759 | 0.138091 | 10.8 | 7 | ○ | - |
| 14 | ガイアフォース | 86.047238 | 0.193148 | 5.7 | 2 | ○ | - |
| 1 | レーベンスティール | 86.028701 | 0.15667 | 8.6 | 4 | ○ | - |
| 13 | セイウンハーデス | 85.940457 | 0.208615 | 20.2 | 8 | - | - |
| 3 | オフトレイル | 85.809313 | 0.237371 | 26.4 | 11 | - | ○ |
| 8 | シャンパンカラー | 85.765696 | 0.186183 | 32.9 | 13 | - | - |
| 9 | ウォーターリヒト | 85.750321 | 0.233711 | 22.9 | 10 | - | - |
| 4 | シックスペンス | 85.73496 | 0.023248 | 10.6 | 6 | - | - |
| 12 | シリウスコルト | 85.457861 | 0.212903 | 66.6 | 15 | - | - |
| 15 | ドラゴンブースト | 85.336498 | 0.363301 | 20.5 | 9 | - | ○ |
| 16 | パンジャタワー | 85.296655 | 0.192068 | 6.8 | 3 | - | - |
| 2 | ロングラン | 85.27871 | 0.13787 | 177.6 | 17 | - | - |
| 5 | サクラトゥジュール | 84.877879 | 0.149197 | 102.7 | 16 | - | - |
| 10 | ルクソールカフェ | 84.214546 | 0.202665 | 33.9 | 14 | - | - |
| 6 | ステレンボッシュ | 82.462282 | 0.200714 | 10.5 | 5 | - | - |
「flg_1」はスピード指数予測モデルの予測結果をもとに単勝を購入する対象を「○」とし、
「flg_2」は3着以内予測モデルの予測結果をもとに単勝を購入する対象を「○」としています。
※参考単勝オッズと人気は予測時点のものです。
※今回の予測は個人的な都合につき、当日にモデルを回すことができなかったため、木曜日時点の情報で予測を行っています。
今回は2頭が両モデルのフラグ対象となっているため、両モデルともに的中できる可能性があります。
レース結果を受けての所感
1着:4番シックスペンス(8番人気)単勝オッズ21.6倍
今回は残念ながら的中できませんでした。
| 予測モデル | 的中 | 回収率 |
|---|---|---|
| 予測スピード指数 | - | 0.0% |
| 3着以内予測確率 | - | 0.0% |
今回は例外的に当日時点の情報(馬番・天気・馬場・馬体重)を反映できていない予測結果での検証でしたが、どちらのモデルでもフラグ圏内にかすらない結果でした。
ただ、2着となった1番人気のガイアフォースや2着(同着)となった7番人気のワールズエンドをフラグ圏内にとらえており、惜しい結果だったと評価します。
現在の成績
検証レース数:10
| 予測モデル | 的中率 | 回収率 |
|---|---|---|
| 予測スピード指数 | 60.0% | 48.4% |
| 3着以内予測確率 | 40.0% | 32.0% |
今回のレースは人気馬が1着に来ない結果となっており、全体の回収率に大きく貢献できる可能性を持っていましたが、的中できませんでした。
こういったレースに対してどういうアプローチができるかが今後の課題となりそうです。
これからが楽しみですね。
それではまた、次回の検証で。