Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Métriques | Choosing the Best Model
Régression Linéaire Avec Python

bookMé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 précisément dans quelle mesure il s'ajuste aux données. Ce score est appelé une 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 connaissons déjà une métrique, SSR (Sum of Squared Residuals), que nous avons minimisée pour identifier les paramètres optimaux.
En utilisant notre notation, nous pouvons exprimer la formule du SSR comme suit :

ou également :

Cette métrique était adaptée pour comparer des modèles ayant le même nombre d'observations. Cependant, elle ne permet pas de comprendre la performance réelle du modèle. Voici pourquoi :
Supposons que vous disposiez de deux modèles sur des ensembles d'entraînement différents (illustrés dans l'image ci-dessous).

On peut constater que le premier modèle s'ajuste bien mais présente tout de même un SSR plus élevé que le second modèle, qui, visuellement, s'ajuste moins bien aux données. Cela s'explique uniquement par le fait que le premier modèle possède 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. Ainsi, utiliser la moyenne des résidus au carré comme métrique permettrait de mieux décrire le modèle. C'est précisément ce que fait l'Erreur Quadratique Moyenne (MSE).

MSE

ou de manière équivalente :

Pour calculer la métrique MSE en python, vous pouvez utiliser les fonctions de NumPy :

mse = np.mean((y_true-y_pred)**2)

Ou vous pouvez utiliser la méthode mean_squared_error() de Scikit-learn :

from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_true, y_pred)

y_true est un tableau des valeurs cibles réelles et y_pred est un tableau des valeurs cibles prédites pour les mêmes caractéristiques.

Le problème est que l’erreur affichée est au carré. Par exemple, supposons que le MSE du modèle prédisant les prix des maisons soit de 49 dollars². Nous nous intéressons au prix, et non au prix au carré, comme le donne le MSE. Nous aimerions donc extraire la racine du MSE et obtenir 7 dollars. Nous avons ainsi 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 Python, il est possible d'utiliser les fonctions de NumPy :

rmse = np.sqrt(np.mean((y_true-y_pred)**2))

Ou bien utiliser la méthode mean_squared_error() de Scikit-learn avec squared=False :

from sklearn.metrics import mean_squared_error
rmse = mean_squared_error(y_true, y_pred, squared=False)

MAE

Dans le calcul du SSR, les résidus sont élevés au carré pour éliminer le signe. Une seconde approche consiste à prendre la valeur absolue des résidus au lieu de les mettre au carré. C'est le principe de l'Erreur Absolue Moyenne (MAE).

ou de manière équivalente

C'est identique à la MSE, mais au lieu d'élever les résidus au carré, on prend leurs valeurs absolues.

Bien que la MAE soit similaire à la MSE, puisqu'elle utilise les valeurs absolues des résidus, elle est plus robuste aux valeurs aberrantes, car elle n'amplifie pas autant les grandes erreurs que la MSE. Par conséquent, la MAE est souvent un meilleur choix lorsque l'ensemble de données contient des valeurs aberrantes, car sa valeur n'augmente pas de manière disproportionnée à cause de quelques erreurs extrêmes.

Pour calculer la métrique MAE en python, vous pouvez utiliser les fonctions de NumPy :

mae = np.mean(np.fabs(y_true-y_pred))

Ou vous pouvez utiliser la méthode mean_absolute_error() de Scikit-learn :

from sklearn.metrics import mean_absolute_error
mae = mean_absolute_error(y_true, y_pred)

Pour le choix des paramètres, nous avons utilisé la métrique SSR. Cela s'explique par sa pertinence pour les calculs mathématiques et parce qu'elle permet d'obtenir l'Équation Normale. Cependant, pour comparer davantage les modèles, il est possible d'utiliser n'importe quelle autre métrique.

Note
Remarque

Pour la comparaison des modèles, SSR, MSE et RMSE sélectionneront toujours de manière identique le meilleur et le moins bon modèle. MAE peut parfois privilégier un modèle différent de SSR/MSE/RMSE, car ces dernières pénalisent beaucoup plus fortement les résidus élevés. En général, il est recommandé de choisir une métrique a priori et de se concentrer sur sa minimisation.

Vous pouvez désormais affirmer que le second modèle est meilleur puisque toutes ses métriques sont plus faibles. Cependant, des métriques plus faibles ne signifient pas toujours que le modèle est meilleur.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 1

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Awesome!

