TATECHATLAS
◎ Français
Mathématiques et modèles

Choisir entre MAE et RMSE pour la prédiction d'erreurs

Comprenez les différences entre l'Erreur Absolue Moyenne (MAE) et l'Erreur Quadratique Moyenne (RMSE), comment choisir la bonne métrique pour votre tâche de prédiction et l'impact des grandes erreurs sur chacune.

Dans ce guide

Lors de l'évaluation des modèles de régression, l'Erreur Absolue Moyenne (MAE) et l'Erreur Quadratique Moyenne (RMSE) sont des métriques courantes. La MAE mesure l'amplitude moyenne des erreurs, la rendant robuste aux valeurs aberrantes et facile à interpréter car elle est dans les mêmes unités que la variable cible. La RMSE, quant à elle, pénalise davantage les erreurs importantes en raison de la mise au carré des erreurs avant la moyenne et la prise de la racine carrée. Le choix entre MAE et RMSE dépend des objectifs spécifiques de la tâche de prédiction : si les erreurs importantes sont particulièrement indésirables et doivent être fortement pénalisées, la RMSE est préférée. Si toutes les erreurs doivent être traitées de manière égale en magnitude, la MAE est un meilleur choix. Les deux métriques sont des fonctions de score strictement cohérentes pour la prédiction de la moyenne de la variable de réponse.

Comprendre MAE et RMSE

L'Erreur Absolue Moyenne (MAE) et l'Erreur Quadratique Moyenne (RMSE) sont toutes deux des métriques largement utilisées pour évaluer la performance des modèles de régression. Elles quantifient la différence entre les valeurs prédites et les valeurs cibles réelles. La MAE calcule la moyenne des différences absolues entre les prédictions et les valeurs vraies. La RMSE, à l'inverse, calcule la racine carrée de la moyenne des différences au carré entre les prédictions et les valeurs vraies. Les deux métriques fournissent une mesure de l'erreur de prédiction, des valeurs plus faibles indiquant un meilleur ajustement.

La différence fondamentale réside dans la manière dont elles traitent les erreurs. La MAE traite toutes les erreurs de manière égale en magnitude. Par exemple, une erreur de 10 contribue deux fois plus à la MAE qu'une erreur de 5. La RMSE, cependant, met au carré les erreurs avant de faire la moyenne. Cela signifie que les erreurs plus importantes ont un impact disproportionnellement plus grand sur la RMSE. Une erreur de 10 contribue quatre fois plus à la somme des erreurs au carré qu'une erreur de 5, et par conséquent, un montant plus important à la RMSE.

Quand utiliser la MAE

L'Erreur Absolue Moyenne (MAE) est un choix approprié lorsque vous souhaitez une interprétation simple de l'amplitude moyenne des erreurs. Comme la MAE est calculée comme la moyenne des différences absolues, son unité est la même que celle de la variable cible, ce qui la rend intuitive à comprendre. Par exemple, si vous prédisez le prix des maisons en dollars, une MAE de 5 000 $ signifie que, en moyenne, vos prédictions sont erronées de 5 000 $.

La MAE est également plus robuste aux valeurs aberrantes que la RMSE. Les valeurs aberrantes, ou valeurs extrêmes dans les données, ont un effet moins prononcé sur la MAE car les erreurs ne sont pas mises au carré. Si votre ensemble de données contient des valeurs aberrantes importantes et que vous ne souhaitez pas qu'elles influencent outre mesure votre métrique d'évaluation, la MAE est souvent préférée. Elle fournit une bonne mesure de la taille typique de l'erreur sans être faussée par quelques déviations très importantes.

from sklearn.metrics import mean_absolute_error

y_true = [3, -0.5, 2, 7]
y_pred = [2.5, 0.0, 2, 8]
mae = mean_absolute_error(y_true, y_pred)
print(f"Erreur Absolue Moyenne : {mae}")
# Sortie : Erreur Absolue Moyenne : 0.5

Quand utiliser la RMSE

