Skip to content

データサイエンティストのための競馬入門(自分のノート)

Summary

近年、競馬は単なるギャンブルではなく、データ分析を生かし、収益を狙うものとしてでも注目されています。 中央競馬(JRA)はレースや馬、騎手、血統などあらゆる情報がデジタル化されており、 データサイエンティストにとっては機械学習や統計モデルの実践フィールドとして非常に魅力的です。

本記事では、競馬の基本的な仕組みと、データ分析に必要な視点からの基礎知識を纏めて見ました。


初歩的な競馬用語


券の種類

賭け方の形式。代表的なものは:

投票法(馬券の種類) 説明
単勝 1着になる馬を当てる
複勝 3着以内に入る馬を当てる
馬連/馬単 1着と2着の組み合わせを当てる(馬連は順不同、馬単は順番指定)
ワイド 選んだ2頭がどちらも3着以内に入ることを当てる
3連複/3連単 1着から3着までの全ての馬を当てる(3連複は順不同、3連単は順番指定)

分析ポイント

的中率とリターンのバランスを考え、モデルに応じた賭け方を戦略的に選ぶ。 発売開始時の出走予定馬の頭数によって、発売しない種類もあるので注意が必要。

参考:
* 馬券の種類: https://www.jra.go.jp/kouza/beginner/baken/
* 馬券のルール: https://www.jra.go.jp/kouza/baken/


レースクラス(条件)

競走馬の年齢と収得賞金の額に応じて分類されたレースの「レベル」。

クラス名 説明
新馬戦 初出走の馬限定
未勝利戦 まだ1勝もしていない馬向け
1勝クラス〜3勝クラス 収得賞金で昇格していく
オープンクラス(OP) 勝ち抜いた馬が出走する最上位

分析ポイント

クラスが上がるとレベルも上がるので、単純な着順ではなく「クラス変動」も考慮しよう。


馬場(ばば)状態

レース当日のコースのコンディション。

芝(しば)とダートの2種類がある

状態は「良」「稍重(ややおも)」「重」「不良」の4段階

分析ポイント

馬場状態が変わると得意不得意が出る。過去の成績を馬場別に分けて扱うと精度UP。


脚質(きゃくしつ)

馬の走り方のスタイル。

脚質 説明
逃げ スタート直後に先頭に立つ
先行 前方の好位置をキープ
差し 中団から最後に伸びる
追込 後方から一気に追い込む

分析ポイント

脚質はペースや頭数、枠順と相性がある。騎手との組み合わせも重要。


枠順(わくじゅん)

レースでの馬のスタート位置(外枠・内枠など)。

通常は1枠〜8枠、最大18頭まで出走

内枠有利/外枠有利はコースによって異なる

分析ポイント

コース別の枠順成績を集計し、バイアス補正に使えるかも。

斤量(きんりょう)

馬が背負う重さ(騎手+鞍+ハンデ重量など)。

通常は牡馬56kg、牝馬54kg

ハンデ戦では強い馬に重い斤量が課される

分析ポイント

斤量が増えるとパフォーマンスに影響する傾向あり。過去との比較が重要。

血統(けっとう)

馬の父・母・祖父などの系譜。スピード型、スタミナ型、芝・ダート適性などの傾向が見られる。

分析のヒント

未勝利や過去データの少ないレースに役立つでしょう。

競走除外、出走取消、競走中止の違い

区分 いつ起こる? 馬券の扱い
出走取消 出馬投票後~装鞍所に入る前 該当馬券は全額返還(枠連は同枠例外あり)
競走除外 装鞍所に入った後~発走前 同上
競走中止 発走後 返還なし(不的中)

分析のヒント

出走取消、競走除外、競走中止を考慮したデータクリーニングが必要でしょう。

オッズ

オッズは馬券的中時の概算払戻率。発売締切後に最終オッズが公表されるが、 その後に競走除外や同着の発生などによって、最終オッズと異なる率による払戻金となる場合がある。

分析のヒント

最終オッズは、購入時点では確定していない情報であるため、分析の際に注意が必要。 また、収益計算に最終オッズを用いると、実際の払戻金と差異が生じる可能性がある。


データソースと取得方法

JRA公式サイト

