ML Atlas

Le machine learning en partant de zéro · Leçon 1.5 · 6 sur 33 leçons prêtes · 10 min

Régression linéaire : ajuster une droite

En bref

La régression linéaire trace la droite qui manque le moins les données. Sur des données de diabète, l’EQM désigne la meilleure droite.

Échauffement Deux questions de leçons précédentes. Une minute, sans jamais bloquer la leçon.
De la leçon 1.4 : Plus proches voisins : le modèle le plus simple Comment kNN répond-il à une question sur un nouveau cas ?

Voir la réponse

Bonne réponse : Il prend les k exemples d’apprentissage les plus proches et leur majorité

kNN n’a pas de règle : les k exemples stockés les plus proches votent. Le fond du lab montre le résultat de ce vote en chaque point.

De la leçon 1.3 : La référence : à quoi comparer votre modèle ? Le test a 108 biopsies, dont 1 maligne. « Toujours bénigne » obtient 99,1 %, la règle 90,7 %. Lequel vaut mieux pour le dépistage ?

Voir la réponse

Bonne réponse : La règle, car elle trouve la maligne et « toujours bénigne » jamais

Avec une classe rare, l’exactitude récompense le fait de l’ignorer. « Toujours bénigne » ne trouvera jamais de biopsie maligne, quel que soit leur nombre.

Le poids corporel dit-il quelque chose de la vitesse à laquelle une maladie s’aggrave ? Les médecins ont beaucoup d’intuitions de ce genre. L’apprentissage automatique permet de transformer une intuition en nombre : tracer la meilleure droite à travers les données et lire sa pente. La seule question est de savoir ce que « meilleure » veut dire – et la réponse à cette question est le germe de tout ce qui suit dans ce cours.

Prédisez, puis vérifiez Vous ajustez la meilleure droite au graphique IMC et progression de la maladie. Quelle part de la variation de la progression, c’est-à-dire des différences entre patients, l’IMC seul explique-t-il ? Cette part s’appelle R².
Quel est votre degré de certitude ?

Labo interactif

Ce labo interactif fonctionne dans un navigateur avec JavaScript activé. Le texte qui l’entoure décrit ce qu’il montre.

Voir la réponse

Bonne réponse : Environ 34 %

La meilleure droite a un R² = 0,34 (erreur quadratique moyenne de 3890, contre 5930 pour une droite horizontale au niveau de la moyenne) : l’IMC explique à peu près un tiers de la variation, et les 66 % restants dépendent d’autre chose.

À vous de jouer

  • Déplacez le curseur de la pente et regardez la droite s’incliner et l’EQM changer. Puis déplacez le curseur de l’ordonnée à l’origine. Essayez de faire descendre l’EQM le plus bas possible à la main.
  • Cliquez sur Meilleur ajustement et comparez la droite des moindres carrés avec la vôtre. À quel point vous en êtes-vous approché ?
  • Mettez le curseur de la pente à zéro, pour que la droite soit horizontale, et déplacez seulement l’ordonnée à l’origine jusqu’à ce que l’EQM soit minimale. Vous venez de trouver la progression moyenne : sans variable, la meilleure estimation pour tout le monde est la moyenne.
  • Comparez l’EQM de cette droite horizontale avec celle du meilleur ajustement. La différence, c’est ce que vaut le fait de connaître l’IMC.

L’idée en quelques mots

Voyons maintenant ce que vous venez de manipuler, en termes simples.

Dans la leçon 1, le modèle répondait « oui » ou « non ». Maintenant, il répond par un nombre : on parle de régression. Le modèle de régression le plus simple est une droite :

prédiction = pente × variable + ordonnée à l’origine

La pente indique de combien la prédiction change quand la variable augmente d’une unité. L’ordonnée à l’origine déplace toute la droite vers le haut ou vers le bas. Apprendre, c’est trouver les deux nombres qui font passer la droite le plus près possible des points de données.

Imaginez un vendeur de voitures d’occasion qui fixe ses prix selon l’âge des voitures. Sa règle empirique est une droite : il part d’un prix pour une voiture neuve (l’ordonnée à l’origine) et retire un montant fixe par année (la pente). Aucune vraie voiture ne se vend exactement à ce prix, mais la droite capte la tendance et elle est facile à expliquer.

