% Solutions du chapitre 37 — Apprentissage automatique et explicabilité % Chiffres recalculés par analysis/python/cases/ch37_ml.py (fonction exercices) et vérifiés par analysis/python/tests/test_ch37.py. \begin{solution}{ex:37:1}{Une division d'arbre à la main} (a) Les logarithmes des huit prix, dans l'ordre des superficies (70, 99, 128, 156, 160, 170, 221, \msq{241}), sont 12,478 ; 12,744 ; 12,975 ; 13,256 ; 13,057 ; 12,910 ; 13,210 ; 13,106. Leur moyenne est 12,967 et la somme des carrés des écarts au nœud racine vaut $\mathit{SCE}_0 = 0{,}462$. (b) Les sept seuils candidats sont les milieux 84,5 ; 113,5 ; 142 ; 158 ; 165 ; 195,5 et \msq{231}. Pour le seuil de \msq{113{,}5}, le fils gauche contient les deux premières ventes (moyenne 12,611, somme des carrés $0{,}5\,(12{,}744 - 12{,}478)^2 = 0{,}035$) et le fils droit les six autres (moyenne 13,086, somme des carrés 0,089) : $\mathit{SCE} = 0{,}124$, soit un gain de $0{,}462 - 0{,}124 = 0{,}338$, le plus grand des sept (le seuil de 84,5 donne un gain de 0,273, celui de 142 de 0,264, celui de 195,5 de 0,097 ; les autres sont inférieurs à 0,09). La meilleure division sépare donc les maisons de moins de \msq{113{,}5} des autres ; les constantes prédites sont $\exp(12{,}611) \approx \dollars{300000}$ à gauche et $\exp(13{,}086) \approx \dollars{482000}$ à droite. On remarque que les six ventes de droite, de 128 à \msq{241}, sont prédites au même prix alors que leurs prix observés vont de 404 500 à \dollars{571500} : avec huit observations, un arbre ne peut ni capter l'effet de l'âge et de la qualité qui expliquent ces écarts, ni représenter la croissance continue du prix avec la superficie. (c) Le critère \eqref{eq:37:division} ne dépend que de l'\emph{ordre} des observations selon la variable de division et des valeurs de $y$ dans les deux groupes ; une transformation strictement croissante (logarithme, conversion en pieds carrés) conserve l'ordre et donc les groupes, les sommes de carrés et le gain. Seul le seuil affiché change (il devient $\ln 113{,}5$ ou \pisq{1222}). C'est pourquoi les arbres n'exigent aucune transformation des variables, contrairement au modèle hédonique, où entrer la superficie en logarithme ou en niveau change la forme de la fonction estimée. \end{solution} \begin{solution}{ex:37:2}{Variance d'une forêt} (a) Avec $\sigma_a^2 = 0{,}12^2 = 0{,}0144$ et $\rho = 0{,}30$, l'\cref{eq:37:variance-foret} donne $0{,}3 \times 0{,}0144 + 0{,}7 \times 0{,}0144 / B$ : 0,01440 pour $B = 1$ ; 0,005328 pour $B = 10$ ; 0,004421 pour $B = 100$ ; 0,004340 pour $B = 500$. La limite est $\rho\sigma_a^2 = 0{,}00432$, soit un écart-type de 0,0657 : moyenner un nombre infini d'arbres corrélés à 0,30 ne divise l'écart-type que par $1/\sqrt{0{,}3} = 1{,}83$, non par $\sqrt{B}$. (b) Le second terme vaut 1 \% du premier lorsque $(1 - \rho)/B = 0{,}01\,\rho$, soit $B = (1 - \rho)/(0{,}01\,\rho) = 0{,}7 / 0{,}003 = 233$ arbres. Au-delà de quelques centaines d'arbres, ajouter des arbres ne sert plus à rien, ce que le \cref{tab:37:sensibilite} confirme (100 et 500 arbres : erreurs de 0,1065 et 0,1067). (c) Lorsque toutes les variables sont candidates à chaque division, tous les arbres choisissent la superficie à la racine et des divisions voisines ensuite : ils se ressemblent et $\rho$ est élevé. En ne tirant que $m < p$ variables à chaque division, certains arbres sont forcés de diviser d'abord sur l'âge, la localisation ou la qualité, ce qui les décorrèle et abaisse le plancher $\rho\sigma_a^2$. On y perd un peu de qualité individuelle : chaque arbre, privé parfois de la meilleure variable, a un biais et une variance propres plus élevés ($\sigma_a^2$ croît). L'optimum de $m$ est celui qui minimise $\rho\sigma_a^2$, et il se trouve par validation ; sur le cas 1, 50 \% des variables fait à peine mieux que 100 \%, et 33 \% avec des feuilles de cinq fait moins bien. \end{solution} \begin{solution}{ex:37:3}{Le boosting pas à pas} (a) Le pseudo-résidu initial est $y - F_0 = 0{,}20$. Chaque itération fait $F_m = F_{m-1} + \nu\,(y - F_{m-1})$ : $F_1 = 12{,}80 + 0{,}1 \times 0{,}20 = 12{,}820$ (résidu 0,180) ; $F_2 = 12{,}838$ (résidu 0,162) ; $F_3 = 12{,}8542$ (résidu 0,1458). (b) Par récurrence, $y - F_m = (1 - \nu)(y - F_{m-1}) = (1 - \nu)^m (y - F_0)$ ; le résidu décroît géométriquement. Il atteint 1 \% de sa valeur initiale lorsque $(0{,}9)^m = 0{,}01$, soit $m = \ln 0{,}01 / \ln 0{,}9 = 43{,}7$, donc 44 itérations. (c) Avec $\nu = 1$, $F_1 = y$ dès la première itération : le modèle reproduit exactement chaque observation, bruit compris, et l'erreur d'entraînement est nulle. Sur des données bruitées, c'est le surapprentissage parfait ; le rétrécissement $\nu < 1$ force chaque arbre à n'expliquer qu'une fraction des résidus, de sorte que le signal, partagé par de nombreuses observations, s'accumule au fil des itérations tandis que le bruit, propre à chacune, n'est jamais ajusté qu'en partie avant l'arrêt. (d) Sur la \cref{fig:37:apprentissage}, l'erreur de validation décroît tant que les arbres ajoutent du signal, puis remonte lorsqu'ils ajustent le bruit ; le minimum est l'arrêt précoce. Plus $\nu$ est petit, plus le minimum est tardif et plat, ce qui rend le choix du nombre d'arbres moins critique ; plus les arbres sont profonds, plus chaque itération absorbe de bruit et plus le minimum est précoce (367 itérations pour la profondeur 4 contre 730 pour la profondeur 2). \end{solution} \begin{solution}{ex:37:4}{Valeurs de Shapley à trois joueurs} (a) Dans l'ordre $S, Q, L$, les contributions marginales sont $v(S) - v(\varnothing) = 60$ pour $S$, $v(S,Q) - v(S) = 40$ pour $Q$ et $v(S,Q,L) - v(S,Q) = 30$ pour $L$. Les six ordres donnent, pour $(S, Q, L)$ : $S,Q,L \to (60, 40, 30)$ ; $S,L,Q \to (60, 45, 25)$ ; $Q,S,L \to (70, 30, 30)$ ; $Q,L,S \to (85, 30, 15)$ ; $L,S,Q \to (65, 45, 20)$ ; $L,Q,S \to (85, 25, 20)$. (b) La moyenne des six contributions est la valeur de Shapley : $\phi_S = (60 + 60 + 70 + 85 + 65 + 85)/6 = 70{,}83$ ; $\phi_Q = (40 + 45 + 30 + 30 + 45 + 25)/6 = 35{,}83$ ; $\phi_L = (30 + 25 + 30 + 15 + 20 + 20)/6 = 23{,}33$ (en milliers de dollars). La somme vaut $130{,}0 = v(S, Q, L)$ : l'axiome d'efficacité est vérifié. (c) Oui. La superficie et la qualité ont une interaction positive : $v(S,Q) = 100 > v(S) + v(Q) = 90$, c'est-à-dire qu'une grande maison de qualité élevée vaut plus que la somme des deux effets séparés. La superficie et la localisation aussi ($85 > 80$). La qualité et la localisation ont une interaction négative ($45 < 50$). L'ensemble est sur-additif : $130 > 60 + 30 + 20 = 110$. (d) $v(S) = 60$ est la contribution de la superficie lorsqu'elle est la \emph{seule} variable connue ; $\phi_S = 70{,}83$ est sa contribution moyenne sur tous les contextes, y compris ceux où la qualité et la localisation sont déjà connues et où, en raison des interactions positives, la superficie apporte davantage (jusqu'à 85). La valeur de Shapley répartit équitablement les interactions entre les variables qui y participent, et c'est ce qui la distingue d'une simple contribution marginale ou d'un coefficient de régression : dans un modèle additif sans interaction, les deux coïncideraient. \end{solution} \begin{solution}{ex:37:5}{Métriques d'un AVM} (a) Les ratios prédit/prix sont 1,074 ; 0,974 ; 0,968 ; 1,052 ; 0,962 ; 1,055 ; 0,962 ; 1,072 ; 0,968 ; 0,937. Les erreurs en logarithme ont une racine quadratique moyenne de 0,0503 ; l'erreur absolue moyenne est de 4,82 \% et l'erreur absolue médiane de 4,51 \%. (b) La médiane des ratios est 0,971 et leur moyenne 1,002 ; le COD vaut $100 \times 0{,}0429 / 0{,}971 = 4{,}42$ ; le ratio pondéré par les prix est $\sum V / \sum P = 5\,406\,000 / 5\,428\,000 = 0{,}996$, d'où un PRD de $1{,}002 / 0{,}996 = 1{,}006$ ; le PRB, pente de la régression de $(r_i - 0{,}971)/0{,}971$ sur $\log_2$ de la valeur de référence, est de $-0{,}034$ (erreur-type 0,040). (c) Le niveau (0,971) est dans la plage de 0,90 à 1,10, le PRD (1,006) dans celle de 0,98 à 1,03 et le PRB ($-0{,}034$, non significatif) dans celle de $\pm 0{,}05$ ; mais le COD de 4,42 est \emph{inférieur} à 5,0, et le Standard on Ratio Studies indique qu'un COD si bas peut signaler que les valeurs ont été ajustées sur les prix des ventes connues (\emph{sales chasing}) ou que les ventes de validation ont servi à la calibration : un AVM qui atteint un COD de 4 sur des ventes qu'il n'a jamais vues est très rare sur un marché résidentiel, et la première hypothèse à écarter est la fuite de données. (d) Il manque la preuve que les dix ventes sont hors échantillon et postérieures à la calibration, la taille (dix ventes ne donnent qu'un COD très imprécis, et aucune stratification par secteur ou par tranche de valeur n'est possible), le schéma de validation (aléatoire, spatial, prospectif), les intervalles de confiance du PRD et du PRB qu'exige la norme sur les AVM, et la description du modèle et de ses données. Dix chiffres sont une illustration, non une validation. \end{solution} \begin{solution}{ex:37:6}{Validation spatiale et extrapolation} (a) Les COD du script sont, pour l'hédonique, 6,83 (aléatoire), 7,00 (blocs spatiaux) et 10,44 (un secteur exclu) ; pour la forêt, 8,64, 8,96 et 10,21 ; pour le boosting, 7,42, 7,62 et 8,59. Le passage aux blocs spatiaux coûte peu à l'hédonique (0,17 point), dont la structure additive ne dépend pas du voisinage immédiat, et un peu plus aux modèles d'arbres (0,20 et 0,32), qui avaient tiré de la proximité des ventes d'apprentissage une partie de leur performance aléatoire. L'exclusion d'un secteur fait exploser le COD de l'hédonique (+3,4 points), parce qu'il n'a aucune information sur le niveau du secteur absent, et dégrade moins le boosting (+1,0), qui en déduit un niveau des coordonnées. (b) Lorsque Buckingham est exclu, son indicatrice est retirée et ses ventes sont prédites au niveau de Hull ; le biais moyen de la prédiction est donc l'opposé de la prime omise, $-\ln(395\,000/475\,000) = +0{,}184$, plus le bruit d'échantillonnage : le script donne $+0{,}234$ pour Buckingham et $+0{,}261$ pour Masson-Angers (prime vraie $-0{,}204$), des écarts de 0,05 qui s'expliquent par les 42 et 47 ventes de ces secteurs et par la colinéarité entre leur position et la distance au centre. Le boosting situe ces deux secteurs l'un par l'autre (coordonnées voisines, grande distance au centre) et prédit un niveau intermédiaire proche du bon ($-0{,}6$ \% et $+7{,}2$ \%) ; pour Gatineau et Aylmer, en revanche, la position géographique ne distingue pas le secteur de ses voisins et le boosting prédit trop bas ($-6{,}8$ et $-7{,}1$ \%), là où l'hédonique, grâce à un secteur de référence par hasard voisin en niveau (Gatineau et Hull ont des médianes proches), fait bien. (c) En remplaçant les quatre indicatrices par un polynôme de degré 2 en coordonnées (en kilomètres : $x$, $y$, $x^2$, $y^2$, $xy$), l'hédonique acquiert la capacité d'interpoler un niveau de prix pour un secteur absent à partir de ses voisins, comme le font les arbres. En validation aléatoire, cette variante fait presque aussi bien que la référence (RMSE 0,0859 contre 0,0839 ; COD 6,99 contre 6,83) : la surface lisse décrit convenablement les cinq niveaux de secteur. En exclusion d'un secteur, elle corrige les deux cas que les indicatrices rataient, Buckingham ($-6{,}6$ \% au lieu de $+23{,}4$) et Masson-Angers ($+1{,}3$ \% au lieu de $+26{,}1$), parce que la surface, estimée sur les quatre autres secteurs, se prolonge vers l'est en descendant ; mais elle produit un biais de $-26{,}4$ \% sur Aylmer, à l'extrémité ouest, où le polynôme estimé sans ce secteur extrapole une pente qui n'a rien à voir avec la prime de $+11$ \%, et le COD global reste à 10,43, identique à celui des indicatrices (10,44). Les arbres, eux, extrapolent par un plateau et se trompent de $-7$ \% sur Aylmer. La leçon est double : la différence de comportement hors support tient moins à la famille de modèles qu'à la \emph{représentation} de la localisation (indicatrices, coordonnées, surface), et toute représentation extrapole selon sa propre forme, par paliers pour les indicatrices, par plateaux pour les arbres, par la courbure du polynôme pour la surface, cette dernière étant la plus dangereuse au bord du territoire. Le choix de la représentation est une hypothèse que l'analyste doit déclarer et valider selon l'usage prévu (le \cref{ch:19} compare ces représentations avec la régression géographiquement pondérée et le krigeage). \end{solution} \begin{solution}{ex:37:7}{Découvrir, puis établir} (a) La dépendance partielle de l'âge du boosting estimé sur $\ln P^\dagger$ montre un creux d'environ dix points entre 25 et 45 ans, bordé par deux marches, que le polynôme hédonique ne peut pas reproduire (\cref{fig:37:pdp}, droite). Les courbes ICE séparées par qualité révèlent l'interaction : pour les maisons de qualité 4, la courbe remonte d'une dizaine de points au-delà de 40 ans, tandis que celle des maisons de qualité 2 continue de descendre ; la moyenne des deux (la dépendance partielle) ne montre qu'une remontée atténuée, ce qui illustre pourquoi les ICE complètent la PDP. (b) Dans le scénario, la paire âge-qualité devient la première interaction SHAP (valeur moyenne 0,0068), suivie de superficie-latitude (0,0034) et de superficie-mois (0,0025) ; dans le cas de base, âge-qualité n'apparaît pas en tête et la plus forte paire, superficie-latitude, vaut 0,0031. L'interaction nouvelle double la plus forte interaction du cas de base ; c'est le signal qu'un terme croisé manque au modèle paramétrique. (c) Le modèle respécifié avec les seuils vrais (qualité $\ge 4$ et âge $\ge 40$ ; âge de 25 à 45) obtient un COD de 6,85 et une erreur de 0,084, contre 7,46 pour le boosting et 8,15 pour l'hédonique de référence ; il estime la prime à 0,129 (erreur-type 0,012) et le mur à $-0{,}092$ (0,008). Avec des seuils lus sur les courbes et décalés de quelques années, l'indicatrice du mur classe mal les ventes situées dans les bandes d'erreur : 56 ventes sur 600 avec les bornes 22 à 48 ans, 51 avec les bornes 28 à 42 ans. Le coefficient du mur est atténué ($-0{,}079$ et $-0{,}068$ au lieu de $-0{,}092$ avec les bornes vraies) et le COD remonte à 7,02 et 7,18, soit de deux à trois dixièmes de point au-dessus du modèle aux bornes vraies (6,85), tout en restant meilleur que le boosting (7,46) : une spécification approximativement bonne bat encore un modèle souple, parce que l'essentiel de la structure est capté avec deux paramètres. Le script (\texttt{exercices}, clé \texttt{7c}) imprime ces chiffres ; le lecteur vérifiera ses propres bornes. (d) La validation imbriquée choisit la profondeur dans une boucle interne (trois plis sur les neuf dixièmes d'apprentissage de chaque pli externe, profondeurs 1 à 3) puis évalue le modèle retenu sur le pli externe. Sur le cas de base, la boucle interne retient la profondeur 1 dans les dix plis externes, et l'erreur externe est de 0,0887 (COD 7,22), identique au dix-millième près à la valeur rapportée pour les souches au \cref{tab:37:sensibilite} : l'optimisme de la sélection non imbriquée est ici nul, parce que la grille est petite et que la différence entre profondeurs est nette et stable d'un pli à l'autre. Il serait plus grand avec une grille fine sur plusieurs hyperparamètres et un petit échantillon ; la règle est de toujours déclarer quelles données ont servi à choisir et lesquelles à évaluer. \end{solution}