https://www.jra.go.jp/

  • 特徴:JRAが提供する公式レース情報。
  • 取得可能データ
    • 出馬表(前日〜当日)
    • レース結果(着順・タイム・騎手など)
    • 払戻金(オッズ)
    • レース映像(参考用)
  • 取得方法:スクレイピング可能だが、アクセス規約に注意が必要

注意

大量スクレイピングは利用規約に抵触する可能性あり。公式APIはなし。


JRA-VAN DataLab

https://jra-van.jp
有料ですが、質がいいのでこれがおすすめ。

  • 提供形式:専用SDK(Windows用)またはSQLダウンロードサービス
  • 主な内容
    • レース・馬・騎手・調教師・血統の詳細情報
    • 蓄積された過去データ(1990年代以降も可)
    • 馬毎の過去成績(着順、タイム、馬場、騎手、脚質など)
    • 速報データ

使用方法(データサイエンティスト向け)

  • DataLab SDKをインストール(Windows)
  • CSVをダウンロードし読み込む(Targetなど)
  • PostgreSQLなどにデータをインポートしてSQL分析が可能(PC-Keibaなど)

利点:正確かつ網羅的。過去データを時系列で扱えるため、機械学習にも最適。


netkeiba.com

https://www.netkeiba.com/

  • 特徴:国内最大級の競馬情報ポータル
  • 取得できる情報
    • 馬・騎手・レースの情報(プロフィール、成績)
    • ニュース・調教・掲示板・予想コメントなど
    • 有志による「指数」や「印」など主観的な評価も

注意点

  • スクレイピングは自己責任: PythonではBeautifulSoup + requestsで取得する人もいるが、利用規約を守ること。
  • 情報の整合性は基本的に高いが、構造化データではないため加工が必要
  • 有料コンテンツもある

競馬におけるデータ分析の着眼点

競馬は「不確実性 × 多変量 × 時系列」が複雑に絡み合うデータ構造を持つため、 データサイエンティストにとって非常に豊かな分析対象です。


馬のパフォーマンスを定量化する

着順やタイムの正規化

  • 着順はあくまで「相対順位」のため、出走頭数やクラスによって解釈が変わる。
  • タイムや上がり3F(最後の600m)のラップは馬場補正・展開補正を加えることで実力を推定可能。

指数や能力スコア

  • 自作で「スピード指数」や「パフォーマンススコア」を構築することで、汎用的なモデルが組める。
  • 例:過去5走の平均タイム(馬場補正済)+クラス補正など

人気・オッズと成績の乖離を探る

オッズは「市場の予測」

  • 単勝・複勝オッズは投資者集合の予測。
  • 実際の着順との乖離を検証することで、過小評価・過大評価の馬を発見できる。

期待値(Expected Value)計算

  • 期待値 = モデル予測確率 × オッズ
  • 高期待値馬を抽出してベッティング戦略に応用可能

環境要因との相性を探る

馬場状態・距離・天候

  • 馬場:良・稍重・重・不良の影響を受ける馬が明確に分かれる
  • 距離適性:短距離型、マイラー、中距離型、長距離型の分類
  • 天候:湿った馬場と気温はパフォーマンスに影響

コース・競馬場ごとの特性

  • 例:「逃げ馬有利」などコース別バイアス
  • 枠順との組み合わせも重要(内枠有利 or 外枠有利)

騎手・調教師の影響

騎手の傾向分析

  • 得意な脚質(逃げ・差し)や競馬場を定量化
  • 「騎手×馬」のコンビ成績で相性評価

調教師の影響

  • 調教スタイルによる仕上がり方の差

脚質・展開の分析

脚質分類

  • レース中のポジション取り(逃げ・先行・差し・追込)
  • 展開(ペース)との相性を見る:スローペース vs ハイペース

ペース予測と展開シミュレーション

  • 出走馬の脚質構成からペースを予測
  • どのタイプが展開に乗りやすいかを数値化

時系列・直近傾向の把握

ローテーション分析

  • 直近レースからの間隔(日数)、距離変化、場所変化
  • クラス変化で勝敗が変わる。

調子の波・近走傾向

  • 近5走の順位・タイム・上がりをトレンド化
  • 成績の浮き沈みやバイアス

血統と適性の分析

芝・ダート、距離など適性の傾向

  • 父系・母系から適性距離・馬場がある程度見える
  • 特に2歳・3歳戦では血統から仮説を立てやすい

