30秒で分かる今回の変更
既存の過去43287レースを、結果を見ずに2つへ分割しました。
- Development Pool:39803レース
- Sealed Final Holdout:3484レース
- race_idの重複:0
Final Holdoutは既存履歴の既存履歴の最後の期間を、レース日とレースIDだけで固定しています。
結果、払戻、最終オッズ、経済評価、候補性能を見ながら期間を選んではいません。
Champion候補を固定するまで、この封印領域の結果は参照しません。
何を変えたのか
これまでは研究方式を設計する段階でした。
今回は実際の履歴データを使い、
「ここまでは候補探索に使う」 「ここから先は最後の一度だけ使う」
という境界を実レース単位で固定しました。
Development Poolには39803レース、 Final Holdoutには3484レースを割り当てています。
両者の重複は0です。
なぜ必要なのか
最終検証用データを途中で見てしまうと、 無意識でも条件調整に使えてしまいます。
それでは、最後の検証が本当に独立していたのか分かりません。
今回の分割では、Final Holdoutを選ぶ際に結果系情報を使わず、 候補探索中も結果参照を禁止する前提を固定しました。
現在できること
これで、Development Pool内では候補探索を反復できます。
一方で、Final HoldoutはChampion候補固定まで閉じたまま維持できます。
つまり、 開発と最終確認を別の役割として扱える状態になりました。
実測した内容
今回の検証では11件を確認し、11件すべてを判定済みです。 未解決は0件でした。
実データ分割では、
- development_race_count:39803
- sealed_final_holdout_race_count:3484
- development_holdout_overlap_count:0
を確認しています。
制約
この工程では経済評価候補候補探索そのものはまだ開始していません。
Development Pool内で今後見つかる候補が、 Final Holdoutでも同じ結果になる保証はありません。
また、Final Holdoutの結果、払戻、経済評価、最終オッズ、候補性能は、 Champion固定まで参照しません。
次にやること
次はDevelopment Poolだけを使い、 候補探索と時系列Walk-Forward経済評価を行います。
その中からChampion候補を一本に固定してから、 初めてSealed Final Holdoutへ進みます。
今回の成果は、 最終確認の答えを先に見ずに研究を進めるための実データ境界を固定したことです。