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.
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.
Choisissez une réponse et votre degré de certitude.
Répondez pour débloquer le labo.
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 ?
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.
À 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 dexetydivisée par la variance dex;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.
Télécharger le notebook (.ipynb). Ouvrez-le dans Jupyter ou importez-le dans Google Colab ; il télécharge lui-même les données manquantes.
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.
Cela vous a-t-il aidé ?
Merci ! Cela nous aide à nous améliorer.
Aller plus loin dans l’Atlas
Articles de l’encyclopédie sur les notions de cette leçon :