この記事は、YouTubeでもご覧いただけます。映像とナレーションで内容がよりわかりやすく解説されているので、ぜひ以下のリンクからご覧ください。
■波乱レースに特化した競馬予想AIの作り方
https://youtu.be/djsKQNs65WI
チャンネルは姉妹サイト「PC-KEIBA」のものですが、競艇に関連する内容に置き換えて楽しんでいただけます。
特定のデータだけ学習させる
電気自動車の最大手である「テスラ」の車用AI(自動運転)の開発には、世界中を走行するテスラ車の膨大な運転映像が使われてます。そして、それを学習したAIが平均的なドライバー並みの運転にならないように、状況に上手に対応した例だけを学習に使ってるそうです。
つまり、車用AIの開発には優秀ドライバーの運転だけを学習データに使ってる、ということです。
一方、ネットでよく見かける回収率至上主義の競艇予想AIは、全てのレースを区別せずに学習させてます。テスラの例を競艇予想AIに応用するなら、万舟券を的中させるAIを作りたかったら、万舟券のレースだけ学習させろ、ということになると思います。
そこで、今回の取り組みでは「3連単万舟券」のレースだけをLightGBMに学習させてみます。3連単万舟券という選択は極端に思えるかもしれませんが、特定のレース結果に対する予測能力を向上させる点で有効かもしれません。
万舟券を狙うには、機械学習であろうが人間であろうが、本命狙いと同じ思考回路では万舟券を的中させることはできませんからね。
学習用ソースコード
学習用ソースコードの公開は省略します。「LightGBMによるAI競艇予想(二値分類)」の記事と同じ内容なので、詳細はそちらを参照してください。
学習データを作る
ということで、今回は「LightGBMによるAI競艇予想(二値分類)」の記事で使った学習データから、3連単万舟券になったレースのみをフィルターします。これはSQLにフィルターの条件を加えるだけで簡単に作れます。
学習データの集計期間は同じく、2022年07月~2022年09月の3ヶ月とします。説明変数も同じです。内容は「LightGBMによるAI競艇予想(準備編)」の記事を見てください。
このページの最後に、サンプルのSQLを有料会員に公開しています。ユーザーがカスタマイズして利用することも可能ですし、SQLを学習したい方の参考にもなります。
LightGBMに学習させる
この章は省略します。「LightGBMによるAI競艇予想(二値分類)」の記事と同じ内容なので、詳細はそちらを参照してください。
モデルを評価する
同じ学習用ソースコードを使うので、評価指標も「LightGBMによるAI競艇予想(二値分類)」と同じものが表示されます。
![](https://pc-kyotei.com/wp-content/uploads/2024/06/WS20240613_004.jpg)
予想よりも良い結果が出て、全ての評価指標が50%以上でした。しかし、この評価指標はここでは参考になりません。なぜなら、特定の条件でフィルターした学習データを使ったモデルの評価指標だからです。
実際に舟券を買うときは、万舟券かどうかなんてレースが終わるまで分かりません。
特徴量重要度
特徴量重要度をざっくり言うと、重要度が高い説明変数ほど、目的変数である確定着順に対して影響力が強いということです。
しかし、今回は特定の条件でフィルターした学習データなので、波乱レースに対して影響力が強い説明変数を明らかにしています。そこで、フィルターなし(全レース)の二値分類モデルと比較して、特徴量重要度がどのように変化したのか調べてみました。
■フィルターなし(全レース)
![](https://pc-kyotei.com/wp-content/uploads/2024/06/WS20240613_005-1024x490.png)
■フィルターあり(3連単万舟券)
![](https://pc-kyotei.com/wp-content/uploads/2024/06/WS20240613_006-1024x490.png)
フィルターの有無によるグラフの違いから、万舟券を狙う場合にはボート3連率など、通常の予測とは異なる説明変数が重要であることが分かります。これらの違いを踏まえて学習データを設計することで、より精度の高いモデルが期待できるでしょう。
あくまで今回のモデルの結果に基づいているので、この説明変数だけで万舟券が的中しまくり、という話じゃありません(笑)
過学習のリスク
このように、特定の条件でフィルターした学習データでモデルを訓練することで、特定の条件を的中する予測が可能になるかもしれません。ただし、この方法は学習データの偏りによる過学習のリスクも伴うため、慎重に評価とテストを行うことが重要です。
モデルの回収率を集計するには
気になるのは、このモデルで全レースを購入した場合の回収率と的中率です。
完成したモデルで、フィルターなしの全レースを予測させた結果が、モデルの真の性能となります。
興味がある方は、他の記事も参考にしながら、自分でフィルターの条件を考えて試してみてください。