はじめに 競馬予想の精度向上を目指し、機械学習を活用した予測モデルを開発しました。今回は過去5年分のJRAデータ(約15,000レース)を使用し、勝率予測AIの構築過程をレポートします。
使用データ・ツール
- データソース:JRA公式データ + netkeiba.com
- 期間:2019年〜2023年(5年間)
- 使用言語:Python
- ライブラリ:pandas, scikit-learn, matplotlib
特徴量設計 勝率に影響する要素として、以下の特徴量を設計:
- 基本情報:馬齢、性別、斤量、騎手、調教師
- 実績データ:過去走成績、賞金、レーティング
- レース条件:距離、コース、馬場状態、天候
- 相対評価:人気、オッズ、上がり3Fタイム順位
モデル比較結果
アルゴリズム精度適合率再現率ランダムフォレスト0.7420.6810.623XGBoost0.7580.6950.641ロジスティック回帰0.7210.6520.598
結果分析 XGBoostが最も高い精度(75.8%)を記録。重要特徴量は以下の通り:
- 前走着順(重要度:0.23)
- 騎手勝率(重要度:0.19)
- 過去同条件成績(重要度:0.16)
- 上がり3Fタイム(重要度:0.14)
- オッズ(重要度:0.12)
実運用での課題と改善点
- オッズ変動への対応
- 新馬・転厩馬データの不足
- 騎手・調教師の最新動向反映
次回は複勝率予測モデルの開発レポートをお届けします。
コードサンプル(一部)
python
# 特徴量重要度の可視化
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 6))
plt.barh(feature_names, model.feature_importances_)
plt.title('競馬AI 特徴量重要度')
plt.xlabel('重要度')
plt.show()