Skip to content

fix(notebook,#13944): rendre l'ecart EN-LASSO c15 dérive — 0.007 littéral → max(ecarts_b0) - #13952

Merged
myia-ai-01 merged 1 commit into
mainfrom
feature/cycle-56-pioche
Sep 1, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
feature/cycle-56-pioche

Conversation

@jsboige

@jsboige jsboige commented Sep 1, 2026

Copy link
Copy Markdown
Owner

fix(notebook,#13944): rendre l'écart EN-LASSO c15 dérivé — 0.007 littéral → max(ecarts_b0)

Grain: MED/notebook-python — lane myia-po-2026:CoursIA-2 — prev: MED/guard #13951

Résumé

Issue #13944 : la cellule code 15 du notebook 2.11-Regularisation-Sparse-LASSO.ipynb imprime un littéral +-0.007 codé en dur dans la source du print. La cellule markdown 16, réparée par #13724, annonce désormais ±0.002 (écarts EN−LASSO : −0.002, +0.002, +0.002, +0.001, 0.000, max abs = 0.002). Constat : « sera régénéré à la prochaine exec kernel » invoqué par c.774 est faux — 0.007 est un littéral dans la source du print, pas une valeur calculée. Re-exécution kernel = impression identique, indéfiniment.

Le défaut (mesure)

Sur la sortie commit actuelle (tête b17f24ac90 de #13724 avant merge) :

  • Code c15 : print('=> ElasticNet suit LASSO a +-0.007 pres sur la feature 0 ...') ← littéral.
  • Markdown c16 : ecarts EN-LASSO : -0.002, +0.002, +0.002, +0.001, 0.000, max abs = 0.002 ← mesure réelle.

Comptage sur la tête : 0.002 apparaît 7 fois dans le markdown, 0.007 1 fois — précisément la chaîne imprimée par le code. L'étudiant qui lit la sortie puis le paragraphe voit deux chiffres pour une même grandeur.

Fix appliqué : valeur dérivée de max(ecarts_b0)

1) Collecte des écarts EN−LASSO sur feature 0

Dans la boucle for i, res in enumerate(results_colin):, après l'impression de chaque paire :

ecarts_b0.append(abs(pair_en[0] - pair_lasso[0]))

ecarts_b0 est initialisée avant la boucle (ligne ecarts_b0 = [] insérée juste avant for i, res in enumerate(...)).

2) print final — f-string dynamique

Remplacé :

print('=> ElasticNet suit LASSO a +-0.007 pres sur la feature 0 des paires (EN ~= LASSO ici),')

par :

print(f'=> ElasticNet suit LASSO a +-{max(ecarts_b0):.3f} pres sur la feature 0 des paires (EN ~= LASSO ici),')

Le format :.3f reproduit la précision du markdown c16 (0.002, 3 décimales).

3) Re-exécution Papermill

Papermill SUCCESS, 29/29 cellules, 0 erreur, kernel python3. execution_count 1-10 continu, outputs réels regenérés. Le +-0.002 imprimé coïncide exactement avec le ±0.002 du markdown c16.

Vérifications

python -m papermill 2.11-Regularisation-Sparse-LASSO.ipynb -k python3
Executing: 100%|██████████| 29/29 [00:13<00:00,  2.12cell/s]
returncode: 0

c15 outputs (last 3) :
  '   le design (rho=0.7, p=10, alpha_eq=0.4) ne reproduit PAS l'arbitraire strict du LASSO sur paires.\n'
  '=> ElasticNet suit LASSO a +-0.002 pres sur la feature 0 des paires (EN ~= LASSO ici),\n'
  '   donc aucune redistribution visible -- la difference L1/L2 est ailleurs (shrinkage L2 global),\n'

c15 execution_count: 6 (regénéré)
0 erreur dans les 29 cellules
10/10 code cells avec execution_count (1-10 continu)

