Contenu du cours
Régression Linéaire Avec Python
Régression Linéaire Avec Python
Métriques
Lors de la construction d'un modèle, il est important de mesurer ses performances.
Nous avons besoin d'un score associé au modèle qui décrit avec précision sa capacité à s'adapter aux données. Ce score est connu sous le nom de métrique, et il existe de nombreuses métriques disponibles.
Dans ce chapitre, nous nous concentrerons sur les plus couramment utilisées.
Nous utiliserons la notation suivante :
Nous sommes déjà familiers avec une métrique, SSR (Somme des Résidus au Carré), que nous avons minimisée pour identifier les paramètres optimaux.
En utilisant notre notation, nous pouvons exprimer la formule pour SSR comme suit :
ou également :
Cette métrique était bonne pour comparer des modèles avec le même nombre d'instances. Cependant, elle ne nous donne pas une compréhension de la performance du modèle. Voici pourquoi :
Supposons que vous ayez deux modèles sur des ensembles d'entraînement différents (montrés dans l'image ci-dessous).
Vous pouvez voir que le premier modèle s'ajuste bien mais a toujours un SSR plus élevé que le deuxième modèle, qui visuellement s'ajuste moins bien aux données. Cela s'est produit uniquement parce que le premier modèle a beaucoup plus de points de données, donc la somme est plus élevée, mais en moyenne, les résidus du premier modèle sont plus faibles. Donc, prendre la moyenne des résidus au carré comme métrique décrirait mieux le modèle. C'est précisément ce que l'Erreur Quadratique Moyenne(MSE) est.
MSE
ou également :
Pour calculer la métrique MSE en utilisant Python, vous pouvez utiliser les fonctions de NumPy :
Ou vous pouvez utiliser la méthode mean_squared_error()
de Scikit-learn :
Où y_true
est un tableau de valeurs cibles réelles et y_pred
est un tableau de valeurs cibles prédites pour les mêmes caractéristiques.
Le problème est que l'erreur qu'il montre est au carré. Par exemple, supposons que le MSE du modèle prédisant les maisons soit de 49 dollars². Nous sommes intéressés par le prix, pas par le prix au carré, comme donné par le MSE, donc nous aimerions prendre la racine du MSE et obtenir 7 dollars. Nous avons maintenant une métrique avec la même unité que la valeur prédite. Cette métrique est appelée Erreur Quadratique Moyenne Racine (RMSE).
RMSE
Pour calculer la métrique RMSE en utilisant python, vous pouvez utiliser les fonctions de NumPy :
Ou vous pouvez utiliser la méthode mean_squared_error()
de Scikit-learn avec squared=False
:
MAE
Dans SSR, nous avons élevé au carré les résidus pour éliminer le signe. La deuxième approche consisterait à prendre les valeurs absolues des résidus au lieu de les élever au carré. C'est l'idée derrière l'Erreur Absolue Moyenne (MAE).
ou également
C'est la même chose que le MSE, mais au lieu d'élever les résidus au carré, nous prenons leurs valeurs absolues.
Pour calculer la métrique MAE en utilisant Python, vous pouvez utiliser les fonctions de NumPy :
Ou vous pouvez utiliser la méthode mean_absolute_error()
de Scikit-learn :
Pour choisir les paramètres, nous avons utilisé la métrique SSR. C'est parce qu'elle était bonne pour les calculs mathématiques et nous a permis d'obtenir l'Équation Normale. Mais pour comparer davantage les modèles, vous pouvez utiliser n'importe quelle autre métrique.
Remarque
Pour comparer les modèles, SSR, MSE et RMSE choisiront toujours de manière identique quel modèle est meilleur et lequel est pire. Et MAE peut parfois préférer un modèle différent de SSR/MSE/RMSE car ceux-ci pénalisent beaucoup plus les résidus élevés. Habituellement, vous voulez choisir une métrique a priori et vous concentrer sur sa minimisation.
Maintenant, vous pouvez sûrement dire que le deuxième modèle est meilleur puisque toutes ses métriques sont plus basses. Cependant, des métriques plus basses ne signifient pas toujours que le modèle est meilleur. Le chapitre suivant vous expliquera pourquoi.
Merci pour vos commentaires !