競馬結果予測 – スピード指数追加
目的
以前過去レース4を参照する予測モデルを作成した。
今回は過去レースのスピード指数を算出して、それをモデルの特徴量に加えることで予測精度を高めてみる。
スピード指数とは
Wikipediaによると、「全ての馬が同じ馬場状態の同じコースを同じ負担重量で走ったと仮定して、そのタイム(=スピード指数)を比較する」ための数値である。
https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%94%E3%83%BC%E3%83%89%E6%8C%87%E6%95%B0
スピード指数は、こちらの西田式スピード指数の計算式を参考にさせてもらった。
スピード指数= (基準タイム-走破タイム)×距離指数+馬場指数+(斤量-55)×2+80
http://www.rightniks.ne.jp/index.php?action=whatspidx_contents&name=sikumi
競馬データは、1986/01/05 – 2021/07/31のレース結果をもとに基準タイム、馬場指数を計算してみた。
JRA日本中央競馬会データ
https://www.kaggle.com/takamotoki/jra-horse-racing-dataset
基準タイム・距離指数は下記のようになった。
競馬場名 | 距離(m) | 芝・ダート区分 | 基準タイム(sec) | 距離指数 |
---|---|---|---|---|
中京 | 1000 | ダート | 61.0749241 | 16.37333185 |
中京 | 1000 | 芝 | 58.43854167 | 17.11199444 |
中京 | 1200 | ダート | 73.20024691 | 13.6611561 |
中京 | 1200 | 芝 | 70.78053872 | 14.12817729 |
中京 | 1400 | ダート | 86.04452214 | 11.62189033 |
中京 | 1400 | 芝 | 83.13857143 | 12.02811141 |
中京 | 1600 | ダート | 103.0495935 | 9.704065451 |
中京 | 1600 | 芝 | 96.3614094 | 10.37759832 |
中京 | 1700 | ダート | 109.2590794 | 9.15255744 |
中京 | 1700 | 芝 | 104.8889535 | 9.533892433 |
馬場指数は下記のようになった。
馬場タイプ | 馬場指数 |
---|---|
中京-小雨-不良 | 0.006388356419 |
中京-小雨-稍重 | 0.007500614984 |
中京-小雨-良 | 0.007844392145 |
中京-小雨-重 | 0.01824572074 |
中京-小雪-稍重 | 0.01082920039 |
中京-小雪-良 | -0.005421703553 |
中京-小雪-重 | -0.0003605758982 |
中京-晴-不良 | 0.008536988895 |
中京-晴-稍重 | 0.007197878851 |
中京-晴-良 | 0.008598006558 |
これらをもとにスピード指数を求め、予測モデルを訓練した。
予測モデル訓練結果
まずは以前のモデルの誤差と特徴量重要度を記載する。
平均絶対誤差は 1.058秒であった。
次にスピード指数を追加したモデルの誤差と特徴量重要度を記載する。
平均絶対誤差は 1.049秒であった。
どちらのモデルも訓練データに様々な距離のレースデータが入っているので、タイムを予測する上で距離(m)の特徴量重要性が一番高いのは当然かと思う。
以前のモデルでは平均速度(距離/タイム)が二番目に重要度が高く、スピード指数ありモデルではスピード指数の重要度が二番目に重要となっている。
平均速度、スピード指数が意味するものが似ているので、この結果は妥当かと思う。
スピード指数の方がよりタイム予測により有効であったといえるだろう。
三番目に重要な特徴量としてダートコースを意味する特徴量があるので、コースを示す特徴量を追加すると精度がよくなるかもしれない。
まとめ
過去レースのスピード指数をモデルに追加することで、タイム予測精度を向上することができた。
今後より精度を高めるためにレース場の特徴量も含めてみようと思う。
ディスカッション
コメント一覧
まだ、コメントがありません