Pre-commit (H.3 — refuse un-executed notebooks + #13326 — refuse un-compilable cell source) : Passed.

Scope

Fichier Statut Diff
MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/2.11-Regularisation-Sparse-LASSO.ipynb modified +6/-4 (3 lignes de code c15 : init ecarts_b0 = [], ecarts_b0.append(...) dans la boucle, print(f'...max(ecarts_b0):.3f}...'))

Total : 1 fichier, +6/-4, 1 sujet unique (largement sous les seuils 3000/15).

Compliance

Refs #13944 (acceptance satisfaite : le +-0.007 littéral est éliminé ; le print affiche désormais max(ecarts_b0) calculé sur les 5 tirages ; la valeur +-0.002 coincide avec le markdown c16 ; notebook re-exécuté via papermill avec 0 erreur et execution_count 1-10 continu).

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 4.3s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.1s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 5.0s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.8s
Search-1-StateSpace.ipynb ✅ SUCCESS 3.8s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.6s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 25.5s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 6.5s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

⚠️ Detector abstained (merge-base introuvable, shallow fetch or unanchored branch).

c.415 (#11873): scope = notebooks CHANGED in this PR, not the whole corpus.
See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 pathologie.

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 10
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

jsboige added a commit that referenced this pull request Sep 1, 2026
…-serie dediee

Grain: MED/docs-structure -- lane myia-po-2026:CoursIA-2 -- prev: MED/notebook-python #13952

Issue #13777 : les dix notebooks comparatifs MGS-22 a MGS-31 polluaient
la serie Part4-Metaheuristics generale. La campagne comparative devient
une sous-serie identifiable 'MGS-vs-mealpy/' avec son propre README francais,
sans perdre la progression pedagogique ni les preuves d'execution.

Deplacement preserve par 'git mv' (historique git --follow intact) :
- 10 notebooks .ipynb vers Part4-Metaheuristics/MGS-vs-mealpy/
- README sous-serie (108 lignes) avec question directrice, protocole commun,
  table des 9 paires, ordre de lecture, distinction benchmark diagnostique /
  amelioration MGS

Modifications doc :
- Part4-Metaheuristics/README.md : table des 10 notebooks MGS-22..31 reduite
  a une ligne sommaire + lien sous-serie (verification catalogue byte-identique
  via catalog-pr-hygiene, README parent non touche dans ses blocs catalogue)
- Search/README.md ligne 625 : ajout du lien vers MGS-vs-mealpy sous-serie
- Part4 README ligne 7 : raccourcissement de la description comparative
  massive (verdict complet preserve dans le README sous-serie, lien double)
- Part4 README ligne 290 : chemin MGS-28 (BareBonesPSO-vs-Mealpy) corrige

Fix liens casses (decouverts par check_notebook_navlinks --family Search) :
- MGS-22 cell 0 : '[Jusqu'ici](MGS-6-Benchmarks.ipynb)' -> '../MGS-6-Benchmarks.ipynb'
- MGS-22 cell 0 : '[Sudoku-05](../../Sudoku/Sudoku-05-PSO-Csharp.ipynb)' ->
  '../../../Sudoku/Sudoku-05-PSO-Csharp.ipynb' (lien latent casse avant
  deplacement : '../../' ne resolvait pas depuis Part4-Metaheuristics/, le
  chemin correct etait deja MyIA.AI.Notebooks/Sudoku/)
- MGS-5 cell 33 : lien '[MGS-22 - MGS vs mealpy](MGS-22-MGS-vs-Mealpy.ipynb)' ->
  'MGS-vs-mealpy/MGS-22-MGS-vs-Mealpy.ipynb' (MGS-22 est dans le meme dossier
  apres deplacement)

Acceptance :
- check_notebook_navlinks --family Search --quiet : 0 lien casse (142 notebooks)
- check_notebook_navlinks --family Search --check : baseline OK, pas de regression
- 10 fichiers reconnus comme renames par git status (R), pas A+D
- Preservation substance : question directrice + protocole + table des 9 paires
  + ordre de lecture dans README sous-serie
- README parent preserve dans ses sections 1-19 et 21 (le coeur MGS)
- Aucune modification des outputs notebooks (re-execution strictement interdite
  par regle C.2)
- Aucune modification du catalogue (catalog-pr-hygiene : catalogue byte-identique
  a origin/main)
@myia-ai-01
myia-ai-01 merged commit 675b020 into main Sep 1, 2026
60 of 62 checks passed
myia-ai-01 pushed a commit that referenced this pull request Sep 2, 2026
…-serie dediee (#13959)

Grain: MED/docs-structure -- lane myia-po-2026:CoursIA-2 -- prev: MED/notebook-python #13952

Issue #13777 : les dix notebooks comparatifs MGS-22 a MGS-31 polluaient
la serie Part4-Metaheuristics generale. La campagne comparative devient
une sous-serie identifiable 'MGS-vs-mealpy/' avec son propre README francais,
sans perdre la progression pedagogique ni les preuves d'execution.

Deplacement preserve par 'git mv' (historique git --follow intact) :
- 10 notebooks .ipynb vers Part4-Metaheuristics/MGS-vs-mealpy/
- README sous-serie (108 lignes) avec question directrice, protocole commun,
  table des 9 paires, ordre de lecture, distinction benchmark diagnostique /
  amelioration MGS

Modifications doc :
- Part4-Metaheuristics/README.md : table des 10 notebooks MGS-22..31 reduite
  a une ligne sommaire + lien sous-serie (verification catalogue byte-identique
  via catalog-pr-hygiene, README parent non touche dans ses blocs catalogue)
- Search/README.md ligne 625 : ajout du lien vers MGS-vs-mealpy sous-serie
- Part4 README ligne 7 : raccourcissement de la description comparative
  massive (verdict complet preserve dans le README sous-serie, lien double)
- Part4 README ligne 290 : chemin MGS-28 (BareBonesPSO-vs-Mealpy) corrige

Fix liens casses (decouverts par check_notebook_navlinks --family Search) :
- MGS-22 cell 0 : '[Jusqu'ici](MGS-6-Benchmarks.ipynb)' -> '../MGS-6-Benchmarks.ipynb'
- MGS-22 cell 0 : '[Sudoku-05](../../Sudoku/Sudoku-05-PSO-Csharp.ipynb)' ->
  '../../../Sudoku/Sudoku-05-PSO-Csharp.ipynb' (lien latent casse avant
  deplacement : '../../' ne resolvait pas depuis Part4-Metaheuristics/, le
  chemin correct etait deja MyIA.AI.Notebooks/Sudoku/)
- MGS-5 cell 33 : lien '[MGS-22 - MGS vs mealpy](MGS-22-MGS-vs-Mealpy.ipynb)' ->
  'MGS-vs-mealpy/MGS-22-MGS-vs-Mealpy.ipynb' (MGS-22 est dans le meme dossier
  apres deplacement)

Acceptance :
- check_notebook_navlinks --family Search --quiet : 0 lien casse (142 notebooks)
- check_notebook_navlinks --family Search --check : baseline OK, pas de regression
- 10 fichiers reconnus comme renames par git status (R), pas A+D
- Preservation substance : question directrice + protocole + table des 9 paires
  + ordre de lecture dans README sous-serie
- README parent preserve dans ses sections 1-19 et 21 (le coeur MGS)
- Aucune modification des outputs notebooks (re-execution strictement interdite
  par regle C.2)
- Aucune modification du catalogue (catalog-pr-hygiene : catalogue byte-identique
  a origin/main)
@jsboige
jsboige deleted the feature/cycle-56-pioche branch September 2, 2026 13:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants