Client work · AI・画像・デバイス
競馬予想 AI アプリ
過去のレースデータから勾配ブースティングモデルで着順を予測。ハイパーパラメータ最適化を組み込んだ学習サーバーと、Windows クライアントを開発。
- Python
- LightGBM
- Optuna
- scikit-learn
- C#
Background
依頼の背景・課題
過去のレース結果・馬・騎手・コース条件などのデータをもとに、着順を予測するモデルを作りたいというご依頼。「予測が当たるか」だけでなく、データの更新と再学習を継続して回せる仕組みが必要でした。
Solution
作ったもの
過去データの前処理、特徴量の設計、LightGBM によるモデルの学習、Optuna によるハイパーパラメータの自動最適化までを行う Python の学習・推論サーバーを開発し、予測結果を表示・操作する Windows クライアント(C#)をセットで構築しました。
データを追加して再学習する手順を整え、モデルを更新しながら使い続けられる形にしています。
Points
工夫した点
- 01
「当たる」より「再現できる」を先に
評価指標と検証方法(時系列での分割)を最初に決め、学習のたびに同じ基準で比較できるようにしました。手元でたまたま当たったモデルは信用しない、が方針です。
- 02
ハイパーパラメータ探索を自動化
Optuna で探索を自動化し、人が試行錯誤する時間をなくしました。探索の結果は記録され、後から「なぜこの設定か」を追えます。
- 03
学習と利用を分離する
学習・推論の Python サーバーと、結果を見る C# クライアントを分けました。モデルを差し替えてもクライアントは変わりません。