Dans cette leçon, nous utilisons les données d’une étude médicale classique portant sur 442 patients diabétiques. Pour chacun, on connaît l’indice de masse corporelle (IMC) et une mesure de la progression de la maladie un an après la première visite. Chaque patient est donc un couple de nombres, autrement dit un point : l’IMC à l’horizontale, la progression à la verticale.

Pourquoi ça marche

Pour chaque patient, la droite fait une prédiction, et l’écart entre la valeur réelle et la prédiction s’appelle le résidu – la distance verticale entre le point et la droite. Pour noter une droite, il faut résumer des centaines de résidus en un seul nombre. Le choix standard est l’erreur quadratique moyenne (EQM, ou MSE en anglais) :

EQM = (1/n) · Σ (yᵢ − ŷᵢ)²

où yᵢ est la valeur réelle du patient i, ŷᵢ la prédiction de la droite et n le nombre de patients. Le carré remplit deux rôles. Il rend chaque écart positif, si bien que les écarts au-dessus et en dessous de la droite ne peuvent pas s’annuler. Et il punit les gros écarts bien plus que les petits : un point deux fois plus loin de la droite coûte quatre fois plus. Une droite légèrement fausse pour tout le monde l’emporte généralement sur une droite parfaite pour la plupart et terriblement fausse pour quelques-uns.

La droite à l’EQM la plus basse s’appelle l’ajustement par les moindres carrés. Pour une droite, il n’est même pas nécessaire de la chercher : une courte formule, connue depuis le début du XIXᵉ siècle, donne exactement la meilleure pente et la meilleure ordonnée à l’origine. Remarquez ce que cela signifie. Apprendre suit la même recette qu’avant – une famille de règles (toutes les droites possibles), une note (l’EQM) et la règle à la meilleure note –, sauf que la famille est désormais infinie et la note continue.

Encore une chose à remarquer : même la meilleure droite laisse de gros résidus sur ces données. L’IMC est lié à la progression, mais il est loin de tout expliquer. Un modèle ne peut pas être meilleur que l’information contenue dans ses variables.

Erreur fréquente

Une droite ajustée n’est pas une loi de la nature. L’oublier mène à deux erreurs classiques. La première consiste à lire la pente comme une cause : dans ces données, les patients à l’IMC plus élevé progressent en moyenne plus vite, mais la droite seule ne peut pas dire si le poids cause la progression ou si les deux découlent d’autre chose. La seconde est l’extrapolation – utiliser la droite loin en dehors de l’étendue des données. Les patients de cette étude ont des IMC dans une plage limitée ; la droite ne dit rien de fiable sur des valeurs qu’elle n’a jamais vues.

Trouver la meilleure droite par une formule est un luxe que la plupart des modèles n’ont pas. Dans la prochaine leçon, nous trouvons la même droite autrement – en faisant de petits pas vers le bas –, et c’est ainsi qu’apprennent les réseaux de neurones.

Trouvez l’erreur de l’IA

Voici la réponse d’un chatbot. Une phrase est fausse. Laquelle ?

Question : J’ai ajusté une droite de progression de la maladie en fonction de l’IMC pour 442 patients diabétiques et obtenu R² = 0,34. Que cela me dit-il ?

Réponse du chatbot

Montrer la phrase fausse

La phrase fausse : En pratique, cela signifie que la droite prédit correctement la progression d’environ 34 % des patients et se trompe pour les autres.

Le R² n’est pas une part de patients : R² = 0,34 signifie que l’IMC explique à peu près un tiers de la variation de la progression (erreur quadratique moyenne de 3890 contre 5930 pour la droite horizontale), et les 66 % restants dépendent d’autre chose. La régression prédit un nombre, et presque chaque patient garde un résidu.

Quiz

Trois questions pour vérifier vos acquis. Choisissez une réponse ou dépliez la solution sous chaque question. Au clavier : les flèches choisissent, Entrée ou Espace valide.

1. Pourquoi la régression linéaire élève-t-elle les résidus au carré au lieu de simplement les additionner ?
Voir la réponse

Bonne réponse : Pour que les écarts opposés ne s’annulent pas et que les gros écarts comptent plus

Les carrés sont toujours positifs et grandissent vite, donc la note tient compte de chaque écart et punit lourdement les grands.

2. La pente est fixée à zéro. Quelle ordonnée à l’origine donne l’EQM la plus basse ?
Voir la réponse

