競馬新聞の調教欄には「坂路52秒0(一杯)」みたいな数字が並んでいます。速いか遅いかは、なんとなく分かる。でも「この馬にとって、それが普段どおりなのか、いつもと違うのか」までは、あの欄だけだとちょっと分からない。
で、そこが知りたくて『追いきりマスター』という週次アプリを作りました。自己ベストを更新した馬とか、いつもと違うコースで追われた馬を、毎週の特別レースから拾ってくるアプリです。TARGETに溜まっている調教の計測データは坂路だけで1,186万データ(2003年から)ありました。ウッドチップも自動計測が始まった2021年7月以降で75万データ。これを全部データベースに入れて、馬ごとに「その馬の普段」と比べる仕組みにしています。
今回書くのは、そのアプリを作っている途中で派生して生まれた『厩舎辞書』の話です。
判定のひとつが、まったく当たらなかった
アプリができたので、試しに過去の週に当てはめて答え合わせをしてみました。そうしたら、5つ用意した注目理由のうち「週配置変更」だけ、成績が極端に悪かった。単勝回収率で16%です。他の理由は85〜98%あたりだったので、これは明らかにおかしいと思いました。
何を判定していたかというと、「レース週に追い切りがないのは異常」というルールでした。AIが勝手に作ったルールなのでこういうことは必ずあります。そこで、自分が普段どうやって調教データを見ているかを整理してみました。
レース週の水曜か木曜に追い切る(パターン1)
1週前の水木に負荷をかけて、レース週はサッと流すだけ(パターン2)
坂路とウッドやコース追いを使い分ける(パターン3)
パターン2は異常でも何でもなくて、普通のローテーション。でもアプリは、正常な仕上げ方をしている馬を大量に「異常」として拾っていた。だから回収率16%も納得です(^^ゞ
「異常」を測るには「普通」の定義が先だった
ここで気づいたのは、順番が逆だったということです。
異常検知をやりたいなら、まず「その厩舎の普通」を知らないといけない。しかも厩舎ごとに違う(当たり前ですよね)。「あの厩舎は一週前に強めに追って当週は軽め」みたいな話は競馬をやっていればわかる話。でも、それをAIに伝えていませんでした。
そこで、厩舎別の調教パターンをまとめる辞書を作りました。
外部の解説を種にして、裏付けは自分のデータから
調べてみると、有力厩舎26厩舎の調教パターンを解説しているサイトがありました。「1週前に南Wで強め、最終は馬なり」くらいの粒度で書かれていて、これはありがたい。
ただ、それをそのまま鵜呑みにして使うのは違うなと思いました。人が書いた解説は、その人が見た範囲の話です。だからこれは「種」として使って、裏付けは全部自分のデータから取ることにしました。しかも26厩舎だけじゃなく、全厩舎を自分で作る。
Claude Codeへの指示は、この方針をそのまま伝えました。「26厩舎は種でいい。裏付けは必ずTARGETの調教データから取ること。全厩舎のオリジナルで作って。同じ厩舎でも休み明けや連闘では変えてくるはずだから、状態別に分けて」と。技術的なことは何も伝えませんでした。
集計対象は2015年以降の46万5,458件。1件ごとに「レース前14日間の調教」を引っ張ってきて、パターン1か2か型外か、坂路かウッドか、前走から何日空いているか(連闘・通常・休み明け・初出走)を判定して、厩舎ごとにまとめました。
266厩舎ぶんのカードができた
出来上がったのは、厩舎名をクリックするとカードがポップアップするHTMLです。美浦128・栗東138の計266厩舎。所属の東西も、外部情報ではなくデータの中の所属コードから多数決で判定しました(引退調教師も含んでいます)
カードに入っているのは、
パターン1・パターン2・型外の分布と、それぞれの勝率・複勝率・単勝回収率
状態別(連闘・通常・休み明け・初出走)の成績
坂路とウッドの比率、追い切りに使う曜日の分布
外部サイトの主張とデータが合っているかのバッジ
その厩舎の代表馬が勝ったときの、レース前14日間の調教テーブル
たとえば矢作芳人厩舎を開くと、コントレイルがジャパンカップを勝ったとき(2021年11月28日、1番人気1.6倍)の調教が、日付と曜日と1ハロンごとのラップつきで出てくる。モズアスコットのフェブラリーステークス(2020年)、リスグラシューの有馬記念(2019年)も同じように見られます。
通説とちょっと違ったこと
集計を眺めていて、思ったことがいくつかありました。
ひとつ目。「ウッド中心」という評判の厩舎でも、時計データは坂路優勢が多い。 266厩舎の坂路比率は平均72.5%で、坂路型(65%以上)が171厩舎、ウッド型(35%以下)は18厩舎しかありませんでした。外部の26厩舎と突き合わせると、一致13・部分一致12・不一致1で、方向としてはだいたい合っているんですが、比率にすると坂路に寄りました。
坂路はほとんど1頭で走るので時計が素直に残る。ウッドは併走が多くて、しっかり乗り込んでいても「時計として記録される追い切り」にならないことがあります。「ウッドで乗り込んでいる」と「ウッドで時計を出している」は別物で、僕が見られるのは後者だけ、ということです。ここは辞書の限界として書き残しました。
ふたつ目。「普段の型から外れた馬は走らない」は、厩舎次第だった。 型外がその厩舎で一番成績の悪いパターンになるのは、4分の1くらいの厩舎だけでした。残りでは型を外していても普通に走っている。これは冒頭の「週配置変更が16%」とまったく同じ話で、パターン逸脱の意味は厩舎ごとに違う、というのが数字ではっきり出た形です。
みっつ目。連闘は全体で見ると弱い。 6,994件で複勝率15.7%。通常間隔の23.8%と比べると8ポイント低い。連闘で調教がよく見えても、そこは割り引いたほうがいいということになります。
よっつ目。新馬から仕上げてくる厩舎がいる。 初出走は全体だと複勝19.8%で、通常間隔の23.8%より低いんです。ところが厩舎別に見ると逆転するところがあって、木村哲也厩舎はレース週に追い切った初出走馬の複勝率が58.9%(95件)。同じ厩舎の通常間隔が43.1%なので、新馬のほうが高い。鹿戸雄一厩舎も初出走40.6%(143件)に対して通常31.1%でした。「新馬は割引」は平均としては正しいけれど、そのまま全部に当てはめると取りこぼす、と。
アプリ側も作り直した
この辞書ができたので、追いきりマスター側の判定も入れ替えました。当たらなかった「週配置変更」は廃止して、代わりに厩舎辞書を参照する形にしています。型を外したときに、その厩舎で本当に成績が落ちているならバッジを出す、落ちていないなら何も言わない、という具合です。判定の主役にする追い切りも「レース週と一週前の水木」に限定しました。
ついでに書くと、この修正前のバージョンだと、一週前にしっかり追ってレース週は流すだけだった馬を取りこぼしていました。過去の週で試したときに、実際に2着に来ていた馬がリストから漏れていて、それで気づいたんです。パターン2の話が、そのまま自分のアプリに刺さっていたわけですね。
分かっていないこと
正直に書いておくと、この辞書は今のところ「見て納得する道具」です。予想の成績を上げた実績はまだありません。実戦の答え合わせは始めたばかりで、判定の良し悪しは数ヶ月かけて記録を貯めてから決めるつもりです。
それと、データから分からないことも残っています。併走したのか単走したのかは計測データに入っていません。格上の馬と併せれば時計は出やすいはずですが、そこは補正しようがない。夏に函館や小倉に滞在している馬の現地調教も、トレセンの計測には映りません。「調教が消えた」ように見えても、実際は現地で普通に乗られているだけ、ということが起こります。
それでもアプリが作れたのが面白い
いつも言っていますが僕はプログラムが書けません。やったことは、日本語で方針を伝えて、出てきたものを見て「ここは違う」と言い続けただけです。それでも、1,200万本の調教データから266厩舎の辞書を作れました。少し前だったら、出来なかったことです。
面白かったのは、AIに作らせている途中で、僕自身が調教の見方を整理し直したことでした。パターン1と2の違いも、併走の話も、「なぜ判定が外れたのか」を考えるうちに自分の中で言葉になった。道具を作るつもりで始めて、自分の見方が少し変わったという感じですね。また、今後ですがJRAが様々な調教データを取得できるようになり、データラボに提供してくれるようになれば今回の厩舎辞典ももっと精度が上がるのではないかと思っています。
競馬予想が当たるかどうかは別として(^^ゞ、こういうものを自分で作れるのは、やっぱり楽しいです。
※本アプリは個人使用を目的に作成しています。
サンプル 厩舎辞典

コメント