0029 baseline naive obligatoire pour interpreter le ml
ADR-29 — Baseline naïve obligatoire pour interpréter le ML¶
Statut : Décidé (2026-03-28)
Contexte : Un F1 de 0.54 ne veut rien dire seul. Si le dataset contient 40% de BUY, un classifier naïf "always BUY" obtient déjà un F1 significatif. Sans baseline, on ne peut pas distinguer un modèle utile d'un classifier trivial.
Décision : Toute métrique ML per-class (f1_buy, precision_buy) doit être comparée à la baseline naïve "always BUY" calculée sur le split test.
Invariants :
- buy_rate (proportion de BUY dans le split test) DOIT être loggé
- baseline_f1_buy = 2 * buy_rate / (1 + buy_rate) DOIT être loggé
- Le verdict (USEFUL / MARGINAL / WORSE) DOIT être dans les logs CORRELATION DATA
- Un modèle avec f1_buy proche de baseline_f1_buy ne doit PAS être considéré comme performant
- ADR-25 s'applique : si buy_rate ou baseline manquent → fail-fast, pas 0.0 silencieux
Application : scripts/strategy_testing.py (baseline per fold), test_step.py (CORRELATION DATA verdict)