ベッティング戦略との統合

モデル予測との組み合わせ

  • 単に的中させるだけでなく、「どう買えば儲かるか」という観点で予測を活かす
  • 予測確率 × 実際の配当から期待値戦略を設計

ポートフォリオ構築

  • 単勝/複勝/3連複などのバランス
  • 死票買わない戦法?
  • 分散投資的なアプローチで安定性を向上?

モデル

回帰モデル:タイム・着順の予測

  • モデル例:

    • 線形回帰(Linear Regression)
    • ランダムフォレスト回帰(Random Forest Regressor)
    • LightGBM Regressor
    • ニューラルネット
  • 着順をスコア化し、順位を数値で評価する

要注意

タイム予想の精度は高いものの、着差がわずかであるため、着順の予測には繋がりが薄いかな。


分類モデル:複勝圏内の確率予測

  • モデル:

    • ロジスティック回帰
    • LightGBM / XGBoost(分類設定)
    • ニューラルネット
  • この馬は3着以内に入る確率は高いか?を予測する

  • オッズとの乖離を活かしたベッティング戦略構築

要注意

同レースの他の馬との実力差を考慮するようにモデル構築しないと


ランキングモデル:順位予測・ベスト3の抽出

  • モデル

    • LambdaRank
  • 各レース内で「相対的な強さ」を予測して、順位を決定

  • ベスト3(馬券対象)を効率よく選出

Tip

四位以上の馬の予測精度は気にする必要ない


回収率最大化を目的とした最適化モデル

  • モデル:

    • 確率予測 + オッズによる期待値計算 → ベット額最適化
    • ポートフォリオ理論を応用したリスク調整ベッティング
    • reinforcement learning
  • 「的中率」ではなく「投資効率(回収率)」を重視するモデル

  • 低人気の高期待値馬を選定し、高配当を狙う

Warning

的中率が低い場合運がどうかをHypothesis testで検証すべき また、収益だけでなく、drawdownも同時に考えるべき。


アンサンブル戦略:複数モデルの組み合わせ

  • モデル:
    • 回帰+分類+ランキングのハイブリッド
    • 競走条件によるmetaモデルでのサブモデル選出

競馬にありがちな落とし穴(データ分析視点)

競馬はデータが豊富な分、正しく扱わないと誤解や誤学習に陥るリスクが高い領域です。ここでは、データ分析の観点からよくある「落とし穴」や注意点を紹介します。


Look Ahead bias

問題

学習データに、予測時には使えない未来情報(例:レース結果、払戻金、オッズなど)を含めてしまう。 - 「単勝オッズ」「着順」「払戻金」などを特徴量に使ってしまう - モデルが未来を知っている状態になり、異常に高い精度になる


結果バイアス

問題

「勝った馬は強かった」「人気馬が飛んだのは不可解」など、結果を基に理由を後付けしてしまう。 - 着順だけをモデルに学習させる → 不安定な学習になる - 展開や馬場、枠順などの文脈を無視した特徴量設計


サンプルの偏り

問題

重賞レースやGⅠだけを対象にするなど、偏ったサンプルだけで学習・評価してしまう。 - 強い馬ばかりのレース → 分類モデルが「全部当てる」のが簡単 - ダートより芝の方がデータ量が多い → 適性の差が歪む


高人気馬ばかりを的中とする評価

問題

的中率だけでモデルを評価すると、人気馬ばかり選ぶだけのモデルが高スコアになる。 - 1番人気の複勝率は60〜70%近く → 「全部1番人気で当てた」モデルが高精度 - 実際にはオッズの割に期待値がマイナスであることも多い


データの非独立性の無視

問題

競馬では同じレース内の馬同士が依存関係にある(順位は相対的)にも関わらず、独立データとして扱ってしまう。 - レース全体で1着〜18着を順位回帰で学習 → 相対順位を無視したラベル - 各馬をバラバラに処理 → 同じレースに出走した他馬の影響が加味されない


テストデータが未来に偏っている

問題

ランダムにトレイン/テストを分けると、未来のレースが学習に含まれ、本番での精度と乖離が生じる。 - 同年の後半レースを先に学習 → 初期レースで評価すると過学習になる


Share on Share on

Comments