L'Erreur Quadratique Moyenne (RMSE) est préférée lorsque les erreurs importantes sont significativement plus indésirables que les erreurs plus petites. La mise au carré des erreurs dans la RMSE amplifie la pénalité pour les fautes. Cela rend la RMSE particulièrement utile dans les scénarios où le coût d'une erreur importante est beaucoup plus élevé que le coût de plusieurs petites erreurs. Par exemple, dans les prévisions financières, une erreur de prédiction importante pourrait entraîner des pertes financières substantielles, rendant la RMSE une métrique plus appropriée.

La RMSE est également étroitement liée à l'écart type des résidus (erreurs de prédiction). C'est une métrique courante en modélisation statistique et elle est souvent utilisée lorsque la distribution des données sous-jacente est supposée être Gaussienne. Bien que la RMSE ne soit pas aussi directement interprétable en termes d'unités d'origine que la MAE (en raison des opérations de mise au carré et de racine carrée), elle fournit une mesure sensible de l'amplitude de l'erreur, en particulier pour les déviations plus importantes.

from sklearn.metrics import root_mean_squared_error

y_true = [3, -0.5, 2, 7]
y_pred = [2.5, 0.0, 2, 8]
rmse = root_mean_squared_error(y_true, y_pred)
print(f"Erreur Quadratique Moyenne : {rmse}")
# Sortie : Erreur Quadratique Moyenne : 0.6123724356957945

Impact des grandes erreurs

La principale différence entre la MAE et la RMSE réside dans leur sensibilité aux grandes erreurs. Considérons un scénario avec des prédictions et des valeurs réelles. Si les erreurs sont [1, 2, 3, 10], la MAE serait (1+2+3+10)/4 = 4. La RMSE impliquerait sqrt(((1^2)+(2^2)+(3^2)+(10^2))/4) = sqrt((1+4+9+100)/4) = sqrt(114/4) = sqrt(28.5) ≈ 5.34.

Maintenant, si la plus grande erreur est réduite de 10 à 5, les erreurs deviennent [1, 2, 3, 5]. La MAE devient (1+2+3+5)/4 = 2.75. La RMSE devient sqrt(((1^2)+(2^2)+(3^2)+(5^2))/4) = sqrt((1+4+9+25)/4) = sqrt(39/4) = sqrt(9.75) ≈ 3.12. Remarquez comment la réduction de la plus grande erreur a considérablement diminué la MAE, mais l'impact sur la RMSE a été moins prononcé par rapport à sa valeur initiale. Cela illustre la tendance de la RMSE à pénaliser plus lourdement les grandes erreurs.

Choisir la bonne métrique

Le choix entre la MAE et la RMSE dépend des exigences et des priorités spécifiques de votre tâche de prédiction. Si votre objectif est de comprendre l'amplitude moyenne des erreurs d'une manière directement interprétable dans les unités de votre variable cible, et que vous souhaitez être moins sensible aux valeurs aberrantes, la MAE est un candidat solide. Elle fournit une image claire des imprécisions typiques de la prédiction.

Inversement, si les erreurs importantes sont particulièrement problématiques et doivent être fortement pénalisées, la RMSE est le meilleur choix. Elle correspond aux situations où le coût d'une déviation importante par rapport à la valeur vraie est disproportionnellement élevé. Les deux métriques sont considérées comme des fonctions de score strictement cohérentes pour la prédiction de la moyenne de la variable de réponse, ce qui signifie qu'elles s'alignent bien avec l'estimation de la valeur attendue.

Cohérence et entraînement du modèle

Les deux MAE et RMSE sont précieuses pour évaluer les modèles, mais elles peuvent également servir de fonctions de perte lors de l'entraînement du modèle. Lors de l'utilisation de la MAE comme fonction de perte (par exemple, perte d'erreur absolue moyenne), le modèle est optimisé pour minimiser la différence absolue moyenne entre les prédictions et les valeurs vraies. Cette approche encourage les modèles moins sensibles aux valeurs aberrantes.

L'utilisation de la RMSE comme fonction de perte (par exemple, perte d'erreur quadratique moyenne, dont la racine carrée est la RMSE) conduit à des modèles plus sensibles aux erreurs importantes. Le processus d'optimisation donnera la priorité à la réduction de ces déviations plus importantes. Le choix de la fonction de perte pendant l'entraînement influence directement le comportement du modèle et ses caractéristiques de performance telles que mesurées par la métrique d'évaluation correspondante.