Bonne réponse : La moyenne de toutes les valeurs cibles

Pour une droite horizontale, l’erreur quadratique est minimale à la moyenne, c’est pourquoi la moyenne est la référence naturelle en régression.

3. La meilleure droite a une pente positive. Que pouvez-vous en conclure ?
Voir la réponse

Bonne réponse : Dans ces données, un IMC plus élevé va de pair en moyenne avec une progression plus forte

Une pente décrit une association dans les données, pas une cause, et les résidus restants montrent qu’une grande partie reste inexpliquée.

À retenir

  • La régression prédit un nombre ; une droite est le modèle de régression le plus simple.
  • L’erreur quadratique moyenne note une droite en faisant la moyenne des résidus au carré, si bien que les gros écarts pèsent le plus.
  • La droite des moindres carrés est celle dont l’EQM est la plus basse, et elle a une formule exacte.
  • Sans variable utile, la meilleure prédiction constante est la moyenne.
  • Une pente est une association dans l’étendue des données, pas une cause ni un permis d’extrapoler.

Pour aller plus loin : formule, code, pratique

Les maths

Pour une variable x, la droite est ŷ = w·x + b. Les moindres carrés choisissent les w et b qui minimisent MSE(w, b) = (1/n) · Σ (yᵢ − w·xᵢ − b)². En annulant les deux dérivées partielles, on obtient la forme fermée :

  • w = Σ (xᵢ − x̄)(yᵢ − ȳ) / Σ (xᵢ − x̄)², la covariance de x et y divisée par la variance de x ;
  • b = ȳ − w·x̄, donc la droite passe toujours par le point des moyennes (x̄, ȳ).

Avec une pente fixée à 0, l’EQM est la plus petite pour b = ȳ, et ce minimum est égal à la variance de y. C’est pourquoi R² = 1 − MSE(line) / MSE(mean) mesure la part de la variance que la variable explique. Pour une droite à une variable, R² est le carré de la corrélation de Pearson entre x et y.

En code (Python)

Les mêmes 442 patients que dans le lab, avec l’IMC dans ses unités d’origine (scaled=False) :

from sklearn.datasets import load_diabetes
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score

X, y = load_diabetes(return_X_y=True, as_frame=True, scaled=False)
bmi = X[["bmi"]]  # une variable, gardée sous forme de tableau (sklearn attend une entrée 2D)
model = LinearRegression().fit(bmi, y)
pred = model.predict(bmi)

print(f"slope {model.coef_[0]:.2f}, intercept {model.intercept_:.1f}")
print(f"MSE of the line: {mean_squared_error(y, pred):.0f}")
print(f"MSE of the mean: {mean_squared_error(y, [y.mean()] * len(y)):.0f}")
print(f"R2: {r2_score(y, pred):.2f}")

Sortie

slope 10.23, intercept -117.8
MSE of the line: 3890
MSE of the mean: 5930
R2: 0.34

Chaque point d’IMC ajoute environ 10 à la progression prédite. L’ordonnée à l’origine de −118 n’est qu’une extrapolation à un IMC de 0, très loin des données (IMC de 18 à 42), elle ne signifie donc rien en elle-même.

Pour les praticiens
  • Les scores calculés sur les données d’entraînement sont optimistes. Ici c’est sans gravité (deux paramètres, 442 points), mais en général, donnez l’EQM et le R² sur un jeu de test (leçon 2).
  • Examinez les résidus, pas seulement le R². Tracez-les en fonction de la prédiction : une courbe ou une forme en entonnoir signifie que la droite, ou le bruit constant, est une mauvaise hypothèse.
  • L’EQM est exprimée dans le carré de l’unité de la cible (ici, progression²). Sa racine carrée (REQM, environ 62 ici) est plus facile à expliquer à quelqu’un d’autre.
  • Une seule valeur aberrante avec un grand résidu peut tirer une droite des moindres carrés très loin. Quand quelques points sont inhabituels, regardez-les d’abord, et ensuite seulement envisagez une perte robuste comme celle de Huber.
  • Une pente n’est comparable d’une variable à l’autre que si elles ont la même échelle. Standardisez les variables avant de lire les coefficients comme une « importance », et même alors, c’est une association, pas une cause.

Aller plus loin dans l’Atlas

Articles de l’encyclopédie sur les notions de cette leçon :