AI学習・予測
過去のレースでAI(LightGBM)を学習させ、開催日の出走馬を予測する画面です。予測の結果からAI診断(ランクと BUY・WATCH・SKIP の判定)を作り、サーバへ公開します。学習と公開を行うのは管理者だけで、一般ユーザーは公開された予想を受け取って使います。
一般ユーザーの方へ(AI予想を受け取る)
一般ユーザーの画面では、メイン画面のツールバーのボタンが AI予想を受け取る という名前になっています。一般ユーザーはAIの学習を行わず、このページで説明する学習画面も開きません。
- 番組表で開催日を選ぶ
受け取りたい開催日の番組表を表示します。
- AI予想を受け取る を押す
その開催日について、管理者が公開したAI予想とAI診断をサーバから受け取り、番組表に反映します。受け取れたときは「予測 ○頭/診断 ○レース」と、公開された日時が表示されます。
- まだ公開されていないとき
「まだ公開されていないか、受け取れませんでした」と表示されます。しばらくしてからもう一度押してください。番組データがまだ取り込まれていないときは、その理由が表示されます。
一般ユーザーのソフトは、起動するときに管理者が決めた「推奨の設定」(特徴量・目的変数・実行設定・除外レース・判定設定・AI印の買目)をサーバから受け取ります。AI診断の結果も管理者が作ったものをそのまま表示するので、一般ユーザーの手元でAI診断が変わることはありません。受け取り方の詳しい説明は AI予想を受け取る をご覧ください。
画面の開き方(管理者)
- 番組表で開催日を選ぶ
予測したい開催日の番組表を表示しておきます。画面の「予測する開催日」は、開くたびに番組表の開催日になります。
- ツールバーの AI学習・予測 を押す
「AI 学習・予測」画面が開きます(管理者のソフトではボタンがこの名前になっています)。開くたびに、サーバの利用者情報を取り直して管理者かどうかを確かめます。
- 閉じると番組表に反映される
画面を閉じると番組表が読み直され、書き込まれたAIの予測と診断が表示されます。
画面の見方
番号にマウスを合わせると、画面上の場所が赤枠で示されます。番号を押すと、下の説明へ移ります。写真を押すと拡大します。
写真は説明用の例です。件数や日付はお使いのデータによって変わります。
- 1DBの蓄積状況
手元のデータベースにあるレースの期間・出走数と、年ごとの件数です。どれだけのレースを学習に使えるかが分かります(列の説明)。
- 2予測する開催日・学習期間
予測する日と、その前日までの何か月ぶんで学習するかを決めます。
- 3期間で検証する・期間検証2
過去の期間をまとめて予測し、成績を確かめるための設定です(詳しく)。
- 4学習回数・早期打切り・学習率・葉の数・学習プログラム
学習のしかたの細かい設定と、使う学習プログラムの更新日時です(詳しく)。
- 5特徴量
AIに見せる項目の4つの区分です。ボタンで 特徴量の選択 画面が開き、右に選んでいる件数が出ます。
- 6実行する目的変数
AIに何を当てさせるか(着順ランク・1着確率・2連対確率・3連対確率)と、予測を書き込む列です。
- 7除外レース
学習と診断から外すレースの条件が何件あるかです。条件は AI除外レースの設定 で決めます。
- 8設定と操作
推奨の特徴量・除外レース・判定設定・AI印の買目の設定と、サーバの予測の削除です(詳しく)。
- 9ログ
学習の進み具合、検証での的中率、警告などが流れます。学習中は右側に動画が流れます。
- 10下のボタン
学習の開始・中止、サーバとのやり取り、閉じるボタンです(詳しく)。
DBの蓄積状況の列
見出しの行に、データベースにあるレースの期間(最初の開催日〜最後の開催日)と、出走(出走馬の行)の総数が出ます。その下に「合計」の行と、年ごとの行が並びます。年の行が5行より多いときは、表の中をスクロールして見ます。画面を開いたときと、学習が終わったときに数え直します。
| 列 | 意味 |
|---|---|
| 年 | 開催の年です。 |
| 開催日 | その年にレースがある日の数です。 |
| レース | その年のレースの数です。 |
| 中止 | 中止になったレースの数です(0 以外は赤字)。 |
| 結果なし | 中止でも確定でもないレース(まだ結果が入っていないレースなど)の数です(0 以外は赤字)。 |
| 確定 | 全馬の着順が確定しているレースの数です。学習に使えるのはこのレースです。 |
| AI除外 | 確定したレースのうち、AI除外レースの設定 の条件に当たったレースの数です(0 以外は茶色)。 |
| 学習に使う | 確定 − AI除外 の数です(緑の太字)。実際に使うのは、このうち学習期間に入るレースだけです。 |
実行設定
予測する開催日・学習期間
| 項目 | 説明 | はじめの値 |
|---|---|---|
| 予測する開催日 | 予測する日です。開くたびに番組表の開催日が入ります。 | 番組表の開催日 |
| 学習期間 | 「過去 ○ か月(開催日の前日まで)」で学習します。例えば 12 なら、予測する開催日の前日から 12 か月さかのぼった期間です。 | 12 か月 |
期間で検証する・期間検証2
過去の期間を予測して、AIの当たり具合を確かめるための機能です。管理者の画面にだけ表示されます。
| 項目 | 説明 | はじめの値 |
|---|---|---|
| 期間で検証する | チェックすると、検証の開始日の前日までで1回だけ学習し、その内容で検証期間のすべての日を予測します。予測が終わると、その期間のAI診断まで作ります。 | チェックなし |
| 検証の開始日・検証の終了日 | 予測する期間です。「期間で検証する」にチェックがあるときだけ入力できます。実行すると「予測する開催日」は開始日に合わせられます。 | 開催日の1か月前〜前日 |
| 期間検証2(○ 日ごとに学習し直す) | 検証期間を ○ 日ずつに区切り、区切りごとに「その前日までの過去 ○ か月」で学習し直してから予測します。実際の使い方に近い結果になりますが、そのぶん時間がかかります。開催のない区切りは飛ばします。 | 7 日 |
検証が終わると、その期間の予測と診断をサーバへ公開するかを聞かれます。過去の開催日のAI予想を上げ直すときに使います。成績は AI成績 で確かめます。
学習のしかた
| 項目 | 説明 | はじめの値 |
|---|---|---|
| 学習回数 | AIが学習をくり返す回数の上限です。 | 2000 回 |
| 早期打切り | この回数続けて良くならなければ、学習を打ち切ります。 | 50 回 |
| 学習率 | 1回の学習でどれだけ直すかです。小さいほどゆっくり細かく学習します。 | 0.050 |
| 葉の数 | 1本の決定木の大きさ(枝分かれの先の数)です。 | 31 |
| 学習プログラム | 実際に使う学習プログラム(train_keiba_model.exe)と、その更新日時・大きさです。見つからないときは赤字で【見つかりません】と出ます。その場合はソフトを入れ直してください。 | ― |
学習では、学習期間の後ろ 2 割のレースを答え合わせ用(検証用)に取っておき、残りで学習します。終わるとログに、検証用レースでの「本命の1着・2連対・3連対の割合」が単勝1番人気・DM予想1位と並べて出ます。単勝1番人気を上回れないときは警告が出ます。
特徴量
特徴量は下の4つの目的変数で共通です。4つのボタンがあり、それぞれ右に選んでいる件数が出ます(0件のときは赤字)。ボタンを押すと 特徴量の選択 画面が開きます。
| ボタン | 選ぶもの |
|---|---|
| レース情報(数値) | レースの数値の項目(レース番号・距離・出走頭数など) |
| レース情報(カテゴリ) | レースの区分の項目(競馬場・トラック・競走種別など) |
| 出走馬(数値・計算) | 出走馬の数値の項目と、過去走などから計算で作る特徴量 |
| カテゴリ | 出走馬の区分の項目(性別・東西所属・ブリンカーなど) |
実行する目的変数
チェックした目的変数ごとに、学習と予測を1回ずつ行います(4つなら4回)。予測は出走馬の表の決まった列に書き込まれ、列が無ければ自動で追加されます。列の名前は変えられません。
| 目的変数 | 当てさせるもの | 書き込む列 |
|---|---|---|
| 着順ランク | レースの中の並び(何番手か)。予測の順位のほかに、元のスコアも残します。 | AI_着順ランク/AI_着順スコア |
| 1着確率 | 1着になるか | AI_1着確率 |
| 2連対確率 | 2着以内に入るか | AI_2連対確率 |
| 3連対確率 | 3着以内に入るか | AI_3連対確率 |
出走取消・除外の馬は予測しません。学習では、着順の付かなかった馬(取消・除外・中止など)は使いません。
設定と操作のボタン
| ボタン | はたらき |
|---|---|
| 推奨の特徴量をまとめて設定 | 4区分すべての選択を捨てて、推奨の特徴量に置き換えます。学習期間も過去12か月に戻します。押すと確認が出ます。 |
| AI除外レースの設定 | 学習と診断から外すレースの条件を決めます(AIによる除外)。 |
| 判定設定 | BUY・SKIP の境目、ランクの境目、総合点の重みを決めます(判定設定)。閉じると、予測する開催日のAI診断を作り直します。 |
| AI印の買目 | AIの印(◎〇△×56)の組み合わせで、単勝・馬単の買目を決めます(AI印の買目)。 |
| サーバの予測を削除 | 「予測する開催日」の予測をサーバから消します。[はい]でソフト向けとホームページ用の両方、[いいえ]でホームページ用だけを消します。両方を消すと、すでに受け取った一般ユーザーの手元の予測も、次にその日を開いたときに消えます。手元の予測は残るので、サーバへ公開 で戻せます。 |
下のボタン
| ボタン | はたらき |
|---|---|
| 学習して予測する | 学習と予測を始めます(流れ)。 |
| 中止 | 学習中だけ押せます。動いている学習プログラムを止めます。 |
| サーバから受け取る | サーバにある学習の設定(特徴量・目的変数・実行設定・除外レース・判定設定・AI印の買目)と、予測する開催日のAI予測と診断を受け取り、いまの内容を置き換えます。受け取ったあと、その開催日の診断を作り直します。 |
| サーバへ公開 | 予測する開催日のAI予測と、いまの学習の設定(推奨設定)をサーバへ公開します。公開すると一般ユーザーはこの予測と診断を受け取って表示し、次からはこの設定を使います。「期間で検証する」にチェックがあるときは、検証期間ぶんをまとめて公開します。公開が終わると、ホームページのAI予想のページがブラウザで開きます。 |
| ホームページを表示 | ホームページのAI予想のページを、予測する開催日を指定してブラウザで開きます。 |
| ホームページだけ公開 | ソフト向けの予測は送らず、ホームページ用のデータだけを送り直します。手元の診断をそのまま送り、ホームページには BUY 判定のレースだけが載ります。「期間で検証する」にチェックがあるときは、期間内で予測のある日をまとめて送ります。 |
| 閉じる | 画面を閉じます。学習中は「中止して閉じますか?」と聞かれます。 |
学習して予測する流れ
- DBの蓄積状況をログに出す
学習期間と予測する開催日(または検証期間)もログに出ます。
- 除外レースの印を付け直す
学習期間と予測期間のレースを、いまの除外条件で判定し直します。条件が無いときは印をすべて外します。
- 前回の予測を消す
今回実行する目的変数の列だけ、予測する期間ぶんを消してから書き直します。
- 目的変数ごとに学習・予測する
「[1/4] 着順ランク → AI_着順ランク」のように1つずつ進みます。学習プログラムが、過去走・騎手・調教師の成績などの計算特徴量を、その開催日より前のデータだけで組み立ててから学習します。
- (期間で検証のとき)AI診断を作る
検証期間の1日ずつAI診断を作ります。
- 公開するか聞かれる
「=== 完了しました ===」のあと、予測と推奨設定をサーバへ公開するかを聞かれます。あとで公開するときは サーバへ公開 を押します。
中止のしかた
学習中に 中止 を押すと、ログに「中止します・・・」と出て学習プログラムを止めます。中止したときと、途中で失敗したときは、画面は開いたままです。止めた時点までに書き込まれた予測は残ります。
公開した予測と設定は、すべての一般ユーザーの予想と買目に使われます。公開の前に、ログの検証結果(単勝1番人気との差・警告)を確かめてください。AIの予測は結果を保証するものではありません。
