AI学習・予測
過去のレース結果からAIに学習させ、指定した開催日の各艇の着順ランクや1着確率などを予測する画面です。作った予測と学習の設定は、サーバへ公開して一般ユーザーに配ります。この画面で学習・公開ができるのは管理者だけです。一般ユーザーは、管理者が公開したAI予想を受け取って使います。
一般ユーザーの方へ(AI予想を受け取る)
一般ユーザーのメイン画面では、このメニューは AI予想を受け取る という名前で表示されます。押しても学習画面は開かず、次のことだけを行います。
- メイン画面の[AI予想を受け取る]メニューを押す
番組表で表示している開催日のAI予想(予測と診断)を、サーバから受け取ります。
- 番組表に反映される
受け取れると番組表が読み直され、「予測 〇艇/診断 〇レース」と公開日時が知らされます。
- まだ公開されていないとき
「まだ公開されていないか、受け取れませんでした」と表示されます。しばらくしてからもう一度押してください。
また、一般ユーザーのソフトは起動するたびに、管理者が決めた学習の推奨設定(特徴量・目的変数・実行設定・除外レース・判定設定・AI印の買目)をサーバから受け取ります。回線がつながらないときは、手元の設定のまま起動します。
管理者かどうかは、サーバに登録された利用者情報で決まります。AI学習・予測画面を開くたびにサーバの利用者情報を取り直すので、登録が変わればソフトを起動し直さなくても反映されます。以下は管理者向けの説明です。
画面の開き方(管理者)
- 番組表で開催日を選ぶ
予測したい開催日の番組表を表示しておきます。画面を開くと、その開催日が「予測する開催日」に入ります。
- メニューを押す
メイン画面上部の AI学習・予測 を押します。すでに開いているときは、重ねて開きません。
- 閉じると番組表に反映
学習・予測をしたり、サーバから受け取ったりしたあとで画面を閉じると、番組表のAI診断が読み直されます。
画面の見方
番号にマウスを合わせると、画面上の場所が赤枠で示されます。番号を押すと、下の説明へ移ります。写真を押すと拡大します。
写真は管理者の画面の例です。件数・日付・数字は、お使いのパソコンのデータによって変わります。
- 1DBの蓄積状況
手元のデータベースにたまっているレースの数を、年ごとと合計で示します。「学習に使う」は、結果が確定したレースからAI除外のレースを引いた数です(実際に使うのは、このうち学習期間のぶんだけです)。
- 2予測する開催日
予測を作る開催日です。開くたびに、番組表で表示している開催日が入ります。
- 3学習期間
何か月ぶんの過去データで学習するかを指定します。学習の終わりは必ず「予測する開催日の前日」です。
- 4期間で検証する/期間検証2
過去の期間について予測を作り、当たり具合を確かめるための設定です。
- 5学習回数・早期打切り・学習率・葉の数・学習プログラム
AI(LightGBM)の学習のしかたと、使う学習プログラムの情報です。
- 6特徴量(4つのボタン)
学習に使う項目を区分ごとに選びます。横の件数は、いま選ばれている項目の数です。
- 7実行する目的変数・除外レース
AIに何を予測させるかを選びます。「除外レース」の行には、除外レースの条件を使っているかどうかが出ます。
- 8設定と操作
推奨の特徴量の設定、AI除外レース、判定設定、AI印の買目、サーバの予測の削除を行うボタンです。
- 9ログ
学習・予測・公開の進み具合が流れます。学習中はログ欄の右側に動画が流れます(ソフトに動画が入っているとき)。
- 10下のボタン
学習の実行・中止、サーバとのやり取り、画面を閉じるボタンです。
DBの蓄積状況の列
| 列 | 意味 |
|---|---|
| 年 | 集計の年です。いちばん上が「合計」です。 |
| 開催日 | データがある開催日の数です。 |
| レース | データがあるレースの数です。 |
| 中止 | 中止になったレースの数です。 |
| 結果なし | 結果がまだ入っていないレースの数です。 |
| 確定 | 結果が確定しているレースの数です。 |
| AI除外 | AI除外レースの条件に当たり、学習から外すレースの数です。 |
| 学習に使う | 確定したレースからAI除外を引いた数です。 |
表の上の見出しには、データの期間と出走の件数も出ます。数えるのは画面の裏で行い、学習が終わると数え直されます。
実行設定
予測する開催日・学習期間
| 項目 | 説明 |
|---|---|
| 予測する開催日 | 予測を作る日です。画面を開くたびに番組表の開催日が入ります(前回の値は使いません)。 |
| 学習期間(過去〇か月) | 「予測する開催日の前日」までの何か月ぶんで学習するかです。初めは12か月です。予測する日そのものを学習に入れると、答えを見てから予測することになるため、前日までで区切ります。 |
期間で検証する・期間検証2
| 項目 | 説明 |
|---|---|
| 期間で検証する | チェックすると「検証の開始日」「検証の終了日」が入力できるようになり、下のボタンが 期間で学習して検証する に変わります。開始日の前日までで1回学習し、その内容で期間ぶんを予測して、AI診断まで行います。このとき「予測する開催日」は入力できなくなり、検証の開始日が使われます。 |
| 検証の開始日/終了日 | 検証する期間です。初めは「1か月前〜前日」です。開始日と終了日が逆になっていても、入れ替えて実行します。 |
| 期間検証2(〇日ごとに学習し直す) | 「期間で検証する」にチェックしたときだけ選べます。検証期間を指定した日数ずつに区切り、区切りごとに「その前日までの過去〇か月」で学習し直してから予測します。開催の無い区切りは飛ばします。時間がかかります。 |
検証が終わると「AI成績」画面で同じ期間を指定するよう知らされます。続けて、その期間の予測をサーバへ公開し直すかどうかを尋ねられます。
学習のしかた
| 項目 | 初めの値 | 説明 |
|---|---|---|
| 学習回数 | 2000回 | 学習をくり返す回数の上限です。 |
| 早期打切り | 50回 | この回数続けて良くならなければ、学習回数の途中でも打ち切ります。 |
| 学習率 | 0.050 | 1回の学習でどれだけ大きく直すかです。 |
| 葉の数 | 31 | AI(決定木)1本あたりの枝分かれの細かさです。 |
| 学習プログラム | - | 学習に使うプログラムの名前と、更新日時・大きさです。見つからないときは「【見つかりません】」と赤で出ます。 |
学習プログラムは、ソフトと一緒にインストールされる専用のプログラム(LightGBM を使った Python のプログラムを1つの exe にまとめたもの)です。ソフトがこれを呼び出して学習と予測を行います。
特徴量
AIが学習に使う項目(特徴量)を、次の4つの区分ごとに選びます。選んだ特徴量は、下の4つの目的変数すべてで共通に使います。ボタンを押すと「特徴量の選択」画面が開きます。
| ボタン | 選ぶもの |
|---|---|
| レース情報(数値) | レース単位の数値の項目(レース番号など) |
| レース情報(カテゴリ) | レース単位の分類の項目(会場など) |
| 出走表(数値) | 艇ごとの数値の項目(勝率・モーター・計算で作る項目など) |
| カテゴリ | 艇ごとの分類の項目(級別など) |
選び方は特徴量の選択のページをご覧ください。
実行する目的変数
チェックしたものだけ学習・予測します。初めは4つともチェックされています。予測の結果は、出走表のデータの決まった欄(AI_ で始まる欄)に書き込まれます。
| 目的変数 | AIが予測するもの |
|---|---|
| 着順ランク | レースの中での各艇の着順の並び。順位のほかに、元のスコアも書き込みます(僅差か断然かが分かるように)。 |
| 1着確率 | 各艇が1着になる見込み |
| 2連対確率 | 各艇が2着以内に入る見込み |
| 3連対確率 | 各艇が3着以内に入る見込み |
チェックを外した目的変数は、予測する日のぶんの古い予測値が消されます(前の予測と混ざらないように)。ほかの日の予測値は、成績を調べるために残ります。
設定と操作のボタン
| ボタン | 説明 |
|---|---|
| 推奨の特徴量をまとめて設定 | いまの特徴量の選択をすべて捨てて、4区分とも推奨の内容に置き換えます。確認のあと、区分ごとの件数が表示されます。この版のデータベースに無い項目は外され、その名前が知らされます。 |
| AI除外レースの設定 | 学習とAI診断から外すレースの条件を決めます。条件を変えると、その日の除外の印を付け直し、診断をやり直して番組表に反映します。詳しくはAIによる除外へ。 |
| 判定設定 | 買い・見送り・ランクの境目を決めます。変えると、その日の診断をやり直して番組表に反映します。 |
| AI印の買目 | AIの印(◎〇△×56)のどの組み合わせを買目にするかを決めます。詳しくはAI印の買目へ。 |
| サーバの予測を削除 | 「予測する開催日」のAI予測をサーバから消します。[はい]でソフト向けとホームページ用の両方、[いいえ]でホームページ用だけを消し、[キャンセル]でやめます。もう一度確認されてから消します。手元の予測は消えないので、サーバへ公開 で戻せます。 |
下のボタン
| ボタン | 説明 |
|---|---|
| 学習して予測する | 学習と予測を始めます(流れは次の章)。「期間で検証する」にチェックがあると 期間で学習して検証する になります。 |
| 中止 | 実行中の処理を止めます。実行中だけ押せます(赤色)。 |
| サーバから受け取る | サーバにある学習の設定(特徴量・目的変数・実行設定・除外レース・判定設定・AI印の買目)と、「予測する開催日」のAI予測と診断を受け取り、いまの内容を置き換えます。受け取ったAI印の買目の点数も表示されます。画面を閉じると番組表に反映されます。 |
| サーバへ公開 | 「予測する開催日」のAI予測と、学習の設定値(推奨設定)をサーバへ公開します。確認画面に公開する設定の中身が出ます。「期間で検証する」にチェックがあるときは、検証期間ぶんをまとめて公開します。 |
| ホームページを表示 | ホームページのAI予想のページを、「予測する開催日」を指定してブラウザで開きます。 |
| ホームページだけ公開 | ソフト向けの予測は送らず、ホームページ用のAI予想だけを送り直します。手元の診断結果をそのまま送り、ホームページには BUY 判定のレースだけが載ります。公開後はAI予想のページが開きます。 |
| 閉じる | 画面を閉じます。実行中は押せません。 |
学習して予測する流れ
学習して予測する を押すと、次の順に進みます。進み具合はログに出ます。
- 入力の確認
開催日の形、目的変数が1つ以上選ばれているか、特徴量が1つ以上選ばれているか、学習プログラムがあるかを確かめます。足りないときは知らせが出て止まります。
- 結果の抜けを取り直す
学習期間の中に結果が入っていない日やレースがあれば、取り直してから学習します(結果が無いレースは学習に使えないため)。
- 出走表の項目を埋める
番組表に入っていない項目(3連対率・平均ST・F数など)を出走表のページから取って埋めます。半分以上取れなかったときは、予測がずれるのを防ぐため学習しません。
- 除外レースを調べる
AI除外レースの条件に当たるレースに印を付け、学習から外します。設定を変えていなければ前の結果を使うので、時間はかかりません。
- 学習の指紋を残す
何を入力にして学習したかをまとめた1行(学習の指紋)をログに出します。2台のパソコンで予測が食い違ったときに見くらべるためのものです。
- 目的変数ごとに学習・予測
チェックした目的変数ごとに学習プログラムを動かし、予測を書き込みます。
- 公開するかを尋ねる
終わると「この結果と学習の設定値をサーバへ公開しますか?」と尋ねられます。[はい]で公開、[いいえ]ならあとから サーバへ公開 で公開できます。
中止のしかた
実行中に 中止 を押すと、ログに「中止を指示しました」と出て、動いている学習プログラムを止めます。
- 学習プログラムは、親と子の2つの動きで動いています。中止すると先に子(学習の本体)を止め、親が後片付けをして終わるのを待ちます。
- 5秒待っても終わらないときは、まとめて強制的に止めます。このときは Windows の一時フォルダに作業用のファイルが残ることがあります。
- 結果の取り直しや除外レースを調べている途中で中止したときは、学習には進みません。
- 実行中は画面を閉じられません。閉じようとすると「処理中です。中止してから閉じてください。」と表示されます。
毎日の予測は、番組表でその日を表示してから画面を開き、学習して予測する → 終わったら公開、の順で行います。設定を変えて試すときは、まず「期間で検証する」で過去の期間を予測し、「AI成績」画面で「常に1号艇」と比べてから公開すると安全です。
公開した学習の設定と予測は、すべての一般ユーザーに配られ、番組表の判定や自動運転の買目に影響します。公開の前に内容を確かめてください。AIの予測は結果を保証するものではありません。
