Skip to content

Plan — CVN-N001-EI-S10 : re-cadrage de la prémisse S04 (range de recherche vs optimum s42)

Pas un « faux positif du verdict ». La mesure s42 est saine (lr plus bas généralise mieux sur les folds étudiés — propriété data×modèle, multi-fold robuste). Ce qui casse, c'est le pont vers prod. Et le finding salvé en ressort plus fort : l'optimum généralisant est sous tout le range de recherche prod — un défaut prod réel et actionnable, pas un artefact de test (≠ S03, où le test lui-même était invalide). Erreur de validité externe, finding net au bout.

1. Le pont vers prod casse sur DEUX plans

Lecture read-only de ftf_config.base_env :

  1. Hors-range. CVN_HPO_LGB_*_LEARNING_RATE : range [0.05, 0.15] (MIN<MAX → prod cherche). L'optimum s42 (~0.025) est sous le plancher 0.05 — prod ne peut physiquement pas l'atteindre. Le lr déployé sort du range (suggest_float(range[0],range[1])), jamais de la clé défaut. « Changer le défaut 0.1→0.025 » = mauvais modèle mental.
  2. Hors-objectif. CVN_HPO_OBJECTIVE = f1_binary (pas l'AUC). Prod sélectionne lr pour f1_binary sur [0.05,0.15]. s42 a mesuré la val-AUC. → s42 optimise une quantité que la recherche prod n'optimise même pas (AUC ≠ trading — le cœur du programme EI). Le « lr bas → meilleur AUC » peut être non pertinent pour le lr que prod retient sous f1_binary.

2. Questions décisives (read-only, MLflow/Loki — avant tout B)

Q-objectif n'est pas du contexte — c'est une réponse OBSERVATIONNELLE gratuite à ce que B testerait. Le lr que l'Optuna prod retient par fold×crypto est, par construction, le lr qui (conjointement avec les 8 autres params cherchés) maximise f1_binary — donc plus prod-fidèle que le sweep one-at-a-time de s42. À lire en distribution (clustering/spread vs plancher), pas en point.

Interprétation PRÉ-ENREGISTRÉE (décidée avant de regarder la donnée) — distribution des lr retenus par prod sous f1_binary :

Observation Lecture Conséquence B
cluster au plancher 0.05 f1_binary pousse contre le plancher (veut plus bas, cappé) → direction s42 confirmée par l'objectif trading B justifié : test ciblé « baisser le plancher »
cluster mid/haut (0.1–0.15) f1_binary ne veut pas lr bas → objectif trading contredit la direction AUC de s42 NÉGATIF observationnel, B inutile — baisser le range empirerait f1
éparpillé lr = levier faible pour le trading penche négatif (info en soi)

Q-objectif peut court-circuiter B : dans 2 cas sur 3, S04 ferme sur un négatif documenté à partir de données prod déjà générées, sans dépenser le compute B. Seul « cluster au plancher » justifie B.

Q-range = la MÊME lentille par param, DEUX plans (pas in-range seul — c'était le piège lr) : pour chacun des 9 LGB (+ XGB/CB) — (a) l'optimum doux s42 est-il in-range ? ET (b) la valeur f1-retenue par prod suggère-t-elle que f1 veut cette direction (on-objective) ? → hors-range ET f1-aligné = vrai candidat ; in-range mais f1-désaligné = mort comme lr.

3. Magnitude — attente honnête (probable négatif)

Dans le range atteignable [0.05,0.15] : 0.05 = +0.008 AUC vs 0.1 ; 0.15 ≈ −0.001. Le mieux que prod peut faire (0.05) est à +0.011 AUC du vrai optimum (0.025, +0.019) — et c'est de l'AUC. L'opportunité récupérable est petite, soumise au gap AUC→trading et à l'objectif f1_binary. Le négatif honnête est probable ; S10 est cadré là-dessus, pas pour survendre un décalage de range.

4. Forme de B (cas A — n'lutte pas contre la recherche, épouse-la)

Si on va à B : recherche prod telle quelle (range lr actuel) vs recherche prod avec range lr décalé (le facteur A/B décale uniquement le range lr, les autres params cherchent comme prod le fait). On ne collapse pas (c'était le cas b). L'effet combiné (lr plus bas + ce qu'Optuna trouve en réponse, sous f1_binary) est ce que shipper le décalage produit → quantité décision-pertinente, mesured-as-deployed du cas A. Décision sur f1_binary/Sortino (ce que prod optimise déjà), pas l'AUC.

5. Ce qui survit du step-3 A

Le step-3 A tient : il a montré que la direction descendante du lr est robuste multi-fold — exactement l'evidence qui soutient « baisser/décaler le range ». Il devient un input de « où re-centrer », pas « quelle valeur en défaut ». La méthodo (filtrage stabilité asymétrique) est valide indépendamment.

6. Deliverable

  • Re-cadrage documenté du verdict S04 (range-mis-centering + off-objective, pas default-overfit) + correction des artefacts (rapport publié + dossier de revue : note §8 Limitations « pont-prod re-cadré, S10 »).
  • Réponses aux Q-objectif + Q-range (MLflow/Loki).
  • Décision sur B (décalage de range) après le re-cadrage.

7. Scope / blocage

Bloque la clôture S04 (deliverable HP-swap change de nature). Orthogonal au fix thread-caps (clos). Famille validité-externe (≠ S03 test-invalide ; ≠ A6 replay — mais même discipline §0bis).

8. RÉSOLUTION (2026-06-04) — Q-objectif tranchée : non-transfert

§0bis appliqué à la lecture elle-même (le résultat satisfaisant le plus à vérifier) : l'objectif des runs avec lr retenu doit être confirmé par run, pas inféré du config courant (erreur S03). Les 43 runs Sprint7 (mai) = objectif non-vérifiable (Loki ne retient pas mai, MLflow metrics vides) → abandonnés. Bascule sur n=600 trials du 3 juin, f1_buy CONFIRMÉ par run (hpo_complete best_f1_buy concurrents, LGB, range [0.05,0.15], defi_top5).

Distribution lr sous f1_buy (objectif-confirmé) sur [0.05,0.15] : médiane 0.106, 56% ≥ 0.10, 9% au plancher, 0% sous le plancher (min=0.050=plancher, max=0.150=plafond). Sous un prior log-uniforme favorisant le bas, TPE remonte vers le haut → la recherche prod ne favorise pas lr bas.

Verdict = NÉGATIF, libellé « pas de support » (et non « baisser nuirait » — le plancher empêche de le tester ; la charge était sur le swap) : le finding lr-bas de s42 (AUC, axes fixés) ne transfère pas à l'objectif trading prod ; la reco HP-swap n'est pas soutenue.

Conséquences : - B inutile — réfuté observationnellement, données prod déjà générées, zéro compute B. - S04 deliverable HP-swap = négatif documenté (issue valide du plan) → clôture S04 débloquée. - S10 (lr) résolu. Reste comme suivi (hors clôture S04) : l'audit unificateur Q-range « le régime déploiement (recherche jointe × objectif trading) couvre-t-il les findings fixed-axis de s42 ? » sur les 8 autres params LGB + XGB/CB — la leçon lr peut généraliser.

Caveats (non-blockers, le négatif n'en dépend pas) : trials ≠ best-retenu (densité TPE = proxy ; le best-retenu est borné à [0.05,0.15] et joint-confondu, il confirmerait sans renverser) ; lr co-budgété n_estimators → « f1 ne sélectionne pas lr bas », pas « anti-corrélation AUC/trading démontrée ».

Leçon transférable : un diagnostic à HP fixés + métrique proxy (AUC) peut être interne-valide et ne pas mapper le déploiement (recherche HPO × objectif trading) qu'il est censé informer. C'est la thèse EI démontrée — réfutation du proxy contre l'objectif réel, sans brûler le compute.