Prédire un nombre
Ce que ce chapitre apporte
- Écrire un problème de prédiction numérique et dire ce que le modèle minimise.
- Trouver la droite des moindres carrés, et comprendre pourquoi c'est elle.
- Interpréter une pente, et savoir ce qu'elle ne dit pas.
- Distinguer RMSE, MAE et coefficient de détermination.
- Lire un graphe des résidus et y reconnaître un modèle mal spécifié.
- Reconnaître l'effet de levier d'un relevé aberrant.
- Étendre la méthode à plusieurs attributs et lire l'incertitude des coefficients.
- Dire pourquoi une prévision hors du domaine observé n'engage à rien.
La question
Une régression cherche une fonction qui, à partir d'attributs , produit une valeur numérique aussi proche que possible de la valeur réelle .
Contrairement au partitionnement, la bonne réponse est connue sur les exemples d'apprentissage : on peut donc mesurer l'erreur.
Pour une catégorie, une réponse est juste ou fausse, et l'on compte les erreurs. Se tromper de peu n'existe pas.
Pour un nombre, aucune prévision n'est exacte, et ce qui compte est l'ampleur de l'écart. Prévoir 27,4 degrés au lieu de 27,5 est un excellent résultat ; prévoir 41 est une faute. La même prévision n'est ni juste ni fausse : elle est plus ou moins loin.
Toute la suite découle de là. Il faut choisir comment résumer une collection d'écarts en un seul nombre, et ce choix n'est pas neutre.
Une droite, et ce qu'on lui demande
Le modèle le plus simple suppose que dépend de de façon affine :
Reste à choisir et . La figure ci-dessous laisse le faire à la main. Chaque trait vertical est l'écart entre un relevé et la droite, et chaque carré est construit sur ce trait : son aire est le carré de l'écart.
Le minimum vaut 0,28, soit 40,55 de moins qu'ici.
Il faut donc rendre les écarts positifs, et deux façons se présentent : la valeur absolue ou le carré.
Le carré l'emporte pour deux raisons. La première est mathématique : la somme des carrés est dérivable partout, ce qui donne une solution en formule fermée, alors que la valeur absolue impose une recherche numérique. La seconde est un choix assumé : le carré pénalise davantage les grands écarts. Une erreur de 10 compte cent fois une erreur de 1, et non dix fois. Le modèle préfère donc dix erreurs moyennes à une seule énorme.
Ce choix se retourne contre soi dès qu'un relevé est faux, et la section sur le levier en montre le prix.
La droite qui minimise est donnée par
La seconde égalité dit que la droite passe par le point moyen , quelle que soit la pente.
Cela mérite d'être souligné : ce minimum est trouvé d'un coup, sans itération et sans départ à choisir, ce qui est un luxe. Aucun autre modèle de ce module n'aura cette chance, et c'est précisément le sujet du chapitre suivant.
Que la droite passe par le point moyen n'est pas un détail non plus. C'est ce qui explique la figure du levier plus bas : deux droites ajustées sur des données presque identiques se croisent au voisinage du centre du nuage, et divergent aux extrémités.
Ce que la pente veut dire
Elle ne dit pas qu'augmenter la charge d'un point ferait monter la température de 0,099 degré. Cette seconde affirmation porte sur une intervention, et rien dans des données observées ne la justifie.
La différence n'est pas une subtilité de langage : c'est elle qui sépare une description d'une décision. Le chapitre 1 l'a déjà montré avec un renversement complet du sens d'une comparaison selon qu'on agrège ou non.
Mesurer l'erreur
RMSE, l'écart quadratique moyen : . Dans l'unité de , et sensible aux grands écarts.
MAE, l'écart absolu moyen : . Dans l'unité de aussi, et beaucoup plus stable.
Coefficient de détermination : . Sans unité. Il compare le modèle à la prévision la plus bête possible, qui consiste à toujours répondre la moyenne.
Le MAE ensuite, et surtout l'écart entre les deux. Le RMSE est toujours supérieur ou égal au MAE, et le rapport entre eux mesure l'irrégularité des erreurs. RMSE 2,6 pour un MAE 2,1 signale des erreurs de tailles comparables ; RMSE 12 pour un MAE 2 signale une poignée de catastrophes noyées dans de bonnes prévisions.
Le en dernier, comme point de comparaison. Un de 0 signifie que le modèle ne fait pas mieux que répondre toujours la moyenne. Un négatif, ce qui arrive sur des données nouvelles, signifie qu'il fait pire.
Il ne dit rien sur la forme de l'erreur, rien sur les données que le modèle n'a pas vues, et rien sur le fait que le modèle serait valable si on agissait sur les variables.
Les deux sections suivantes montrent deux jeux de données où le est identique et où les situations n'ont rien à voir.
Quatre jeux, les mêmes chiffres
Le premier est le seul où une droite est le bon modèle.
Le deuxième est une parabole nette : la relation existe, elle est parfaitement déterministe, et elle n'est pas affine. Y répondre par une droite est une erreur de modèle, pas une erreur de mesure.
Le troisième est une droite parfaite gâchée par un seul relevé faux.
Le quatrième n'a qu'une seule valeur de , sauf pour un point isolé qui détermine à lui seul toute la pente. Retirer ce point rend le calcul impossible.
Aucun résumé numérique ne les distingue. La figure les distingue en une seconde. C'est la démonstration la plus économique qui existe de la règle : regarder avant de calculer.
Un seul relevé faux
Le minimum vaut 25,47, soit 18,01 de moins qu'ici.
La raison est dans la formule. La droite passe toujours par le centre de gravité du nuage, donc un point situé près de ce centre ne peut que pousser la droite vers le haut ou vers le bas. Un point situé loin agit comme un bras de levier : plus il est éloigné en , plus il fait pivoter la droite.
La conséquence pratique est nette : les relevés à vérifier en priorité ne sont pas les plus surprenants en , ce sont ceux qui sont extrêmes en . Ce sont eux qui décident de la pente, et donc de toutes les prévisions.
Plusieurs attributs
Avec attributs, le modèle s'écrit .
En rangeant les attributs dans une matrice dont la première colonne ne contient que des 1, les coefficients qui minimisent la somme des carrés sont la solution de l'équation normale
Une variable qualitative entre par des colonnes indicatrices : une modalité sert de référence, et les autres reçoivent chacune une colonne valant 1 ou 0.
Les données ont été fabriquées par une recette connue : si salle C âge, plus un bruit d'écart-type 2,5. Le modèle ne la connaît pas et doit la retrouver.
Chaque valeur réelle tombe dans la marge estimée. La constante 22 est dans , le coefficient d'âge 0,02 dans , le coefficient de salle C 8 dans .
La salle B ressort à , une marge qui contient zéro. C'est exactement ce que dit la recette : la salle B ne diffère pas de la salle A. Le modèle a su le dire.
L'âge seul donne un de 0,040. Le même âge, accompagné de la salle, participe à un de 0,622. Une variable n'est pas informative en soi : elle l'est en présence des autres.
Ajouter la charge processeur fait passer le de 0,622 à 0,623. Elle n'entre pas dans la recette, et le modèle le montre en ne lui accordant rien. Noter que le a tout de même augmenté : il augmente toujours.
Le RMSE vaut 2,62 pour un bruit de 2,50. Il n'existe aucun modèle capable de descendre au-dessous de 2,50 sur ces données, quelle que soit sa sophistication. Le modèle affine a atteint la limite du problème, et tout effort supplémentaire serait dépensé à apprendre du bruit.
Le calcul tient en trois lignes : l'écart-type des résidus donne la variance résiduelle, et la diagonale de donne la variance de chaque coefficient. Deux écarts-types de part et d'autre délimitent l'intervalle usuel.
Sa lecture est immédiate. Un intervalle qui contient zéro signifie que les données ne permettent pas d'affirmer que la variable joue un rôle, ce qui est très différent d'affirmer qu'elle n'en joue aucun. Un intervalle large signifie qu'il faudrait plus de relevés avant de conclure quoi que ce soit.
Quand ce n'est pas une droite
Un nuage sans forme autour de zéro : le modèle a capté ce qu'il y avait à capter, il ne reste que du bruit.
Une courbe : il manque un terme. Le modèle se trompe de façon systématique et prévisible, ce qui veut dire qu'on pourrait faire mieux sans nouvelle donnée.
Un entonnoir, l'erreur qui grandit avec la prévision : l'ampleur de l'erreur dépend du niveau. Un passage au logarithme règle souvent le problème.
Des points très isolés : des relevés à aller vérifier un par un.
Ici les deux valent 0,69 et 0,87, ce qui est une différence, mais les deux graphes de résidus disent bien davantage : à gauche, une courbe franche ; à droite, un nuage presque plat.
Les deux se trompent d'un facteur deux, et le second n'est pas plus honnête que le premier : il est simplement faux différemment. Aucune sophistication du modèle ne remplace une observation.
La règle est simple à énoncer et constamment violée : un modèle ajusté sur un domaine ne dit rien de ce qui se passe en dehors. C'est précisément dans ces régions extrêmes qu'on aimerait pouvoir prévoir, et précisément là qu'on ne peut pas.
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
m = LinearRegression().fit(X, y)
print(m.coef_, m.intercept_, r2_score(y, m.predict(X)))
Xc = PolynomialFeatures(degree=2, include_bias=False).fit_transform(X)
LinearRegression résout la même équation normale, en passant par une décomposition plus stable numériquement que l'inversion directe. Elle ne fournit pas l'incertitude des coefficients : pour cela, il faut statsmodels, dont le tableau de sortie donne aussi les intervalles.
Exercices type
Pourquoi minimiser la somme des carrés plutôt que la somme des écarts ?
Parce que la somme des écarts s'annule pour une infinité de droites : un écart de compense un écart de , et une droite absurde obtiendrait un score parfait.
Il faut donc une quantité toujours positive, et il y a deux candidates : la valeur absolue et le carré.
Le carré est retenu pour deux raisons. Il est dérivable partout, ce qui donne une solution en formule fermée au lieu d'une recherche numérique. Et il pénalise davantage les grands écarts, ce qui est un choix assumé, pas une nécessité.
Minimiser la somme des valeurs absolues est parfaitement légitime, s'appelle la régression médiane, et résiste beaucoup mieux aux relevés aberrants. Elle demande simplement plus de calcul.
Le R² d'un modèle passe de 0,62 à 0,63 quand on ajoute une variable. Faut-il la garder ?
Non, et le raisonnement compte plus que la réponse.
Le augmente toujours quand on ajoute une colonne, y compris une colonne de nombres tirés au hasard. Une hausse de 0,01 n'est donc pas une preuve d'apport : c'est ce que produit une variable sans aucun rapport.
Trois façons de trancher. Regarder l'intervalle du coefficient : s'il contient zéro, les données ne montrent rien. Regarder l'erreur sur des données que le modèle n'a pas vues, ce qui est le sujet du chapitre sur la généralisation. Ou se demander si la variable a une raison d'être là.
Une variable de plus, c'est aussi une colonne à collecter, à nettoyer et à surveiller, indéfiniment.
Le graphe des résidus dessine une courbe nette. Que faire ?
C'est le signe qu'il manque un terme au modèle : celui-ci se trompe de façon systématique, donc prévisible, donc corrigible.
Trois pistes, dans l'ordre de préférence.
Ajouter le terme qui manque, si l'on sait lequel. Un carré, un produit entre deux variables, une variable qu'on n'avait pas mise.
Transformer la variable expliquée, souvent par un logarithme, quand la relation est multiplicative plutôt qu'additive.
Changer de famille de modèles, si la forme n'est pas atteignable par une combinaison de termes.
Ce qu'il ne faut pas faire, c'est constater le bon et passer à la suite. La courbe des résidus dit qu'on laisse de l'information sur la table, sans avoir besoin de collecter quoi que ce soit de plus.
Quel relevé faut-il vérifier en priorité : celui qui a la température la plus surprenante, ou celui qui a la charge la plus extrême ?
Celui dont la charge est la plus extrême, c'est-à-dire celui qui est extrême en .
La droite passe toujours par le centre de gravité du nuage. Un point proche de ce centre ne peut donc que la déplacer vers le haut ou vers le bas, sans changer la pente. Un point éloigné en agit comme un bras de levier et la fait pivoter.
Le chapitre l'a mesuré : un relevé faux à la limite du domaine change la pente de 55 %, alors que le même écart placé au centre ne la change pas du tout.
Un point surprenant en mais central est visible et peu dangereux. Un point extrême en est souvent discret et décide de tout.
Le RMSE vaut 12 et le MAE vaut 2. Que dit cet écart ?
Qu'il existe une poignée d'erreurs énormes noyées dans une majorité de bonnes prévisions.
Le RMSE est toujours supérieur ou égal au MAE, et le rapport entre les deux mesure l'irrégularité des erreurs. Un rapport proche de 1 signale des erreurs de tailles comparables ; un rapport de 6 signale que quelques cas dominent entièrement la somme des carrés.
Il faut alors aller les regarder, un par un. Trois issues possibles : ce sont des données fausses, et il faut les corriger ; ce sont des cas légitimes que le modèle ne sait pas traiter, et il faut le dire ; ou c'est un régime différent qui mérite son propre modèle.
Dans les trois cas, la moyenne seule aurait caché le problème.
Un modèle a un R² de 0,92 sur ses données. Peut-on l'utiliser pour prévoir à 95 % de charge alors qu'on n'a jamais dépassé 88 % ?
Non. Le mesure l'ajustement sur le domaine observé et ne dit rien de ce qui se passe en dehors.
Le chapitre en donne la mesure : à 95 %, la latence réelle vaut 220 ms, la droite en annonce 89 et le modèle avec un terme au carré 112. Les deux se trompent d'un facteur deux, et le plus sophistiqué n'est pas le plus juste.
La raison est structurelle. Un modèle ajusté résume la forme de la relation là où il y a des points. Au-delà, il prolonge sa propre forme, qui n'a aucune raison d'être la bonne, et rien dans les données ne peut le contredire.
La seule issue honnête est d'aller observer le régime en question, ou de dire que la prévision n'est pas disponible.
1.La droite des moindres carrés passe toujours par…
2.Que mesure le coefficient de détermination R² ?
3.Les quatre jeux d'Anscombe ont la même moyenne, le même écart-type, la même droite et le même R². Que faut-il en conclure ?
4.Un relevé aberrant situé au centre du nuage, en abscisse…
5.Le graphe des résidus dessine une courbe nette. Cela signifie…
6.Ajouter au modèle une colonne de nombres tirés au hasard fait…
La méthode
- Faire la figure avant le calcul, toujours, et avant de lire le moindre résultat.
- Ajuster la droite ou le modèle multiple par les moindres carrés.
- Lire le RMSE en premier, dans l'unité du problème, et le comparer au MAE.
- Tracer les résidus en fonction de la prévision, et y chercher une forme.
- Corriger la spécification si une forme apparaît, avant d'aller chercher des données.
- Lire l'intervalle de chaque coefficient, et se taire sur ceux qui contiennent zéro.
- Vérifier les relevés extrêmes en , qui décident de la pente.
- Refuser toute prévision hors du domaine observé, ou l'annoncer comme telle.
Synthèse
- Une régression prédit un nombre, et l'erreur se mesure en ampleur, pas en juste ou faux.
- Les moindres carrés minimisent la somme des carrés des écarts verticaux ; le carré est un choix, pas une nécessité.
- La solution est donnée par des formules fermées, sans itération, ce qui ne se reproduira plus.
- La droite passe toujours par le point moyen du nuage.
- Une pente est une association observée, jamais l'effet d'une intervention.
- RMSE dans l'unité du problème, MAE plus stable, R² comme point de comparaison ; l'écart RMSE contre MAE trahit les erreurs extrêmes.
- Les quatre jeux d'Anscombe partagent tous leurs résumés numériques et n'ont rien à voir.
- Un relevé faux extrême en fait pivoter la droite ; le même écart au centre ne fait que la décaler.
- L'équation normale étend la méthode à plusieurs attributs, les variables qualitatives entrant par des indicatrices.
- L'intervalle d'un coefficient est aussi important que sa valeur ; un intervalle contenant zéro ne prouve rien.
- Le graphe des résidus est la figure de diagnostic : une forme signale un modèle mal spécifié.
- Le RMSE ne peut pas descendre sous le bruit du problème ; ici 2,62 pour un bruit de 2,50.
- Une prévision hors du domaine observé n'engage à rien, quelle que soit la sophistication du modèle.