Completion rate improved to 5.26

bookMétriques

Glissez pour afficher le menu

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 précisément dans quelle mesure il s'ajuste aux données. Ce score est appelé une 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 connaissons déjà une métrique, SSR (Sum of Squared Residuals), que nous avons minimisée pour identifier les paramètres optimaux.
En utilisant notre notation, nous pouvons exprimer la formule du SSR comme suit :

ou également :

Cette métrique était adaptée pour comparer des modèles ayant le même nombre d'observations. Cependant, elle ne permet pas de comprendre la performance réelle du modèle. Voici pourquoi :
Supposons que vous disposiez de deux modèles sur des ensembles d'entraînement différents (illustrés dans l'image ci-dessous).

On peut constater que le premier modèle s'ajuste bien mais présente tout de même un SSR plus élevé que le second modèle, qui, visuellement, s'ajuste moins bien aux données. Cela s'explique uniquement par le fait que le premier modèle possède 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. Ainsi, utiliser la moyenne des résidus au carré comme métrique permettrait de mieux décrire le modèle. C'est précisément ce que fait l'Erreur Quadratique Moyenne (MSE).

MSE

ou de manière équivalente :

Pour calculer la métrique MSE en python, vous pouvez utiliser les fonctions de NumPy :

mse = np.mean((y_true-y_pred)**2)

Ou vous pouvez utiliser la méthode mean_squared_error() de Scikit-learn :

from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_true, y_pred)

y_true est un tableau des valeurs cibles réelles et y_pred est un tableau des valeurs cibles prédites pour les mêmes caractéristiques.

Le problème est que l’erreur affichée est au carré. Par exemple, supposons que le MSE du modèle prédisant les prix des maisons soit de 49 dollars². Nous nous intéressons au prix, et non au prix au carré, comme le donne le MSE. Nous aimerions donc extraire la racine du MSE et obtenir 7 dollars. Nous avons ainsi 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 Python, il est possible d'utiliser les fonctions de NumPy :

rmse = np.sqrt(np.mean((y_true-y_pred)**2))

Ou bien utiliser la méthode mean_squared_error() de Scikit-learn avec squared=False :

from sklearn.metrics import mean_squared_error
rmse = mean_squared_error(y_true, y_pred, squared=False)

MAE

Dans le calcul du SSR, les résidus sont élevés au carré pour éliminer le signe. Une seconde approche consiste à prendre la valeur absolue des résidus au lieu de les mettre au carré. C'est le principe de l'Erreur Absolue Moyenne (MAE).

ou de manière équivalente

C'est identique à la MSE, mais au lieu d'élever les résidus au carré, on prend leurs valeurs absolues.

Bien que la MAE soit similaire à la MSE, puisqu'elle utilise les valeurs absolues des résidus, elle est plus robuste aux valeurs aberrantes, car elle n'amplifie pas autant les grandes erreurs que la MSE. Par conséquent, la MAE est souvent un meilleur choix lorsque l'ensemble de données contient des valeurs aberrantes, car sa valeur n'augmente pas de manière disproportionnée à cause de quelques erreurs extrêmes.

Pour calculer la métrique MAE en python, vous pouvez utiliser les fonctions de NumPy :

mae = np.mean(np.fabs(y_true-y_pred))

Ou vous pouvez utiliser la méthode mean_absolute_error() de Scikit-learn :

from sklearn.metrics import mean_absolute_error
mae = mean_absolute_error(y_true, y_pred)

Pour le choix des paramètres, nous avons utilisé la métrique SSR. Cela s'explique par sa pertinence pour les calculs mathématiques et parce qu'elle permet d'obtenir l'Équation Normale. Cependant, pour comparer davantage les modèles, il est possible d'utiliser n'importe quelle autre métrique.

Note
Remarque

Pour la comparaison des modèles, SSR, MSE et RMSE sélectionneront toujours de manière identique le meilleur et le moins bon modèle. MAE peut parfois privilégier un modèle différent de SSR/MSE/RMSE, car ces dernières pénalisent beaucoup plus fortement les résidus élevés. En général, il est recommandé de choisir une métrique a priori et de se concentrer sur sa minimisation.

Vous pouvez désormais affirmer que le second modèle est meilleur puisque toutes ses métriques sont plus faibles. Cependant, des métriques plus faibles ne signifient pas toujours que le modèle est meilleur.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 1
some-alt