競馬AIをつくる

芝とダート。違う馬場の物差しを、どう揃えるか

芝からダート、ダートから芝への転戦は、以前より確実に増えている。ダートの番組が拡充され、芝で頭打ちになった馬が砂で一変する例も珍しくなくなった。3歳のこの時期に路線を切り替える馬も多い。

予想する側としては、ここで必ず同じ問いにぶつかる。芝で出した数字を、ダートでどう読み替えればいいのか。

自作のスピード指数でも、これは避けて通れない論点だった。そして現時点では、ひとつの答えを出して運用している。ただし、それが最終形だとは考えていない。

混ぜていた頃

私のモデルは、その馬の直近の成績を材料のひとつにしている。「直近3走のスピード指数の平均」といった数値だ。

当初、この平均を取るときに芝で走った記録とダートで走った記録を区別していなかった。前走がダート、その前が芝でも、まとめて平均していた。

書いてみると見落としに見える。ただ、動いているシステムの中では気づきにくい種類の設計だった。指数は同じ尺度で計算されているのだから、混ぜても問題ないはずだ、という前提が無自覚に置かれていたのである。

混ざり具合を測る

まず、どれだけ違うのかを測った。

やり方は単純である。前走の指数と次走の指数がどれだけ連動しているかを見る。前走で良かった馬が次走でも良ければ、その数値には予測する力がある。

同じ馬場が続いた場合(芝の次も芝、ダートの次もダート)と、馬場が替わった場合で分けて計算した。対象は2万7579件である。

同じ馬場が続いた場合   0.651
馬場が替わった場合     0.410

同じ馬場なら強く連動する。馬場が替わると、その連動は目に見えて落ちる。芝の成績は、ダートの成績をあまり教えてくれない。 競馬ファンなら当然だと感じる結果が、数字として出た。

落差の中身を分解する

ここから一歩踏み込んで、この落差が何でできているかを分解した。

ダートの指数から芝の指数を予測する回帰を引くと、係数は 0.324 だった。ダートの指数が10違っても、芝の指数の差としては3程度にしかならない。大きく圧縮される。

この圧縮率を要素に分けると、次のようになった。

圧縮 0.32 = 適性の相関 0.41 × ばらつきの比 0.81

後半の 0.81 は、指数の散らばり方の違いである。芝の指数は平均88.1・標準偏差16.6、ダートは平均84.4・標準偏差20.5。ダートのほうが散らばりが大きい。

理由ははっきりしている。指数を作るとき、秒からポイントへの換算係数を芝ダート共通にしているからだ。ダートのほうがタイムのばらつきが大きいので、同じ係数を掛けると指数の散らばりも大きくなる。

つまりこの部分は、馬の性質ではなく私の変換方法に由来する。技術的に解消できる余地がある。

そして前半の 0.41。これが馬ごとの適性の違いそのものである。圧縮の8割はここから来ている。芝が得意な馬とダートが得意な馬は、実際に別だということだ。

正規化では埋まらなかった

分解の結果を受けて、まず考えたのは変換で揃える方向だった。散らばりの違いに由来する部分があるなら、標準化して尺度を合わせればよい。

試したところ、モデルの成績はほとんど動かなかった。

理由を考えると納得がいく。標準化という処理は、数値全体を平行移動させたり拡大縮小させたりするものだ。ものさしの目盛りのずれは直せる。

しかし落差の8割は目盛りの問題ではなかった。芝の成績とダートの成績は、そもそも別のことを測っている。 測っている中身が違うものは、目盛りを揃えても同じにならない。

数字の見た目を揃えることと、意味を揃えることは違う、ということである。

現状の最適解ー分けて持ち、両方渡す

そこで現時点では、芝の履歴とダートの履歴を別々の数値として持つ方式を採っている。

「この馬の芝での直近3走の平均」と「ダートでの直近3走の平均」を別に用意し、今日走る馬場に合ったほうを参照する。

重要なのは、これを置き換えではなく追加にしたことだ。従来の「馬場を一緒にしていた履歴」も残してある。

結果、レース内で精度指標が 0.4673 から 0.4808 に上がった。この改良ひとつでの改善幅としては、それまでの改良と比べても大きい。予測の誤差も縮んだ。

そして興味深いことに、新しく追加した数値と、従来の一緒のままの数値は、どちらも使われ続けている。互いに別の情報を持っていたということである。馬場をまたいだ通算の充実度にも、それ自体の意味があったわけだ。

まとめ

ここまでが現在の運用である。ただ、これを最終形だとは考えていない。

理由は冒頭に書いたとおりだ。芝とダートの往来は増えている。転向してきた馬をどう評価するかは、予想の現場でますます重要になる。分けて持つ方式は、馬場が替わった瞬間に片方の履歴が使えなくなる。 ダートに初挑戦する芝の実績馬について、ダート側の履歴は空である。

だから、芝とダートを同じ土俵で語れる統一した指数を作ることには、依然として意味がある。

道筋は分解の結果が示している。

ばらつきの比 0.81 の部分は、技術的に解消できる。 秒からポイントへの換算係数を芝ダート別に持たせればよい。これは実装の問題であり、判断さえすれば片付く。

本丸は適性の相関 0.41 のほうである。ここは馬ごとの性質なので、一律の変換では埋まらない。埋めるとすれば、馬ごとの「ダート適性」を推定して、その馬に固有の換算をかけることになる。血統からの推定も使えるだろう。ダート系の種牡馬の産駒なら、芝の指数からダートの指数への換算は違う形になるはずだ。

さらに言えば、乖離の大きさが水準に依存することも分かっている。ダートで低い指数だった馬は芝で上振れ、高い指数だった馬は芝で下振れる傾向がある。単純な線形の換算では、この曲がりを吸収しきれない。

次に確かめること

整理すると、統一指数に向けた宿題は三つになる。

換算係数を芝ダート別にする。 ばらつきの違いのうち、変換に由来する部分を先に取り除く。ここが済めば、残るのは純粋に適性の差になる。

馬ごとの馬場適性を推定する。 血統と、実際に両馬場を走った馬の記録から求める。両方を走った馬は多くはないが、種牡馬単位で集計すれば母数は確保できる。

水準依存の非線形性を扱う。 一次式ではなく、指数の水準に応じて換算の傾きが変わる形にする。

これらが揃えば、「芝の98点はダートでいくつに相当するか」に、馬ごとの答えを返せるようになる。転向してきた馬を、過去の実績ごと同じ土俵に乗せられる。

いま分けて持っているのは、適性の違いが技術的な調整では埋まらないと分かったからである。埋め方が見えれば、統一へ進む。そのための材料は、今回の分解でひと通り揃ったように思う。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です