競馬 AI の未来情報リークとは? 検証の成績が跳ね上がる仕組みと見分け方
/
競馬 AI の検証で、レース後にしか分からない情報が混ざる「未来情報のリーク」とは何か。混ざりやすい場所と、Tippa が過去 1 年の検証で混入を防いだ手順、見分け方を説明します。
未来情報のリークとは、過去のレースで AI を試すときに、そのレースの時点では分からなかった情報(確定したオッズ、レース後に分かった成績など)が計算に混ざってしまうことです。混ざると検証の成績だけが良く見えて、実際に使うときには再現しません。この記事では、混ざりやすい場所と、Tippa が過去 1 年のデータの検証で混入を防ぐために決めた手順を、数字つきで説明します。
先に、リークとよく間違われる「過去への合わせすぎ」との違いも整理します。どちらも「検証では良かったのに、実際は違った」という点は同じですが、原因も防ぎ方も別です。
1. 未来情報のリークとは、何が混ざることか
競馬 AI は、レース前に手に入る情報から、各馬に点を付けます。過去のレースで試すときは、「そのレースの発走前に、実際に手元にあった情報だけ」を使うのが約束です。この約束が破れたものを、未来情報のリークと呼びます。
- 確定したオッズ・人気順(発走の直前や、レースが終わってから決まった値)
- 払戻金(レースが終わらないと決まらない)
- そのレースの着順、上がり 3F、通過順位など、レース後に分かる成績
- レース後に更新される指数や、あとから修正された馬体重・斤量などの値
どれも、過去のデータには当たり前のように入っています。表の 1 列として、他の列と同じ形で並んでいるので、気づかずに計算に入れてしまいやすいのが厄介な点です。
2. なぜ、検証の成績だけが跳ね上がるのか
レース後にしか決まらない値は、結果そのものか、結果に近い情報を含んでいます。それを使って「当てる」のは、答えを見ながら問題を解くのと同じです。検証の成績は良くなりますが、実際のレース前にはその値がないので、同じ成績は出ません。
高すぎる回収率を見たときは、強い AI ができたと考える前に、まず混入を疑うのが安全です。Tippa の運営 AI の 1 年の検証で、人気順(1番人気を買う)を上回ったものは無く、単勝の回収率は人気順で 78.7% でした。100% を大きく超えて見える数字が出たら、AI より先に、検証の手順を調べる理由になります。
3. 混ざりやすい 4 つの場所
| 場所 | 何が起きるか | 確かめる点 |
|---|---|---|
| オッズ・人気 | 確定値は、発走直前の値や、締切後の値を含む。実際の AI は、もっと早い時刻の値を見る | その値は、AI が予想を出す時刻に見えていたか |
| 払戻 | 人気順が付く前の暫定の払戻と、確定後の払戻は違う | 精算には、公式の確定した払戻だけを使っているか |
| 集計・平均・基準値 | 全期間から平均や基準値を作ると、そのレースより後のデータが入る | 基準値は、そのレースより前のデータだけで作っているか |
| 学習と確認の分け方 | 確認に使う期間のデータが、学習のどこかで読まれている | 確認期間のデータを、学習の段階で一度も読んでいないか |
4. Tippa が過去 1 年の検証で決めた混入の防ぎ方
Tippa は、JRA-VAN の過去のデータ(2025 年 10 月 4 日〜2026 年 9 月 22 日に確定した 3,402 レース)で、運営 AI の規則と新しい案を計算し直しました。その際に、次の手順を結果を見る前に決めて、記録に残しています。
- 期間を先に分ける:前半(学習)で条件を決め、後半(確認)で確かめます。確認の判定は 1 回だけで、やり直しません。
- 学習の段階のコードは、確認期間のレースと払戻を読み込んだ直後に捨てます。特徴量、集計表、基準値、モデルは、残した行だけから作ります。
- 確認の段階では、学習期間の数字を全データから作り直し、学習の段階の保存値と一つでも違えば止まります。学習の段階が未来を読んでいなかったことの、追加の検査です。
- テストで、「未来の行を変えても、過去の特徴量が変わらない」ことを固定しています。
- 人気順は、発走 30 分前ごろの値ではなく確定値で計算しています。そのため、人気に寄る規則ほど、ここでは少し良く出ます。この点は数字の見方として、各記事に書いています。
最後の項目は、Tippa 自身の検証にも残っている弱点です。完全に混入がゼロとは言わず、どこがどう甘いかを書いておくのが、検証の読み手に対する最低限の誠実さだと考えています。
5. リークではないが、似た結果になる「合わせすぎ」
未来の情報が混ざっていなくても、前半のデータだけで条件を選ぶと、前半の運に合わせてしまうことがあります。Tippa の検証では、次のような例がありました。
- 斤量の作り直し案 W2(前走より 1kg 以上軽く、前走 5 着以内の馬)は、単勝の回収率が前半 114.5% → 後半 65.7%。前半の数字だけで選ぶと外れる典型です。
- 無作為に 1 頭を選ぶ単勝でも、学習期間(1,122 レース)は 138.0%(範囲は 67〜225%)、確認期間(1,704 レース)は 69.4%(範囲は 53〜86%)でした。何も考えずに選んでも、期間によっては 100% を超えて見えます。
- 最初の 4 か月で目立った三連複の高い回収(151〜171%)は、1 年では再現しませんでした。
Tippa の検証(過去の払戻データで計算し直した結果)。無作為に選んだ場合の範囲は、学習期間が 67〜225%、確認期間が 53〜86%。
この図を文章で読む
無作為に 1 頭を選ぶ単勝の回収率は、学習期間(1,122 レース)が 138.0%、確認期間(1,704 レース)が 69.4%です。同じ選び方でも、期間によって 100% を上回ったり下回ったりします。
つまり、「検証で 100% を超えた」だけでは、強いのか、運が良かったのか、未来が混ざっているのかを区別できません。件数と範囲、期間を分けた確認、混入の確認、の 3 つを合わせて見る必要があります。範囲の見方は、別の記事で説明しています。
6. 成績を見るときの確認リスト
- 予想は、レースの前に提出され、後から変えられない形で残っているか
- 検証に使った値は、予想を出す時刻に手元にあった値か(確定オッズ・払戻・着順を使っていないか)
- 条件を決めた期間と、確かめた期間が分かれているか
- 人気順(1番人気を買う)など、基準になる買い方と同じ期間で比べているか
- 件数と範囲が書かれているか(少ない件数の高い回収率は、偶然でも出る)
Tippa では、AI の予想を締切前に提出して封印し、レース確定後に公式の結果で精算します。レース前に提出した予想をあとで変えられないので、予想の時点で使える情報は、その時点までのものに限られます。過去のデータで計算し直した数字は、この仕組みの成績とは別のものとして、記事ごとに区別して書いています。
7. 数字の出どころと計算の方法
- データ:JRA-VAN の公式データ(成績と払戻)。2025 年 10 月 4 日〜2026 年 9 月 22 日に確定した JRA のレースのうち、出走 5 頭以上の 3,402 レース。
- 買い方:各券種 1 点 100 円。前半(〜2026 年 3 月)で条件を決め、後半(2026 年 4 月〜)で確かめました。
- 範囲:レース単位で再標本を行い、乱数の種は固定しています。同じデータから計算し直せるよう、手順を記録しています。