Client work · AI・画像・デバイス

競馬予想 AI アプリ

過去のレースデータから勾配ブースティングモデルで着順を予測。ハイパーパラメータ最適化を組み込んだ学習サーバーと、Windows クライアントを開発。

  • Python
  • LightGBM
  • Optuna
  • scikit-learn
  • C#

Background

依頼の背景・課題

過去のレース結果・馬・騎手・コース条件などのデータをもとに、着順を予測するモデルを作りたいというご依頼。「予測が当たるか」だけでなく、データの更新と再学習を継続して回せる仕組みが必要でした。

Solution

作ったもの

過去データの前処理、特徴量の設計、LightGBM によるモデルの学習、Optuna によるハイパーパラメータの自動最適化までを行う Python の学習・推論サーバーを開発し、予測結果を表示・操作する Windows クライアント(C#)をセットで構築しました。

データを追加して再学習する手順を整え、モデルを更新しながら使い続けられる形にしています。

Points

工夫した点

  1. 01

    「当たる」より「再現できる」を先に

    評価指標と検証方法(時系列での分割)を最初に決め、学習のたびに同じ基準で比較できるようにしました。手元でたまたま当たったモデルは信用しない、が方針です。

  2. 02

    ハイパーパラメータ探索を自動化

    Optuna で探索を自動化し、人が試行錯誤する時間をなくしました。探索の結果は記録され、後から「なぜこの設定か」を追えます。

  3. 03

    学習と利用を分離する

    学習・推論の Python サーバーと、結果を見る C# クライアントを分けました。モデルを差し替えてもクライアントは変わりません。