競馬編
競馬予想を「予測問題」として立てる
競馬は 1 頭を当てる問題ではなく、同じレースの出走馬を並べ替える問題。ここが以降すべての前提になります。
この記事の要点
- 競馬は「1 頭を当てる」問題ではなく、「同じレースの出走馬を並べ替える」問題として立てるのが自然です。
- 予想印(人の経験則)と機械学習の違いは、条件の重み付けを人が決めるか、データから決めるかにあります。
- モデルが答えるのは着順の予測までで、「買うかどうか」は別の判断です。ここを分けて考えます。
人の予想と、データからの学習
競馬の予想では、前走の着順、距離適性、騎手、馬場状態といった材料を見て、 経験にもとづいて重みを付け、印を打ちます。 機械学習がやっていることも、材料の並びとしては同じです。違うのはそれぞれの材料をどれだけ重視するかを、過去のデータから決める点です。
だから「人の勘 対 AI」という対立ではありません。どの材料を渡すかを決めるのは人であり、 ここに競馬の知識がそのまま効きます(特徴量エンジニアリング)。
何を予測対象にするかで、問題の形が変わる
| 立て方 | 予測するもの | 性質 |
|---|---|---|
| 二値分類 | その馬が 1 着になるか(または 3 着以内か) | 扱いやすいが、レース内の比較が抜け落ちる |
| 回帰 | 着順やタイムなどの数値 | 着順は「1 と 2 の差」と「11 と 12 の差」が同じ重みになりがち |
| ランキング学習 | 同じレースの中での並び順 | 競馬の構造にいちばん近いが、扱いはやや複雑 |
どれが正解というものではなく、目的によって選びます。 ただしどの立て方を選んでも、忘れてはいけない前提が 1 つあります。
競馬は「レースの中で 1 頭だけが勝つ」構造
1 レースに出走するのはおおむね 8〜18 頭(多くのコースは 16 頭、障害は最大 14 頭)で、 そのうち 1 着になるのは 1 頭だけです。 つまり出走馬の勝率を全部足すと 100% になるという制約が、 レースごとに存在します。
この制約は、ふつうの分類問題にはありません。 1 頭ずつ独立に「勝ちそうか」を判定すると、 レース内の全頭が「勝ちそう」と判定されることも、 全頭が「勝てなさそう」と判定されることも起こり得ます。 どちらも現実には起きないので、判定としては不自然です。
だから競馬では、「この馬は強いか」ではなく「このメンバーの中で何番目か」を考えるのが自然になります。この視点は、このあとの記事すべての土台になります。
「予測」と「買うかどうか」は別の判断
モデルが出すのは、各馬の強さの見積もりです。 そこから先の「買うか」「どの券種を」「いくら」は、オッズと突き合わせて初めて決まる別の判断になります。
予測が正確でも、そのぶんオッズが安ければ手元には残りません。 逆に、勝率の見積もりが低い馬でも、市場がそれ以上に低く評価していれば (=オッズがより高く付いていれば)買う価値が出ることがあります。この関係が競馬データマイニングの核心で、的中率ではなく回収率で見るで詳しく扱います。