【要約】競馬AI開発記録 #25 予測空間の「統治」と統合:マルチモデル・ポートフォリオへの覚醒 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者がモデルの増加に伴うデータの不整合と、パイプラインの脆弱性に直面した。モデルが増えるたびに、特徴量空間の管理が困難になり、予測精度を低下させる事態が発生した。
- ・特徴量空間の「NaN汚染」:TOP3専用列が単勝モデルに混入し、ROIが85.17%から67.38%へ急落した。
- ・インデックスの乖離:ソートにより予測値と結果のインデックスが不一致となり、評価不能となった。
- ・キャッシュの不整合:Jupyterのキャッシュにより、新設した特徴量が無視されるバグが発生した。
// Approach
開発者がシステムの堅牢性と拡張性を確保するため、アーキテクチャの刷新とデータ管理手法の変更を行った。場当たり的な分離を廃止し、モデルが自律的に情報を管理する仕組みを構築した。
- ・宣言的アーキテクチャ:ModelConfigにより、各モデルが特徴量や評価方針を自己管理する仕組みを構築した。
- ・物理的なデータ隔離:calib_historyをモデル別に分離し、他モデルのNaN列による汚染を遮断した。
- ・マージ戦略の刷新:インデックス依存を廃止し、複合キーによるマージへ移行した。
- ・キャッシュ管理の徹底:importlib.invalidate_caches()等の処理を実装した。
// Result
開発者がマルチモデル化とアーキテクチャ刷新を完遂した結果、予測精度と収益性が大幅に向上した。システム全体を投資ポートフォリオとして機能させる基盤が整った。
- ・ROIの回復:マルチモデル化により、67.38%から80.49%へ改善した。
- ・予測精度の向上:In-Race Spearman相関が0.2527から0.3687へ向上した。
- ・的中率の改善:Top-1 Hit Rateが20.24%から22.91%へ上昇した。
- ・拡張性の確保:BetTypeデータクラスにより、新しい馬券種の追加が容易な基盤を確立した。
Senior Engineer Insight
> 特徴量管理の「統治(Governance)」に焦点を当てた優れた設計思想である。グローバルな特徴量を廃止し、モデルごとに空間を分離した判断は、大規模運用において不可欠だ。インデックス依存を排除し、複合キーによるマージへ移行した点は、データ整合性の観点から極めて実践的である。ただし、動的ロード時のキャッシュ問題は、実験環境の再現性を損なうリスクがある。CI/CDパイプラインでの厳格な検証が求められる。