ボートレースAIでは、停止しているForward Testを安全に再開するため、段階的な動作確認を進めています。
2026年8月2日には、実際のレースを使った「Stage 4D」の手動テストを実施しました。
今回確認したのは、レース前にAI予想を保存し、レース終了後に公式結果と払戻を取得して、予想結果を正しく評価できるかという一連の流れです。
ただし、今回は正式なForward Testの再開ではありません。
すべて動作確認用のテストとして扱い、的中率や回収率などの正式な成績には含めていません。
正式再開前に確認したかったこと
AI予想を正式に再開するには、単に予想を出せるだけでは不十分です。
今回の手動テストでは、主に次の点を確認しました。
- レースの締切前にAI判定を保存できるか
- 結果が分かる前に予想を固定できるか
- レース終了後に公式結果を取得できるか
- 3連複の払戻情報を保存できるか
- 事前予想と公式結果を照合できるか
- テスト結果を正式成績から除外できるか
- 開発用の処理が正本データベースを変更しないか
結果を見た後に予想を作ることがないよう、締切前の判定と結果取得を明確に分けています。
今回も固定戦略を使用
今回のテストでも、これまでのForward Testと同じ戦略を使用しました。
- 券種:3連複
- 買い目:AI予想上位3艇
- 信頼度:1位と2位のスコア差
- 購入基準:スコア差11.02以上
- 戦略名:trio_top3_top1_gap_fixed_v1
- スコア:explainable-score-v1
検証の途中で、予想条件や購入基準は変更していません。
結果を見ながら都合よく条件を変えてしまうと、Forward Testとして正しく比較できなくなるためです。
2レースで手動予想を保存
今回、23場の9Rと11Rで、締切前の手動判定を保存しました。
結果は次のとおりです。
| レース | AI判定 | AI想定買い目 | 実際の3連複 | 評価 |
|---|---|---|---|---|
| 23場9R | SKIP | 1=2=4 | 2=3=5 | SKIPPED |
| 23場11R | SKIP | 1=2=4 | 1=2=3 | SKIPPED |
2レースとも、AIは購入条件を満たさない「SKIP」と判定しました。
そのため、実際の購入金額、払戻、収支はいずれも0円です。
AIが想定した買い目を仮に購入していた場合は、どちらのレースも不的中でした。
今回は、購入を見送る判定によって損失を回避した形になります。
23場9Rの結果
23場9Rの公式結果は、2号艇、3号艇、5号艇でした。
- 公式着順:2-3-5
- 3連複:2=3=5
- 3連複払戻:5,370円
- AI想定買い目:1=2=4
- AI判定:SKIP
- 購入金額:0円
- 評価:SKIPPED
- 収支:0円
実際の3連複は高配当でしたが、AIの想定買い目とは一致していません。
仮に購入していた場合は不的中です。
なお、このレースを処理した時点では、取得した元データをどのように保存するかというルールがまだ完全に決まっていませんでした。
そのため、結果と評価は保存されていますが、当時の総合判定はINCOMPLETEのままとしています。
23場11Rの結果
23場11Rでは、修正後の処理を使い、事前判定から結果評価までの一連の流れを確認しました。
- 公式着順:1-3-2
- 3連複:1=2=3
- 3連複払戻:310円
- AI想定買い目:1=2=4
- AI判定:SKIP
- 購入金額:0円
- 評価:SKIPPED
- 収支:0円
AIの想定買い目は1=2=4でしたが、実際の3連複は1=2=3でした。
このレースも、仮に購入していた場合は不的中です。
ただし、AIは事前にSKIPと判定していたため、実際には購入していません。
23場11Rでは、修正版を使って次の流れを完了できました。
- 締切前のAI判定
- 判定内容の保存
- 公式結果の取得
- 払戻情報の保存
- 予想と結果の照合
- SKIPPED評価の保存
- 正式成績からの除外
テスト中に見つかった問題
今回のStage 4Dでは、最初からすべてが正常に動いたわけではありません。
実際にレース時刻に合わせて動かすことで、いくつかの問題が見つかりました。
判定時刻が数秒ずれる問題
締切前の安全な時間帯に予想を保存する設計でしたが、子処理を起動するまでの時間によって、判定時刻が数秒ずれるケースがありました。
処理の起動時間を考慮して、判定タイミングを補正しました。
手動テスト情報が途中で失われる問題
手動テストとして実行していることを示す情報が、保存処理の途中で途切れる問題がありました。
そのため、安全機能によってデータベースへの書き込みが停止するケースがありました。
修正後は、結果、払戻、評価を保存するところまで、手動テスト用の情報を維持できるようにしました。
結果公開前にデータを保存する問題
公式結果がまだ公開されていない状態でも、一部の記録が保存されるケースがありました。
現在は結果未公開の場合、次のデータを保存しないように変更しています。
- 取得ページの記録
- 元データ
- レース結果
- 払戻
- 評価
結果が公開されていない場合は、処理を停止した記録だけを残します。
異なるPythonで起動する問題
一部の処理を直接実行した際、専用のPython環境ではなく、Macに付属する別のPythonで起動する問題がありました。
必要なライブラリが見つからず、処理が停止しました。
修正後は、ボートレースAI用のPython環境から必ず実行するように固定しています。
テスト結果は正式成績に含めていません
今回の2レースは、正式なForward Testではなく、動作確認のためのテストです。
そのため、次の成績には含めていません。
- 購入件数
- 的中件数
- 投資額
- 払戻額
- 収支
- 回収率
- 連敗数
- ドローダウン
テスト用の実行と正式運用のデータが混ざらないことも確認しました。
今回保存されたStage 4D用の実行記録は3件あります。
これは、修正前を含む複数回の検証実行が記録されているためです。
正式な事前判定と評価の対象となったレースは、23場9Rと11Rの2件です。
正本データベースへの影響もありません
作業後には、データの隔離状態も確認しました。
- 正本データベース:変更なし
- テスト用データベース:整合性確認済み
- 外部キーエラー:0件
- ロックファイル残存:なし
- 一時ファイル残存:なし
- 自動実行設定:未登録
- 共有フォルダへの書き込み:なし
- WordPress接続:なし
- ブログ用予想データ作成:なし
今回の検証によって、正式な予想データや過去のForward Test成績が変更されることはありませんでした。
まだ正式再開ではありません
今回、手動でのSKIP判定と結果評価の流れは確認できました。
しかし、まだ確認できていない処理があります。
- PURCHASE判定が出た場合の評価
- 結果未公開時の停止処理
- 毎日の自動実行
- Macのスリープ復帰後の動作
- 複数日にわたる連続運用
- 自動起動設定
- 正式Forward Testの再開
今回のテストが成功したからといって、すぐに自動運用を開始する予定はありません。
次は別日に最大2レースを検証
次の段階では、別の開催日を対象に、もう1日だけ手動テストを行う予定です。
対象を広げすぎないよう、次の条件に制限します。
- 対象日:1日だけ
- 対象レース:最大2レース
- 事前判定:最大2件
- 結果評価:事前判定に成功したレースだけ
- 正式成績には含めない
- 自動実行は行わない
- WordPressとの自動連携は行わない
別の日でも同じ処理が安定して動くことを確認してから、自動実行の設計へ進みます。
まとめ
今回のStage 4Dでは、実際のレースを使って次の流れを確認しました。
- 締切前の手動予想
- AI判定の保存
- 公式結果の取得
- 払戻の保存
- 予想と結果の照合
- SKIP評価の作成
- 正式成績からの除外
- 正本データベースが変更されていないこと
途中では、判定時刻、手動実行情報、結果未公開時の保存、Python実行環境などの問題も見つかりました。
これらを修正し、23場11Rでは予想から結果評価までの一連の処理を完了できました。
正式Forward Test再開に向けて、安全性は一段高まりました。
ただし、購入判定が出た場合の処理や自動実行は、まだ確認できていません。
もう1日だけ手動テストを行い、問題がないことを確認してから、正式な自動運用へ進む予定です。
開発メモ
今回の主な技術記録は次のとおりです。
- 実施日:2026年8月2日
- run_class:STAGE4D_TEST
- 固定戦略:trio_top3_top1_gap_fixed_v1
- confidence:top1_gap
- threshold:11.02
- score:explainable-score-v1
- テスト実行記録:3件
- 事前判定:2件
- 評価:2件
- 判定結果:2件ともSKIP
- forward_kpi_enabled:false
- formal_kpi_included:false
- 正式KPIへの混入:0件
- 正本DB:不変
- テスト用DBのforeign_key_check:0件
- LaunchAgent:未登録
- cron:未登録
- shared書き込み:なし
- WordPress接続:なし

コメント