Disponible en freelance 🚀

Fonction de coup : Erreur Quadratique Moyenne (MSE)

Comme on l’a vu à la fin du chapitre précédent, pour trouver la “meilleure” droite, notre algorithme a besoin d’un moyen de noter ses propres performances. Il lui faut un juge impartial qui lui dit : “Là, ta prédiction est bonne” ou “Ouh là, tu es très loin de la vérité !”. Ce juge, c’est la fonction de coût.

Son rôle est de calculer un score d’erreur unique qui résume la performance du modèle sur l’ensemble des données. Plus le score est bas, meilleur est le modèle.

Loss Function vs. Cost Function : une petite subtilité

Avant d’aller plus loin, il est utile de connaître une petite distinction de vocabulaire que tu rencontreras souvent. Même si les termes sont parfois utilisés de manière interchangeable, il y a une nuance :

  • La Loss Function (Fonction de Perte) : Elle mesure l’erreur pour un seul exemple de tes données. Par exemple, pour un seul de nos singes, on calcule l’écart entre son poids réel et le poids que notre droite a prédit. C’est une mesure d’erreur locale.
  • La Cost Function (Fonction de Coût) : C’est la moyenne des erreurs sur l’ensemble de tes données. On calcule l’erreur pour chaque singe, puis on fait la moyenne de tout ça pour avoir une vision globale de la performance du modèle. C’est ce score global que l’on va chercher à minimiser.

En résumé : la Loss c’est l’erreur sur un point, la Cost c’est l’erreur moyenne sur tous les points.

L’Erreur Quadratique Moyenne (MSE) à la loupe

Pour la régression linéaire, la fonction de coût la plus populaire est de loin l’Erreur Quadratique Moyenne (ou Mean Squared Error en anglais, d’où l’acronyme MSE). Ne te laisse pas intimider par le nom, on va le décortiquer ensemble, c’est très simple !

Reprenons nos singes. Pour calculer la MSE, on suit 3 étapes :

  1. Calculer l’erreur pour chaque singe : Pour chaque singe, on calcule la différence entre son poids réel et le poids prédit par notre modèle. C’est la distance verticale dont on parlait au chapitre 2.Erreur=PoidsReˊelPoidsPreˊditErreur = Poids Réel - Poids Prédit

  2. Mettre cette erreur au carré (Quadratique) : On prend chaque erreur calculée et on la multiplie par elle-même. Pourquoi faire ça ? Pour deux raisons très malignes :

    • Éliminer les négatifs : Si le modèle prédit un poids plus lourd, l’erreur est négative (ex: 38004000=200kg3800 - 4000 = -200kg). S’il prédit plus léger, elle est positive (ex: 38003700=+100kg3800 - 3700 = +100kg). En mettant au carré, on ne garde que l’amplitude de l’erreur. Une erreur de 200-200 est aussi “mauvaise” qu’une erreur de +200+200.
    • Pénaliser les grosses erreurs : Mettre au carré a un effet amplificateur. Une petite erreur de 2 deviendra 4. Mais une grosse erreur de 100 deviendra 10 000 ! Cela force le modèle à se concentrer en priorité sur la correction de ses prédictions les plus mauvaises. La figure ci-dessous montre l’évolution de la fonction quadratique comparée à une fonction linéaire :
  3. Faire la moyenne (Moyenne) : On additionne toutes les erreurs au carré que l’on vient de calculer, et on divise par le nombre total de singes. On obtient alors un seul chiffre : la MSE. C’est le score final de notre modèle.

La formule mathématique qui résume tout ça est la suivante :

MSE=1ni=1n(yiy^i)2MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2

Où :

  • n est le nombre total de singes dans notre jeu de données.
  • yiy_i est la valeur réelle pour le singe i (son vrai poids).
  • y^i\hat{y}_i (prononcé “y chapeau”) est la valeur prédite par le modèle pour le singe i.

🙌 À la mano : un exemple concret

Pour être sûr que tu as bien compris, faisons un calcul ensemble, à la main ! Imaginons que nous avons 3 singes et que notre modèle (notre droite y = ax + b avec des valeurs de a et b pour l’instant choisies au hasard) a fait les prédictions suivantes :

SingePoids Réel (y)Poids Prédit (ŷ)
130 kg39 kg
267 kg87 kg
398 kg80 kg

Déroulons les 3 étapes du calcul de la MSE :

  1. Calculer l’erreur (yy^)(y - \hat{y}) pour chaque singe :
  • Singe 1 : 3039=930 - 39 = -9
  • Singe 2 : 6787=2067 - 87 = -20
  • Singe 3 : 9880=1898 - 80 = 18
  1. Mettre chaque erreur au carré (yy^)2(y - \hat{y})^2 :
  • Singe 1 : (9)2=81(-9)^2 = 81
  • Singe 2 : (20)2=400(-20)² = 400
  • Singe 3 : 182=32418² = 324
  1. Faire la moyenne de ces valeurs :
  • Somme des erreurs au carré : 81+400+324=80581 + 400 + 324 = 805
  • Moyenne (on divise par le nombre de singes, ici 3) : 805÷3268.3805 \div 3 \approx 268.3

Le score MSE de notre modèle actuel est donc de 268,3. Ce chiffre, à lui seul, représente la performance globale de notre droite. Le but du jeu sera d’ajuster a et b pour que ce score soit le plus bas possible.

Voilà ! Notre objectif est maintenant limpide : trouver les valeurs de a et b (la pente et l’ordonnée de notre droite) qui rendent ce score MSE le plus petit possible. Mais comment faire pour trouver ces valeurs magiques sans tester toutes les droites de l’univers ? C’est ce que nous verrons dans le prochain chapitre en parlant d’un algorithme appelé la “Descente de Gradient”.