SPB Git

# Chapitre 37 — Apprentissage automatique et explicabilité : bilan de rédaction (2026-10-31)

# Compteurs

  • Prose : ≈ 12 800 mots (fichier manuscript/chapters/ch37.tex, 14 400 mots LaTeX compris) ; 41 pages compilées (chapitre + solutions + bibliographie du chapitre).
  • Figures : 7 PDF Matplotlib (ch37-fig-arbre, -apprentissage, -erreurs, -predit-observe, -shap-beeswarm, -pdp, -waterfall), toutes synthétiques (cas 1, graine 20261031), produites par analysis/python/figures/ch37_figures.py ; inscrites dans verification/chapters/ch37-figures.csv.
  • Tableaux : 8 (familles de modèles et hyperparamètres ; comparaison 5 modèles × 3 validations ; validation prospective et remèdes ; un secteur exclu ; importances SHAP/permutation ; prédiction du sujet + cascade SHAP ; scénario non linéaire ; sensibilité aux hyperparamètres).
  • Équations numérotées : 15 (risque, biais-variance, arbre, critère de division, variance d'une forêt, boosting, gradient fonctionnel, objectif et gain XGBoost, validation croisée, métriques, valeur de Shapley, efficacité SHAP, dépendance partielle, importance par permutation) ; 1 définition (valeur de Shapley) ; 1 exemple intégral en cinq étapes.
  • Exercices : 7 (niveaux 1, 1, 2, 2, 2, 3, 3) ; solutions détaillées dans solutions/ch37.tex, chiffres calculés par ch37_ml.exercices et testés (test_solutions_exercices).
  • Encadrés : objectifs, synthetique, exemple, quebec (modèles, rôle et contestation), pratique, erreurs (9), limites (6), synthese (6).
  • Citations : 25 clés, toutes présentes dans references/library.bib (vérifié par grep) ; aucune nouvelle clé citée par \parencite.

# Contrôles

  • tools/compile_chapter.sh 37 → voir la section « Sorties des contrôles » ci-dessous.
  • python3 -m pytest -q analysis/python/tests/test_ch37.py → 10 tests (reproductibilité des plis du ch. 18, référence hédonique, comparaison aléatoire, validation spatiale et temporelle, un secteur exclu, scénario non linéaire, SHAP, sujet et PDP, courbes et sensibilité, solutions des exercices).
  • python3 tools/check_manuscript.py --no-log : aucun problème imputable au ch. 37 (les 15 signalés concernent ch41, ch46, ch48).
  • PDF inspecté (planches de pages à 45 dpi + figures à 110 dpi) : corrections apportées après la première compilation (étiquettes de l'arbre, position des annotations, COD sous les boîtes, tableaux rétrécis).
  • Convention \cref sans article respectée ; labels à deux chiffres (eq:37:, tab:37:, fig:37:, sec:37:, ex:37:k, def:37:shapley, ex:37:ml-cas1).

# Modèles, données et cohérence inter-chapitres

  • traite.cas1.hedonique n'est pas redéfini ; traite/ inchangé. Les dix plis aléatoires sont ceux de ch18_hedonique.validation_croisee (test test_plis_identiques_au_chapitre_18) ; l'hédonique reproduit exactement le ch. 18 : RMSE 40 889 $, COD 6,83, PRD 1,007, MdAPE 5,68 (ch. 18 : 5,67 avec le facteur de Duan en échantillon), prédiction du sujet 637 953 $.
  • Boosting de référence = GradientBoostingRegressor (scikit-learn 1.6 ; prof. 2, ν 0,03, 1 200 arbres, sous-éch. 80 %, feuilles ≥ 5) ; XGBoost 3.2 en variante. Gotcha : shap 0.48 ne lit pas le format de modèle de xgboost 3.2 (ValueError: could not convert string to float: '[1.3072698E1]' sur base_score) → TreeSHAP appliqué au GBM scikit-learn ; déclaré dans le chapitre (encadré synthétique et limites).
  • Gotcha : avec min_samples_leaf=1, la feuille extrême du temps est estimée sur une poignée de ventes et le biais prospectif du boosting atteint −13,4 % (−3,4 % avec feuilles ≥ 5) ; inchangé en validation aléatoire. Utilisé comme enseignement (tab. 37.3).
  • Résultats clés (plis aléatoires) : hédonique 0,0839 / COD 6,83 ; XGBoost 0,0921 / 7,33 ; boosting 0,0931 / 7,42 ; forêt 0,1067 / 8,64 (PRB −0,196) ; arbre 0,1468 / 11,63. Spatial stratifié : 7,00 / 7,53 / 7,62 / 8,96 / 12,12. Prospectif 2026 : biais −1,0 / −2,9 / −3,4 / −6,0 / −8,5 %. Un secteur exclu : hédonique COD 10,44 (Buck +23,4 %, M-A +26,1 %), boosting 8,59. Scénario (+0,12 qualité≥4 & âge≥40 ; −0,10 âge 25-45) : hédonique 8,15, boosting 7,46, XGBoost 7,40, respécifié 6,85. Sujet : 637 953 / 613 976 / 605 825 / 586 818 / 549 573 $. Souches (prof. 1) = meilleur boosting (0,0887) : cohérent avec une loi additive.
  • Temps d'exécution : ch37_ml.main() ≈ 3 min (validation 5 modèles × 3 schémas, grille de 13 réglages, courbes d'apprentissage, permutation, validation imbriquée) ; les tests partagent une fixture de module.

# Points non vérifiés ou partiellement vérifiés (voir ch37-claims.csv)

  1. CLM-37-08 : aucune décision du TAQ sur l'admissibilité d'un modèle d'apprentissage en évaluation foncière identifiée — constat de recherche documentaire (CanLII inaccessible), présenté comme tel dans l'encadré Québec, non_verifie.
  2. CLM-37-12 : portée des conclusions de Mayer et al. (2019), Bogin & Shui (2020) et McCluskey et al. (2013) résumée d'après notes-D (articles non relus en texte intégral pour ce chapitre), partiellement_verifie.
  3. CLM-37-05 : numérotation VPS 5 du Red Book RICS lue sur la page RICS, PDF non téléchargé (notes-C §5).
  4. Seuils IAAO : édition 2013 du Standard on Ratio Studies (copie tierce, révision annoncée) ; Standard on AVMs 2018 paraphrasé, non reproduit.
  5. Hyperparamètres de référence choisis sur la grille évaluée sur les mêmes plis (optimisme déclaré ; la validation imbriquée de l'exercice 37.7 d montre un optimisme nul pour la profondeur).

# Nouvelles références (non citées, references/lib-ch37.bib)

shapley1953 (Princeton, DOI 10.1515/9781400881970-018) et robertsEtAl2017 (Ecography 40(8), DOI 10.1111/ecog.02881), vérifiées par Crossref ; données en notes de bas de page avec DOI dans le chapitre. Après fusion dans library.bib, remplacer ces deux notes par \parencite{} (repérables par « vérifié par l'API Crossref le 31 octobre 2026 »). Registre : ch37-registry.csv (SRC-37-001 à 003).

# Suggestions pour l'harmonisation

  • Ch. 18 : la synthèse dit « COD 6,8 en validation croisée » et le tableau 18.7 « 6,83 » ; ce chapitre cite 6,83 partout.
  • Ch. 9 / ch. 20 : la régressivité des modèles d'arbres (PRB −0,09 à −0,20) peut servir d'exemple d'iniquité verticale « de modèle » distincte de l'artefact mécanique du PRB décrit aux ch. 9 et 18.
  • Ch. 35 : le boosting détendancé (indice séparé du modèle de niveau) renvoie à la logique indice/niveau des AVM ; un renvoi croisé depuis le ch. 35 serait utile.
  • Ch. 19 : l'exercice 37.6 c (surface polynomiale des coordonnées vs indicatrices, extrapolation à −26 % sur Aylmer) complète la discussion GWR/krigeage ; renvoi possible.
  • Ch. 38 : les coordonnées fictives et les blocs k-moyennes (plis_spatiaux) peuvent être réutilisés pour une carte des blocs.
  • Glossaire : \motcle posés pour risque de prédiction, arbre de régression, forêt aléatoire, boosting, taux d'apprentissage, pseudo-résidus, validation croisée, fuite de données, surapprentissage, arrêt précoce, explicabilité, valeurs SHAP, TreeSHAP, dépendance partielle, importance par permutation, modèle d'évaluation automatisé.

# Sorties des contrôles (dernière exécution, 2026-10-31)

  • python3 -m pytest -q analysis/python/tests/test_ch37.py → 10 passed in 212.77s (0:03:32).
  • tools/compile_chapter.sh 37 → OK ch37 : 41 pages, 0 references/citations non definies, 0 overfull hbox -> build/ch37/ch37.pdf.
  • python3 tools/check_manuscript.py --no-log → 15 problèmes signalés, tous relatifs à ch41/ch46/ch48 (figures non inscrites) ; aucun pour ch37.
Files · main
Menu

Theme