Implémentation Scikit-learn

Scikit-learn fournit des fonctions pratiques pour la MAE et la RMSE. La fonction mean_absolute_error calcule la MAE, et root_mean_squared_error calcule la RMSE. Les deux fonctions acceptent y_true (vérité terrain) et y_pred (valeurs prédites) comme arguments principaux. Elles prennent également en charge sample_weight pour les calculs d'erreurs pondérées et multioutput pour gérer les cas avec plusieurs variables cibles.

Ces métriques peuvent être directement utilisées pour l'évaluation ou intégrées dans des pipelines de validation croisée à l'aide du paramètre scoring. Par exemple, lors de l'utilisation de GridSearchCV ou cross_val_score, vous pouvez spécifier scoring='neg_mean_absolute_error' ou scoring='neg_root_mean_squared_error'. Notez le préfixe 'neg_' : la convention de notation de scikit-learn est que des valeurs plus élevées sont meilleures, donc les métriques qui sont généralement minimisées (comme les pertes d'erreur) sont retournées sous forme de leurs valeurs négatives.

from sklearn.metrics import mean_absolute_error, root_mean_squared_error
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LinearRegression
import numpy as np

# Données d'exemple
X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
y = np.dot(X, np.array([1, 2])) + 3

model = LinearRegression()

# Utilisation de la MAE pour la validation croisée
mae_scores = cross_val_score(model, X, y, cv=2, scoring='neg_mean_absolute_error')
print(f"Scores MAE : {mae_scores}")
print(f"MAE moyenne : {-mae_scores.mean()}")

# Utilisation de la RMSE pour la validation croisée
rmse_scores = cross_val_score(model, X, y, cv=2, scoring='neg_root_mean_squared_error')
print(f"Scores RMSE : {rmse_scores}")
print(f"RMSE moyenne : {-rmse_scores.mean()}")

Limitations et considérations

Bien que la MAE et la RMSE soient des outils puissants, elles ont des limites. La MAE fournit une mesure de l'erreur moyenne mais ne différencie pas l'impact des erreurs importantes par rapport aux erreurs faibles. La RMSE pénalise davantage les erreurs importantes, ce qui peut être souhaitable, mais elle peut aussi être trop sensible aux valeurs aberrantes si elles ne sont pas représentatives de la distribution générale des erreurs ou si elles sont dues à des erreurs de données.

Les deux métriques supposent que les erreurs sont indépendantes et identiquement distribuées. S'il existe une dépendance temporelle ou une hétéroscédasticité (variance non constante des erreurs) dans les données, ces métriques pourraient ne pas capturer pleinement la performance du modèle. Pour de tels cas, des métriques spécialisées pour les séries temporelles ou une analyse des résidus pourraient être nécessaires. De plus, lors du traitement de la régression multi-sorties, le paramètre multioutput dans les fonctions scikit-learn permet différentes stratégies d'agrégation, qui doivent être choisies avec soin en fonction du contexte du problème.

Points à vérifier

  • Vérifiez que la métrique choisie (MAE ou RMSE) correspond à l'objectif commercial ou au coût associé aux erreurs de prédiction.
  • Assurez-vous que l'interprétation de la valeur de la métrique est claire dans le contexte des unités du problème.
  • Vérifiez si la présence de valeurs aberrantes influence significativement la métrique choisie et si cette influence est souhaitée.
  • Confirmez que la métrique choisie est utilisée de manière cohérente à la fois pour l'entraînement du modèle (en tant que fonction de perte) et pour l'évaluation.
  • Lors de l'utilisation de scikit-learn, rappelez-vous que les métriques d'erreur sont souvent négativées pour les paramètres de scoring (par exemple, 'neg_mean_squared_error').

La MAE et la RMSE sont principalement adaptées aux tâches de régression. Elles ne s'appliquent pas directement aux problèmes de classification. Pour la régression multi-sorties, la méthode d'agrégation spécifiée par le paramètre multioutput peut affecter le score final.

Sources

  1. scikit-learn: model evaluation ↗
  2. scikit-learn: mean_absolute_error ↗
  3. scikit-learn: root_mean_squared_error ↗
Retour en haut ↑