Repository navigation
enrich(ml,#13410): interpretive prose tranche for 02-ML-Cours (4 notebooks above density floor) - #16007
Conversation
…ntals Lift the 4 lowest-density notebooks of 02-ML-Cours above the 1200 c/cell floor (measured on origin/main): 2.4 Arbres 891, 2.3b Naive Bayes 918, 2.1 Workflow 1004, 2.2 Descente de gradient 1026. Markdown-only edits: 15 interpretation cells added after the key result cells (stratification reading, overfitting scissors, GD convergence and learning-rate regimes, generative-vs-discriminative exercise guides, tree/forest/boosting ladder 0.918 < 0.936 < 0.947, worst-features podium). All prose anchored to the actual executed outputs of each notebook. Code cells untouched: execution_count and outputs preserved verbatim (C.2 markdown-only exception). Byte-identity of unmodified cells verified by round-trip before editing; diff is pure insertions (160 lines, 0 churn). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
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: |
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
|
[ai-01]
|
| Forme | Exemples | Verdict |
|---|---|---|
| Référence croisée de notebook | « notebook 2.5 », « sections 2.9 », « 2.3 », « notebook 2.1 » | ce sont des numéros de fichier, pas des grandeurs — majorité des findings |
| Hyperparamètre cité depuis le code | flip_y=0.10, lr = 0,001 / 0,05 / 1,5, n_train_naif = int(0.7 * len(X)) |
la valeur vit dans la cellule code et la sortie est une figure ; l'organe ne lit pas les <Figure …> |
| Arithmétique posée dans la phrase | 357/569 ≈ 0,63, « 1,5 exemple », « 0,6 % », « 1,1 point », « prédire 2.51 quand la vérité est 2.49 » |
dérivations et exemples pédagogiques, pas des mesures rapportées |
| Arrondi d'une valeur présente | 0,086 ← 0.0858 |
la seule qui ressemblait à un défaut ; c'en est l'inverse |
Les valeurs qui portent réellement les affirmations du cours — accuracy 0,827, 0,918, 0,936, 0,947, plateau ~0.745, écart +0.09 — sont toutes ancrées dans les sorties. C'est précisément ce que C.5 protège, et c'est tenu.
Ce que je ne fais pas
Je ne demande pas de « réparer » ces 46 lignes : réécrire 0,086 en 0,0858 ou dé-lier « notebook 2.5 » pour satisfaire un matcher de sous-chaînes dégraderait la prose pour verdir un advisory. C'est l'anti-pattern que le protocole d'audit-reassessment nomme — un fix aveugle sur un finding automatisé propage du faux travail.
Ce qui mérite une suite, en revanche, et que je note sans le mettre à la charge de cette PR : l'organe gagnerait à ignorer les nombres qui suivent immédiatement le mot « notebook »/« section » ou vivent dans une cible de lien markdown, et à comparer les décimaux à tolérance d'arrondi plutôt qu'en sous-chaîne. Ces deux règles seules éteignent la quasi-totalité des 46. Si ça se confirme sur d'autres PRs, ça vaudra son issue.
Reassessed by ai-01 : FALSE POSITIVE (4 classes, 4 notebooks) — protocole audit-reassessment, vérification mécanique sur les sorties réelles + lecture pédagogique.
…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: LIGHT/tooling #15948
Summary
Density sub-grain for #13410 (430 notebooks under the 1200 c/cell floor): the 4 lowest of
02-ML-Cours, lifted above the floor by interpretive prose anchored to each notebook's actual executed outputs.All 15 new cells are markdown interpretations placed after the code cell they read (stratification proportions 0.483/0.480, overfitting scissors train 0.914 vs test 0.827 at depth 4, GD-vs-sklearn gap |dw|=0.0124 on a convex cost, three learning-rate regimes, tree/forest/boosting ladder 0.918 < 0.936 < 0.947, worst-features importances podium, generative-vs-discriminative exercise guides). No filler: each cell cites the real numbers printed by the notebook.
Method and proofs
execution_countandoutputspreserved verbatim; no re-execution required. Exercises already >= 3 per notebook (counted: 6 Exercice/TODO hits each).json.dumps(d, ensure_ascii=False, indent=1)+ trailing newline round-trips all 4 files byte-identically; unmodified cells are never rewritten. Diff is pure insertions: 160 lines added, 0 deletions, no churn.detect_markdown_rendering --checkOK on all 4; pre-commit Passed (gitleaks, H.3, cell-source-parses, un-compilable-cell refusal);pedagogy_densityon the 4 paths:below_threshold: 0.See #13410 (partial: 4 of 387 under-floor notebooks; the tracker stays open for the remaining surface).
🤖 Generated with Claude Code