シミュレーションの準備
今回は「LightGBMによるAI競艇予想(Pythonデータ登録)」の記事で作った「ランキング学習」の2022年07月~2022年09月の学習データを使って、2022年10月のレースを予想してみます。
シミュレーションの方法をざっくり言うと、
- 予測値を外部指数化して、
- 「PC-KYOTEI Database」の画面でシミュレーションします
シミュレーションを始めるには「LightGBMによるAI競艇予想(Pythonデータ登録)」まで済ませておいてください。
ランキング学習であれば myd_lambdarank_1_pred の予測値テーブルに必要なデータが満たされている状態にしておきます。今回ならレース予想する2022年のデータを準備しました。
外部指数設定を登録する
予測値を外部指数化するにあたって外部指数設定の登録が必要です。
「外部指数設定を登録する」のマニュアルを読んで「指数No」と「指数名」を登録してください。今回の例ではこんな設定にしました。
予測データを指数2テーブルに登録する
予測値を編集して指数にする
そしてSQLで予測値テーブルのレコードを指数2(apd_shisu_2)テーブルに登録します。指数のデータ型「numeric(8, 2)」を守れば、外部指数化についてルールはありません。
「numeric(8, 2)」は全体の桁数が8桁で、うち2桁は小数という意味です。だから整数部は6桁。
例えば、次のような方法があります。どれもSQLだけで出来ます。
アイデアは他にもありますが今回の例では、予測値に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つのマニュアルを読んでください。
この画面で外部指数をシミュレーションするポイントは自動投票設定登録で「指数No」を設定することです。言うまでもないですが、指数Noは先に「外部指数設定を登録する」の章で登録した指数Noを設定します。
今回は簡単な例として「指数順位」上位3頭の2連複ボックス買いをシミュレーションしてみます。
で、まあ「シミュレーション実行」のマニュアル通りに進めたら結果が出てきます。
指数をフィルターしたり検索条件を加えてみる
記事を書くだけの目的でテキトーに作ったわりには、なかなかの結果と思います(笑)モデルが一見、失敗作っぽくても指数を一定の値以上でフィルターするとか、検索条件を加えるとかすればさらに結果が違ってくるかもしれません。
シミュレーションの話は以上です。「PC-KYOTEI Database」で思う存分、AI競艇予想を楽しんでください!