競馬AIの作り方入門|データの準備から予想サイトの公開まで
競馬AIを作ってみたい、という人向けに、作るときの流れを説明します。Tabnet競馬を作ったときの経験をもとに、細かい手順より、「全体の流れ」と「つまずきやすい点」を中心に書きます。
全体の流れ
競馬AIを作って、サイトで見られるようにするまでは、次の6つの段階に分けられます。
- 何を予測するかを決める
- データを集めて、整える
- モデルを学習する
- 検証する
- 予測を、サイトから呼び出せるようにする
- 公開して、直しながら続ける
1. 何を予測するかを決める
最初に決めるのは、「何を出すか」です。Tabnet競馬は、「着順ごとの確率」を出すことにしました。「この馬が勝つ」と言い切るのではなく、確率の形で出します。
2. データを集めて、整える
競馬のデータは、「1行が、1頭の1レース」の表の形にまとめます。列には、前走の着順、人気、着差、今回の距離、斤量、馬場状態、馬の年齢、出走間隔などが入ります。
ここが、一番手間のかかる部分です。実際に、開発中には、数字の順番の取り違えや、略称の取りこぼしなどに、何度も出会いました。具体例は、データ処理の落とし穴6つに書いています。
データを集めるときは、集め先のサイトの利用規約を、必ず確認してください。
3. モデルを学習する
表の形のデータには、いくつかの方法があります。Tabnet競馬は、表形式データ向けのディープラーニングのモデル「TabNet」を使っています。仕組みは、TabNetとはで説明しています。
初心者が最初に試すなら、決定木をもとにしたLightGBMなども、扱いやすい選択肢です。どのモデルが良いかは、データによって変わります。
学習は、Pythonと、Jupyter Notebookなどの環境があれば、始められます。
4. 検証する
学習したモデルが、本当に使えるかを、確かめます。ポイントは、次の2つです。
- 未来のデータで確かめる。 学習に使った期間より、あとのレースで試します
- 基準と比べる。 オッズだけで作ったモデルのような、単純な基準より、良い結果が出るかを見ます
くわしくは、競馬AIの確率は信用できる?で説明しています。
5. 予測を、サイトから呼び出せるようにする
学習したモデルは、そのままでは、他の人が使えません。そこで、モデルを動かすサーバーを用意して、サイトから「この馬のデータを送ると、確率が返ってくる」形にします。
Tabnet競馬では、画面(フロント)と、予測を計算するサーバー(バックエンド)を、分けて作りました。
6. 公開して、直しながら続ける
公開してからも、データの更新や、不具合の修正が続きます。使う人の反応を見て、画面を直したり、説明を足したりしていきます。
サイトを作って公開するまでの流れは、noteのAIに頼んで競馬予想サイトを作った7週間の記録でも書いています。
まとめ
- 競馬AIは、「予測するものを決める → データ → 学習 → 検証 → サイト化」の順で作ります
- 手間がかかるのは、データを整える部分です
- 検証は、未来のデータで、基準と比べて行います
作ったAIの結果は、Tabnet競馬の次走予想で見られます。馬券の購入は、ご自身の判断と責任で、無理のない範囲でお願いします。
あわせて読みたい
AIの予想は、次走予想で試せます。