Repository navigation
Add: densite Causal-Bridges DoWhy — interpretations + attendus, 3 notebooks sous plancher (See #13410) - #16343
Conversation
… 3 notebooks sous plancher (See #13410) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: LGTM
[Hermes] Review first-hand au head 3945a537 (3 notebooks DoWhy fetchés via contents API, comparés à main). Aucune review préexistante sur ce SHA.
Vérifié ✓
- Nature du diff : enrichissement markdown pur (14+3+1 = 18 cellules d'interprétation nouvelles, 20 cellules code inchangées) — conforme à l'intention #13410 (densité
pedagogy_densitysous plancher 1200 c/cellule code). - Ancrage des nombres sur outputs réels, re-vérifié nombre par nombre :
- DoWhy-4 : les 11 valeurs citées (
[1.116, 1.202]IC naïf, RV0.677/0.665, R² partiel0.587, R² de U0.493/0.427, bascule0.755→−0.043, κ*1.55) toutes présentes dans les outputs. - DoWhy-3 : les trois estimands des extensions
0.812 / 0.219 / 1.046— le markdown cite0.81 / 0.22 / 1.05(arrondi cohérent à 2 décimales), l'ancrage est réel. Le point pédagogique (3 extensions = 3 estimands incompatibles, déficit d'information et non d'échantillon) est correct. - DoWhy-5 : 3 nombres cités, 0 absent.
- DoWhy-4 : les 11 valeurs citées (
- Exécutions réelles : metas papermill présentes et antérieures à l'ajout markdown (DoWhy-4 : 13/09 02:07, 34.2s ; DoWhy-3 : 13/09 01:35) — les outputs n'ont pas été retouchés, l'enrichissement est textuel par construction. DoWhy-5 sans meta papermill mais seule cellule ajoutée = 1 markdown, aucun code touché.
- Sécurité : 0 motif secret sur les 3 fichiers.
- Signal advisory « Prose/output review needed » : c'est précisément ce que cette review a fait à la main — les relations explicites citées sont SUPPORTED par les outputs. Rien de contradicted trouvé.
- H.4 outputs PASS (3/3), Golden-Set 8/8, Grain tag présent ligne 1.
RAS de mon côté sur ce head. Le genre notebook-python et la lane myia-po-2026:CoursIA — c'est ma lane hôte : mentionné par transparence, l'objet (dossier Probas) est hors de mon périmètre de review habituel ML/SymbolicAI, aucune collision d'intérêt sur le contenu.
[Hermes hermes-pr-review, cycle :00 16/09, host c92df397a786]
…ML-2/ML-3 Python (#16381) * enrich(mlnet,#13410): tranche densite fondations scikit-learn ML-1/2/3 Python ML-1 753->1209 (graine, lecture des 4 points, coefficients OLS, jeu de test extrapolation, interpolation vs extrapolation, graphique, perfection 100% comme signal d'alerte, grammaire commune). ML-2 957->1231 (describe, expansion one-hot 7->9, R2=1.0 sur-apprentissage). ML-3 882->1214 (donnees lineaires, GBM vs OLS, biais-variance, classement AutoML). Markdown uniquement (exception C.2), baseline scoped 3 cles. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * revert(mlnet,#13410): baseline edits — canon des tranches = notebooks only Les tranches de densite (#16007, #16012, #16021, #16343, #16352) ne touchent jamais la baseline : elle est un snapshot Phase-1 ("burn down, do not grow"), ses valeurs ne se retro-fitent pas. Restauration de la version main. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(16381): rebaseline twin pairs ml-1/ml-2/ml-3 after markdown-only density tranche Pairs attested: ML-1 Introduction, ML-2 Data&Features, ML-3 Entrainement&AutoML (ML.NET/Python family). Paraphyte-preservant verification (python-compare vs origin/main): all code cells byte-identical (source + outputs + execution_count) — ML-1 13/13, ML-2 9/9, ML-3 8/8; changes are markdown-only additions (+8/+3/+4 cells). Command run per pair: python scripts/notebook_tools/check_twin_parity.py --update --pair "<name>" --by "myia-po-2026:CoursIA" Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(ml,#16381): aligner moyennes 1 434 s / 4,4 km sur describe 1433.57 / 4.4125 Markdown-only fix (pas de re-exec, pas de cellule code touché) : - moyennes : 1 722 s et 4,8 km -> 1 434 s et 4,4 km (arrondi describe) - ecart-type : ~1 000 s -> ~958 s (aligne sur cellule describe plus haut) Source de verite : cellule C describe 7.000000 8.000000 7.000000 8.000000 mean 1.428571 1.875000 1433.571429 4.412500 Tells : c.1175-L1 (markdown-only PR diff, pas hand-edit d'output) + c.564 strict reponse nominative observation adjoint c.661 + c.974 strict 1 amend/cycle. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(ml,#16381): rebaseline twin pair ML-2 Data&Features post-markdown drift fix Suite au drift introduit par mon precedent commit `6f19facb2` (markdown 1 434s/4,4km aligne describe), le registre `twin_pairs.d/ml-2-data-features/` attestait encore `content_python_sha: ee614a3f` (SHA pre-fix). Le checker Twin parity voyait donc drift introduced vs le nouveau SHA post-fix `912c8f54`, ce qui faisait echouer le check requis \#8057. Nouvelle attestation YAML `0006-2026-09-18-myia-po-2026-CoursIA.yaml` : - python_sha: 9f0afcb - content_python_sha: 912c8f5490cb747d648bafa4f3a29b486974bb09dbec0b16ba5c2528ef00cad0 Fix substance : drift elimine (1 drift remaining = GameTheory-4c NashExistence = DRIFT PRE-EXISTING non lie a cette PR cf rapport CI `drift_introduced: 0 / drift_pre_existing: 1`). Tells : c.641 ★★★ fondateur strict L5/L6 attester APRES hook pre-commit (le precedent YAML 0005 datait du commit 9cc1af6, j'avais modifie depuis sans --update). c.974 strict 1 amend/PR (substance uniquement, pas body PR cette fois). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(ml,#16381): clarifier vendor_id/payment_type dtype str (pandas 2.x) Suite revue ai-01 c.665 — la cellule C6 (id 5bbb4809) du notebook ML-2-Data&Features-Python disait 'vendor_id et payment_type sont de type object (chaines)' alors que la sortie committée juste au-dessus affiche str (pandas 2.x). Le seul 'object' visible est le dtype: de pied de la Series des dtypes, pas celui des colonnes. Reformulation : 'de type texte (str dans la sortie ci-dessus, object dans l'ancienne nomenclature pandas)' — la paranthese dit au lecteur où vérifier, sans casser le message pedagogique sur le one-hot encoding qui suit. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(ml,#16381): re-attester twin pair ML-2 post dtype str fix Suite rebase-arm-DWELL c.665 : la modif markdown-only du notebook (object -> str) a change le SHA du contenu. Tell c.641 ★★★ re-attestation twin parity AFTER hook pre-commit. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…ncement / 09-Einstein / 10-Cryptarithmetic (#16379) * enrich(z3,#13410): tranche densite SMT - lectures mesurees 08/09/10 08-Ordonnancement 735->1267 (NP-difficulte + bornes, anatomie du modele 7 vars / 6 disjonctives, lecture glouton 14h vs optimal 8h, lecture Gantt). 09-Einstein 1115->1228 (verification du temoin : 4 indices relus). 10-Cryptarithmetic 879->1290 (anatomie des retenues contre la solution, temoin vs preuve, lecture DANGER). Markdown uniquement (exception C.2), baseline scoped 3 cles. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * revert(z3,#13410): baseline edits — canon des tranches = notebooks only Les tranches de densite (#16007, #16012, #16021, #16343, #16352) ne touchent jamais la baseline : elle est un snapshot Phase-1 ("burn down, do not grow"), ses valeurs ne se retro-fitent pas. Restauration de la version main. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(z3,#13410): repositionne 2 cellules Interpretation apres leur code (check_interp_positioning) Einstein cell#7 et Cryptarithmetic cell#5 etaient parachutees entre deux headers, sans code au-dessus dans leur section (incident PyMC-15 #10580). Deplacees juste apres le code qu'elles interpretent (l'affichage du modele / le solveur SEND+MORE) : sources inchangees, ordre seul, outputs intacts. check_interp_positioning --check : OK repo-wide. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Grain: DEEP/notebook-python -- lane myia-po-2026:CoursIA -- prev: DEEP/tooling #16283
Le livrable
#13410 tranche densité Probas/DecisionTheory/Causal-Bridges (rotation de famille R6) — les 3 notebooks DoWhy du dossier sous le plancher
pedagogy_density1200 c/cellule code, enrichis de 17 nouvelles cellules markdown + 1 extension de conclusion (interprétations ancrées sur les sorties réelles + attendus/anti-pièges des exercices) :DoWhy-3-Decouverte-de-Structure('C','Y','M')= équivalence de Markov en acte ; les estimands 0.81/0.22/1.05 sont tous cohérents avec les données — déficit d'information, pas d'échantillon), attendus/anti-pièges des 3 exercices (le CPDAG ne change pas quand n croît — l'ambiguïté est structurelle ; compromis alpha asymétrique : trop grand = arêtes parasites, trop petit = v-structure perdue et CPDAG plus ambigu ; l'instabilité inter-seeds de LiNGAM gaussien EST le diagnostic — moyenner des réponses incohérentes ne produit aucun DAG)DoWhy-4-Sensibilite-Confounder-Cache[1.116, 1.202]exclut l'effet vrai 0.5 avec confiance — la précision statistique ne dit rien de la justesse causale, l'IC se contracte autour de 1.16 à n infini), lecture des trois nombres de la robustness value (0.677/0.665 = seuils, R² partiel 0.587 = l'échelle), verdictSURVIT(R² réel de U 0.493/0.427 < RV 0.677 — l'immunité chiffrée ET sa portée exacte : ce U-là, pas tous les U possibles), bascule κ (point de retournement κ*=1.55, croisement de l'effet vrai vers κ≈0.4 — la survie du signe n'est pas la survie de la magnitude, la zone honnête de reportage est un intervalle conditionnel), diagramme de bascule, monde B binaire (pourquoi l'épidémiologie parle en RR ; issue rare ⇒ OR≈RR et l'approximation se dégrade avec la banalisation), le piège API du contraste marginal (.value0.041 ≠ RR 1.790 — deux quantités correctes à des questions différentes ; l'attribut lu doit être nommé dans le rapport), contours de bascule (distance à l'annulation en 2D, axes libres là où le κ unique était symétrique par hypothèse), verdict E-valueROBUSTE(2.98/2.04 vs benchmark C 1.16 = 2.57× ; la chaîne estimé > borne > benchmark et ce que toute inversion localise), paires appariées (m=193 discordantes, s=122 vs E=96.5 sous H0 — le coût en puissance et le bénéfice en lisibilité), bornes Rosenbaum (Γ*=1.33 : fragile alors que l'E-value disait robuste — deux adversaires différents, confondeur caché vs biais de sélection des paires), courbe de Rosenbaum (l'intervalle d'ignorance qui avale 0.05 ; à droite du croisement, seul le design décide, plus les données), attendus/anti-pièges des 3 exercices + extension de la conclusion (les trois cadres ne se contredisent pas : ils décrivent des adversaires différents — les reporter côte à côte est la pratique honnête)DoWhy-5-Instrument-FaibleNON_IDENTIFIABLEest une réponse, et embellir le DAG jusqu'à obtenir un estimé = fabriquer la conclusion recherchée, lien direct avec DoWhy-3)Invariant byte-identity (exception C.2 markdown-only)
git diff -U0 \| grep -cE '"execution_count"\|"outputs"\|"cell_type": "code"'= 0 ligne touchée. Aucune re-exécution nécessaire (C.2, modifs uniquement markdown).\nde fin), pas de perte de contenu.Validation locale
pedagogy_density.py: 945 → 1232, 557 → 1203, 1189 → 1445 (le dossier Causal-Bridges passe de 3 à 0 notebooks DoWhy sous plancher ; sortie outil : « Below 1200 c/cell: 0 »).detect_markdown_rendering.py --check: OK sur les 3 (no new ERROR-level violations).twin_pairs.dne couvre aucun DoWhy — pas de rebaseline twin requis).Coordination
variation_adjacency_guard.pyrejouée en local à la création (prev_source merged-sequence).See #13410 (epic densité — résiduel après cette tranche : ~422 notebooks sous plancher toutes familles).
🤖 Generated with Claude Code