LightGBMによるAI競馬予想(シミュレーション編)

AI競馬

シミュレーションの準備

今回は「LightGBMによるAI競馬予想(Pythonデータ登録)」の記事で作った「ランキング学習」の2021年の学習データを使って、2022年のレースを予想してみます。

シミュレーションの方法をざっくり言うと、

  1. 予測値を外部指数化して、
  2. PC-KEIBA Database」の画面でシミュレーションします

シミュレーションを始めるには「LightGBMによるAI競馬予想(Pythonデータ登録)」まで済ませておいてください。

ランキング学習であれば myd_lambdarank_1_pred の予測値テーブルに必要なデータが満たされている状態にしておきます。今回ならレース予想する2022年のデータを準備しました。

この記事はシミュレーションの方法の説明なのでデータの内容はどうでも良いです。が、このページを再現したい場合は、「LightGBMによるAI競馬予想(Pythonデータ登録)」のサンプルのSQLでWHERE句の開催年月日を2022年に変えて作ってください。

外部指数設定を登録する

予測値を外部指数化するにあたって外部指数設定の登録が必要です。

外部指数設定を登録する」のマニュアルを読んで「指数No」と「指数名」を登録してください。今回の例ではこんな設定にしました。

予測データを指数2テーブルに登録する

予測値を編集して指数にする

そしてSQLで予測値テーブルのレコードを指数2(apd_shisu_2)テーブルに登録します。指数のデータ型「numeric(8, 2)」を守れば、外部指数化についてルールはありません。

「numeric(8, 2)」は全体の桁数が8桁で、うち2桁は小数という意味です。だから整数部は6桁。

例えば、次のような方法があります。どれもSQLだけで出来ます。

  • 予測値に掛け算とか足し算して、分かりやすい整数で指数っぽくする。
  • 予測値を偏差値にしてみる。
  • 予測値をそのまんま使ってもOK。
  • 二値分類」か「多クラス分類」の場合は、確率の値を使ってもOK。

アイデアは他にもありますが今回の例では、予測値に10掛け算して四捨五入して100足し算して指数っぽくすることにしました。SQLで式を書くとこんな感じです。

round(pred * 10) + 100

もっと具体的に全体的にどうすれば良いのかは、サンプルのSQLを参考にしてください。繰り返し使いやすいようにプロシージャ化しました。この記事は当サイトの有料会員様以外が読んでも意味がない内容なので、プロシージャ化した中身について、ここではあえて説明しません。

このページの最後に、サンプルのSQLを有料会員に公開しています。ユーザーがカスタマイズして利用することも可能ですし、SQLを学習したい方の参考にもなります。

プロシージャを実行する

そして、このページの最後にあるサンプルのプロシージャを実行します。

くれぐれも「指数No」には細心の注意を払ってください。他で使用中の指数Noにしてしまうとデータを上書きしてしまいます。この処理はソフトで画面を作って出来ないことはない処理ですが、このうっかりミスを無くすため、あえてユーザーの手でやってもらうことにしました。

すると、こんな感じで指数2(apd_shisu_2)テーブルに登録されます。これで予測値の外部指数化とシミュレーションの準備が整いました。

シミュレーションする(その1)

予測値をシミュレーションする方法の1つとして「レース集計」画面があります。この画面の基本的な使い方は「レース集計画面の使い方」のマニュアルを読んでください。

この画面で外部指数をシミュレーションするポイントは検索条件で「指数No」を設定することです。言うまでもないですが、指数Noは先に「外部指数設定を登録する」の章で登録した指数Noを設定します。

今回は簡単な例として「指数順位」の集計をしてみます。これに「競馬場」とか他の項目を加えて条件を分類してみてもOK。

すると集計結果が出てきます。本来であれば自分でSQLを書くところを「レース集計」画面を使えば簡単に勝率とか回収率が分かります。

シミュレーションする(その2)

その他、自動投票機能の一部である「シミュレーション実行」を使う方法があります。この機能の基本的な使い方は、次の2つのマニュアルを読んでください。

  1. 自動投票設定を登録する
  2. 自動投票設定をシミュレーションする

この画面で外部指数をシミュレーションするポイントは自動投票設定登録で「指数No」を設定することです。言うまでもないですが、指数Noは先に「外部指数設定を登録する」の章で登録した指数Noを設定します。

今回は簡単な例として「指数順位」上位3頭の馬連ボックス買いをシミュレーションしてみます。

で、まあ「シミュレーション実行」のマニュアル通りに進めたら結果が出てきます。

指数をフィルターしたり検索条件を加えてみる

記事を書くだけの目的でテキトーに作ったモデルでは、さすがの機械学習でも散々な結果でした(笑)しかしモデルが一見、失敗作っぽくても指数を一定の値以上でフィルターするとか、検索条件を加えるとかすれば結果が違ってくるかもしれません。

シミュレーションの話は以上です。「PC-KEIBA Database」で思う存分、AI競馬予想を楽しんでください!

SQLファイルのダウンロードと使い方

残りのコンテンツを表示するには、ログインする必要があります。 . 会員について
タイトルとURLをコピーしました