開発ログ

Point-in-Time結合とAs-Of参照ルールを確定する

今回の更新

過去検証で「後から分かった情報」を当時の予測に混ぜないため、前日23時をDecision TimeとするPoint-in-Time / As-Ofルールを実装しました。

Decision Time以前に実際に利用可能だった情報だけを使い、後日Backfillされたデータ、結果由来の情報、利用可能時刻を確認できない情報を除外します。

専用テストはすべてPASS。Canonical DBをREAD_ONLYで確認したPoint-in-Time関連の検証項目もすべてPASSし、未解決項目はありませんでした。

何が変わったか

従来の「現在DBに入っている最新値を見る」考え方ではなく、予測時点で本当に知ることができたレコードだけを選択するAs-Of基準を固定しました。

知識時刻の判定では、観測・取得・利用可能・取込時刻を使い、後日追加されたBackfillを過去から存在していた情報として扱わないようにしています。

また、result_available_at を持つ結果由来レコードはモデル入力から除外します。

なぜ必要か

過去検証では、未来情報が少し混ざるだけでも成績が実際より良く見える可能性があります。

そのため今回の工程は、モデル精度の改善そのものを目的にしたものではなく、**過去の判断時点を正しく再現できる土台を作ること**が目的です。

現在の状態

  • 前日23時(Asia/Tokyo)のDecision Timeルールを実装
  • As-OfでDecision Time以前の最新利用可能レコードを選択
  • 後日Backfillを過去情報として扱わない
  • 結果由来情報をモデル入力から除外
  • Provenance不足はFail Closed
  • 専用テストはすべてPASS
  • Canonical DBの実データ検証もPASS、未解決なし

制約

この工程では、モデル精度・回収率・収益性の改善は主張しません。

また、利用可能時刻を十分に確認できないデータは、推測で採用せず利用対象外とします。

次の工程

次はこの時間境界を前提として、予測対象レースの条件と、取消・除外・特殊結果などのラベル方針を定めます。

全体ロードマップを見る →

← 開発ログへ戻る

掲載内容は、その時点の開発・検証記録です。将来の利益や的中を保証するものではありません。