Les métriques de régression
- Leçon 8
- 55 min
- Module 3 : Évaluer les modèles supervisés
Leçon 8 sur 27 · Apprentissage automatique : du problème à un modèle fiableLes métriques de régression
1. Comprendre l'apprentissage automatique
2. Cadrer le problème de prédiction
3. Évaluer les modèles supervisés
4. Créer les premiers modèles
5. Essayer d'autres familles de modèles
6. Régler et finaliser le modèle
7. Comprendre et choisir le modèle
8. Préparer la passation du modèle
Ce que vous saurez faire
Mesurez l’écart entre un nombre prédit et sa valeur réelle. Choisissez le résumé qui correspond au coût d’une mauvaise prévision. Deux prévisions avec le même écart moyen peuvent avoir des effets très différents pour les personnes qui planifient avec elles.
Carnet JupyterFaites cette leçon dans un carnet Jupyter
Le carnet (notebook) Jupyter contient toutes les cellules de code, les tâches et les vérifications de cette leçon, avec les consignes. Ses cellules de configuration installent pandas et scikit-learn et téléchargent les données d’exercice. Il fonctionne donc sans le projet local. Lisez les explications ici et exécutez le code dans le carnet.
Le carnet est en anglais. Colab et Kaggle ouvrent votre propre copie. Il faut un compte Google ou Kaggle gratuit. Vous êtes bloqué ? Consultez le carnet de solution.
Avant de commencerCe qu’il faut savoir et avoir sous la main
Ce que vous devez savoir
- Ce qu’est la régression : un modèle qui prédit un nombre, dans L’apprentissage supervisé.
- Les nombres quotidiens de billets de soutien dans
daily_tickets.csv, dans Choisir la tâche d’apprentissage. - Pourquoi nous évaluons une prévision sur des données qu’elle n’a pas utilisées pour apprendre, dans Données d’entraînement, de validation et de test : trois jeux de données, trois rôles.
- La moyenne, dans Décrire un jeu de données : la moyenne et la médiane, et l’erreur au carré, dans Perte et gradients, toutes deux dans Mathématiques et statistiques essentielles pour l’IA.
Ce qu’il vous faut sur votre ordinateur (seulement pour le parcours local; le carnet n’en a pas besoin)
- Le dossier de projet
~/projects/ticket-modelavec son.venv(pandas 3.0.6, scikit-learn 1.9.1, matplotlib 3.11.2) et les données dansdata/. Vous les avez créés dans Définir une référence de base : préparer votre projet. Si un fichier de données manque ou a changé, exécutezpython get_data.py --reset. La dernière ligne doit êtreReady: train 16939 rows (1983 escalated), valid 1179 (183), test 1002 (157).(prêt : nombres de lignes et de billets transmis au niveau supérieur pour chaque ensemble). - Pour exécuter le carnet localement, ouvrez-le dans VS Code avec l’extension Jupyter et le noyau
.venv, comme dans Définir une référence de base : ouvrir un carnet dans VS Code.
Testé sur macOS avec Python 3.14.6, pandas 3.0.6, scikit-learn 1.9.1 et matplotlib 3.11.2. Les commandes Windows n’ont pas été testées. Le carnet a été testé dans Jupyter.
Deux types de réponses, deux types de métriques
Section intitulée « Deux types de réponses, deux types de métriques »Une métrique est un nombre qui indique la qualité des prédictions. Vous la calculez en comparant chaque prédiction à la réponse réelle, l’étiquette. Les étiquettes rendent cette comparaison possible en apprentissage supervisé : pour les cas passés, nous savons ce qui s’est réellement produit.
La métrique appropriée dépend du type de réponse. Un modèle de régression donne un nombre, comme 30 billets demain. Si 40 billets arrivent, vous pouvez soustraire : la prévision présente un écart de 10 billets. Un modèle de classification donne une classe, comme « transmis au niveau supérieur » ou « non transmis au niveau supérieur ». Vous ne pouvez pas soustraire ces deux classes. La prochaine leçon compte donc les résultats à la place. Cette leçon porte sur les nombres.
Description textuelle du diagramme
Le diagramme commence par une question : que donne le modèle? Trois chemins suivent. Un nombre, par exemple une valeur réelle de 40 et une prévision de 30, mène à une soustraction : erreur = valeur réelle − prévision = 10 billets. Ce chemin mène aux métriques de régression : erreur moyenne, MAE, RMSE, MAPE et R². Une classe, transmis au niveau supérieur ou non, mène au décompte de quatre résultats (TP, FP, FN, TN). Elle mène ensuite aux métriques de classification : exactitude, précision, rappel et F1. Un score classe les billets. Il mène au choix d’un seuil, ou à un résumé de tous les seuils, puis aux métriques de compromis : precision@k, recall@k, courbe PR, précision moyenne et aire sous la courbe ROC. Une flèche pointillée montre que chaque seuil appliqué à un score donne une classe. Les comptes s’appliquent donc de nouveau.
Une prévision qui se trompe
Section intitulée « Une prévision qui se trompe »Une application de livraison annonce que votre repas arrivera dans 30 minutes, et il arrive après 40 minutes. L’application s’est trompée de 10 minutes. Hier, elle annonçait 30 minutes et le repas est arrivé en 28 minutes : un écart de 2 minutes dans l’autre sens. Une prévision météo annonce 20 degrés, et la température atteint 22 degrés. Dans chaque cas, vous comparez un nombre prédit au nombre réel. La différence a une grandeur et une unité.
Cette différence est l’erreur d’une prédiction :
erreur = valeur réelle − valeur prédite
Le signe indique le sens. Une erreur positive signifie que la prévision était trop basse : plus de billets sont arrivés que prévu. Une erreur négative signifie que la prévision était trop élevée. L’unité est celle de la cible : minutes, degrés ou, ici, billets par jour.
Chez Larkfield, Omar, le chef de produit, planifie les quarts de travail des agents la veille au soir. Il doit savoir combien de billets arriveront demain. Une prévision et une journée donnent une erreur. Mais Omar planifie chaque jour. Il lui faut donc un nombre qui décrit les erreurs sur plusieurs jours. Ce nombre est une métrique de régression. Il en existe plusieurs, car nous pouvons résumer les erreurs de plusieurs façons. Chaque façon répond à une question différente.
Cinq jours, deux prévisions
Section intitulée « Cinq jours, deux prévisions »Voici les nombres réels de billets pour cinq jours, du jeudi au lundi. Deux prévisions ont été faites la veille de chaque journée. La prévision A annonce 30 billets en semaine et 15 la fin de semaine. La prévision B annonce 26 billets chaque jour.
| Jour | Valeur réelle | Prévision A | Erreur A | Prévision B | Erreur B |
|---|---|---|---|---|---|
| Jeu | 31 | 30 | +1 | 26 | +5 |
| Ven | 30 | 30 | 0 | 26 | +4 |
| Sam | 14 | 15 | −1 | 26 | −12 |
| Dim | 13 | 15 | −2 | 26 | −13 |
| Lun | 40 | 30 | +10 | 26 | +14 |
Examinez les erreurs avant de poursuivre. La prévision A est proche de la réalité pendant quatre jours, mais très éloignée le lundi. La prévision B est très éloignée chaque jour. Voyons maintenant comment chaque métrique décrit cela.
Pourquoi ne pas simplement faire la moyenne des erreurs?
Section intitulée « Pourquoi ne pas simplement faire la moyenne des erreurs? »La première idée est de calculer la moyenne des erreurs. Pour A : (1 + 0 − 1 − 2 + 10) ÷ 5 = +1,6 billet. Pour B : (5 + 4 − 12 − 13 + 14) ÷ 5 = −0,4 billet.
Selon ce nombre, B semble meilleure que A. Ce n’est pas le cas. B présente un écart de 12 billets ou plus pendant trois jours. Mais ses erreurs positives et négatives s’annulent. Une prévision trop élevée de 20 un jour et trop basse de 20 le lendemain a une erreur moyenne de 0.
La moyenne des erreurs signées ne peut donc pas vous dire quelle est la grandeur des écarts. Elle répond à une autre question, qui est utile : la prévision est-elle trop basse ou trop élevée en moyenne? Ce nombre est l’erreur moyenne, aussi appelée le biais. Une erreur moyenne proche de 0 signifie que les écarts vont dans les deux sens. Une erreur moyenne nettement positive signifie que la prévision est trop basse la plupart du temps. Omar prévoirait alors trop peu d’agents à répétition. Vérifiez toujours l’erreur moyenne, mais ne l’utilisez jamais seule.
MAE : la grandeur moyenne d’un écart
Section intitulée « MAE : la grandeur moyenne d’un écart »Pour mesurer la grandeur des écarts, retirez d’abord les signes. La grandeur d’une erreur sans son signe est son erreur absolue : −12 devient 12. Calculez ensuite la moyenne.
- A : (1 + 0 + 1 + 2 + 10) ÷ 5 = 2,8 billets
- B : (5 + 4 + 12 + 13 + 14) ÷ 5 = 9,6 billets
C’est l’erreur absolue moyenne (MAE). Elle répond à la question : « Lors d’une journée typique, de combien de billets la prévision se trompe-t-elle? » Elle utilise l’unité de la cible, donc tout le monde peut la comprendre : « La prévision A se trompe d’environ 3 billets par jour. » La MAE accorde le même poids à chaque billet d’erreur. Un écart de 10 compte exactement dix fois plus qu’un écart de 1.
RMSE : les grands écarts comptent davantage
Section intitulée « RMSE : les grands écarts comptent davantage »Regardez de nouveau A. Sa MAE, 2,8, est la moyenne de quatre petits écarts et d’un grand. Mais pour Omar, un grand écart est beaucoup plus grave que quelques petits écarts. Une journée avec 10 billets de plus que prévu laisse aux agents une file d’attente qui dure jusqu’au lendemain. Deux journées avec 1 billet supplémentaire chacune ne changent rien.
Pour donner plus de poids aux grands écarts, élevez chaque erreur au carré avant de calculer la moyenne. Un carré augmente vite : 1 reste 1, 2 devient 4, mais 10 devient 100. Prenez ensuite la racine carrée de la moyenne pour revenir aux billets.
- A : les carrés sont 1, 0, 1, 4 et 100. Leur moyenne est 106 ÷ 5 = 21,2, et √21,2 = 4,60 billets.
- B : les carrés sont 25, 16, 144, 169 et 196. Leur moyenne est 110, et √110 = 10,49 billets.
C’est la racine de l’erreur quadratique moyenne (RMSE). Son nom donne les étapes dans l’ordre inverse : la racine de la moyenne des erreurs au carré.
Description textuelle du graphique
Cinq colonnes, une pour chaque jour du jeudi au lundi. Dans la rangée du haut, chaque erreur forme une barre à partir de la ligne zéro. Jeudi : une petite barre vers le haut, +1. Vendredi : aucune barre, 0. Samedi : une petite barre vers le bas, −1. Dimanche : une barre vers le bas, −2. Lundi : une grande barre vers le haut, +10, dix fois celle du jeudi. Dans la rangée du bas, chaque erreur est élevée au carré et représentée par un carré de ce côté. Jeudi et samedi : de minuscules carrés d’aire 1. Vendredi : rien. Dimanche : un petit carré, 4. Lundi : un grand carré, 100. Le carré du lundi est 25 fois celui du dimanche, mais sa barre est seulement 5 fois plus haute. Ensemble, les carrés des quatre autres jours valent 6. Le lundi fournit donc 100 sur les 106.
L’image montre pourquoi la RMSE dépasse la MAE pour la prévision A : lundi fournit 100 des 106 dans la somme des carrés. Sans lundi, les erreurs de A sont 1, 0, 1 et 2. La MAE est de 1,0 et la RMSE de 1,22, presque la même valeur. La RMSE dépasse largement la MAE quand quelques écarts sont grands. La différence entre les deux nombres est donc elle-même un signal : une grande différence indique de fortes erreurs certains jours.
MAPE : l’écart en proportion de la valeur réelle
Section intitulée « MAPE : l’écart en proportion de la valeur réelle »Un écart de 5 billets n’a pas toujours le même sens. Un dimanche calme avec 12 billets, une prévision de 17 présente un écart de 5, soit 42 % du nombre réel. Un lundi occupé avec 40 billets, une prévision de 35 présente aussi un écart de 5, mais seulement de 12,5 %. Quand les valeurs réelles ont des grandeurs très différentes, un pourcentage peut être plus juste qu’un compte.
L’erreur absolue moyenne en pourcentage (MAPE) divise chaque erreur absolue par la valeur réelle, puis calcule la moyenne de ces pourcentages. Pour la prévision A :
| Jour | Valeur réelle | Erreur absolue | Pourcentage |
|---|---|---|---|
| Jeu | 31 | 1 | 3,2 % |
| Ven | 30 | 0 | 0 % |
| Sam | 14 | 1 | 7,1 % |
| Dim | 13 | 2 | 15,4 % |
| Lun | 40 | 10 | 25,0 % |
MAPE de A = (3,2 + 0 + 7,1 + 15,4 + 25,0) ÷ 5 = 10,2 %. La MAPE de B est de 50,0 % : l’écart atteint 85,7 % le samedi et 100 % le dimanche.
La MAPE a un problème sérieux : elle ne fonctionne plus près de zéro. Si une journée compte 2 billets réels et que la prévision annonce 4, l’écart n’est que de 2 billets. Pourtant, il atteint 100 %. Si une journée compte 0 billet, la MAPE doit diviser par 0 et n’a pas de valeur. Utilisez donc la MAPE seulement quand les valeurs réelles ne sont jamais proches de zéro. En mai et juin, la journée la plus calme de Larkfield compte 11 billets. La MAPE fonctionne donc ici. Pour un produit qui se vend à 0, 1 ou 2 unités par jour, elle ne fonctionne pas.
R² : mieux que la moyenne?
Section intitulée « R² : mieux que la moyenne? »La dernière métrique compare la prévision à une prévision très simple : la moyenne des valeurs réelles. Pour les cinq jours, la moyenne réelle est de 25,6 billets. Une prévision qui annonce 25,6 chaque jour sert de référence. Le R² (dites « R au carré ») mesure à quel point une prévision est meilleure que cette référence.
Pour le calculer, comparez deux sommes de carrés. Les erreurs au carré de la prévision A totalisent 106. Les erreurs au carré de la référence, les valeurs réelles moins 25,6, totalisent 549,2. Alors R² = 1 − 106 ÷ 549,2 = 0,807. On dit que A « explique environ 81 % de la variation » d’un jour à l’autre.
- R² = 1 signifie une prévision parfaite : aucune erreur.
- R² = 0 signifie que la prévision ne fait pas mieux que la moyenne. La prévision B annonce 26 chaque jour, presque la moyenne. Son R² est de −0,001, soit environ 0.
- Un R² inférieur à 0 est possible. Il signifie que la prévision fait moins bien que la moyenne des valeurs réelles. Vous le verrez dans l’exemple détaillé.
Le R² est courant dans les rapports et n’a pas d’unité, ce qui facilite les comparaisons entre jeux de données. Mais il cache ce dont Omar a besoin. Un R² de 0,8 peut venir de petits écarts sur des journées qui varient beaucoup. Il peut aussi venir de grands écarts sur des journées qui varient encore plus. Il ne dit pas de combien de billets la prévision se trompe. Présentez-le avec la MAE ou la RMSE, pas seul.
Les formules
Section intitulée « Les formules »Vous connaissez déjà toutes les étapes grâce aux nombres ci-dessus. Les voici en symboles, avec y pour la valeur réelle, ŷ (« y chapeau ») pour la prévision, et n jours :
Ici, ȳ (« y barre ») est la moyenne des valeurs réelles. scikit-learn calcule toutes ces métriques : mean_absolute_error, mean_squared_error (prenez sa racine carrée pour la RMSE), mean_absolute_percentage_error (elle retourne une proportion, donc multipliez par 100) et r2_score. L’erreur moyenne tient en une ligne de pandas : (real - forecast).mean().
Choisir la métrique
Section intitulée « Choisir la métrique »Chaque métrique ci-dessus est correcte. Elles diffèrent par ce qu’elles considèrent comme mauvais. Le choix ne vient donc pas des données. Il vient du coût d’une mauvaise prévision pour les personnes qui l’utilisent. Posez deux questions. Premièrement : un écart de 10 est-il seulement dix fois plus grave qu’un écart de 1, ou beaucoup plus grave? Deuxièmement : les valeurs réelles ont-elles des grandeurs très différentes?
Si chaque unité d’erreur coûte à peu près la même chose, utilisez la MAE. Une application de livraison qui a 4 minutes de retard agace un client environ deux fois plus qu’avec 2 minutes. Si un grand écart est beaucoup plus grave que plusieurs petits, utilisez la RMSE. Une compagnie d’électricité qui sous-estime fortement la demande risque une panne. Quelques petits écarts ne coûtent presque rien. Si vous comparez des prévisions de grandeurs très différentes, comme pour de petits et grands magasins, utilisez la MAPE. Ne l’utilisez pas quand une valeur réelle peut être proche de zéro. Et vérifiez toujours l’erreur moyenne. Une prévision trop basse presque chaque jour cause un problème que la MAE et la RMSE ne montrent pas directement.
| Situation | Coût d’une mauvaise prévision | Métrique principale | Vérification complémentaire |
|---|---|---|---|
| Heure d’arrivée dans une application de livraison | Chaque minute de retard agace à peu près autant | MAE | Erreur moyenne : l’application est-elle toujours trop optimiste? |
| Demande d’électricité pour demain | Une forte sous-estimation peut causer une panne | RMSE | Le plus grand écart |
| Ventes de 500 magasins, petits et grands | Le même écart compte davantage dans un petit magasin | MAPE | MAE en unités, pour les plus grands magasins |
| Stock à commander pour un entrepôt | Commander trop peu chaque semaine vide les étagères | Erreur moyenne | MAE |
| Billets quotidiens de Larkfield, pour les quarts de travail | Une journée très occupée qui n’était pas prévue surcharge les agents | RMSE | Erreur moyenne et MAE |
| Rapport comparant des modèles sur un jeu de données | Nécessite un nombre sans unité | R² | MAE ou RMSE dans l’unité de la cible |
Pour Larkfield, Priya, la scientifique des données, choisit la RMSE comme nombre principal. Les grands écarts font le plus mal aux agents. Elle présente la MAE à côté pour qu’Omar puisse lire « un écart d’environ N billets par jour ». Elle présente aussi l’erreur moyenne pour qu’il sache si la prévision est trop basse.
Exemple détaillé : les prévisions de Priya pour mai et juin
Section intitulée « Exemple détaillé : les prévisions de Priya pour mai et juin »Ce cours n’a pas encore de modèle. Ce n’est pas un problème : une prévision n’exige pas d’apprentissage automatique. Priya fait trois prévisions que n’importe qui pourrait faire avec un tableur. Chacune utilise seulement les jours avant le 1er mai 2026, les jours d’entraînement. Elle les évalue sur les 61 jours de mai et juin 2026, qu’aucune prévision n’a vus.
- Moyenne d’entraînement : la moyenne de tous les jours d’entraînement, chaque jour.
- Moyenne de semaine ou de fin de semaine : une moyenne du lundi au vendredi, une pour les samedis et dimanches.
- Même jour de la semaine et même mois : la moyenne des jours d’entraînement correspondant au même jour de la semaine et au même mois. Pour un lundi de mai, c’est la moyenne des lundis de mai 2025.
Chaque bloc de code est une cellule du carnet (notebook) Jupyter de la leçon. Les cellules de préparation ont déjà chargé pandas sous pd et numpy sous np. D’abord, la séparation :
daily = pd.read_csv("data/daily_tickets.csv", parse_dates=["date"])train_days = daily[daily["date"] < "2026-05-01"]eval_days = daily[daily["date"] >= "2026-05-01"].copy()print(len(train_days), "training days,", len(eval_days), "days to evaluate")print("mean per day: training", round(train_days["tickets"].mean(), 2), "| May-June", round(eval_days["tickets"].mean(), 2))La sortie :
669 training days, 61 days to evaluatemean per day: training 25.32 | May-June 37.59Mai et juin sont beaucoup plus occupés que les jours d’entraînement. C’est la saison du jardinage chez Larkfield, et la boutique a aussi plus de clients chaque mois. Gardez cela en tête. Ensuite, les trois prévisions :
eval_days["train mean"] = train_days["tickets"].mean()weekend_means = train_days.groupby("is_weekend")["tickets"].mean()eval_days["weekday or weekend mean"] = eval_days["is_weekend"].map(weekend_means)same_means = train_days.groupby(["month", "weekday"])["tickets"].mean()eval_days["same weekday and month"] = [same_means[(month, weekday)] for month, weekday in zip(eval_days["month"], eval_days["weekday"])]print(weekend_means.round(2).to_dict()){0: 29.99, 1: 13.54}Un jour de semaine reçoit 29,99 et un jour de fin de semaine, 13,54. Ensuite, une fonction calcule les cinq métriques pour une prévision, et un tableau présente une ligne par prévision :
from sklearn.metrics import mean_absolute_error, mean_absolute_percentage_error, mean_squared_error, r2_score
def regression_report(real, forecast): """Five numbers that describe the errors of a forecast.""" errors = real - forecast return {"mean error": round(float(errors.mean()), 2), "MAE": round(mean_absolute_error(real, forecast), 2), "RMSE": round(mean_squared_error(real, forecast) ** 0.5, 2), "MAPE %": round(100 * mean_absolute_percentage_error(real, forecast), 1), "R2": round(r2_score(real, forecast), 3)}
forecasts = ["train mean", "weekday or weekend mean", "same weekday and month"]print(pd.DataFrame({name: regression_report(eval_days["tickets"], eval_days[name]) for name in forecasts}).T) mean error MAE RMSE MAPE % R2train mean 12.27 14.95 17.27 38.3 -1.018weekday or weekend mean 12.45 12.54 14.08 32.2 -0.340same weekday and month 5.00 6.13 7.83 16.4 0.586Lisez le tableau une colonne à la fois :
- Erreur moyenne. Les trois prévisions sont trop basses en moyenne. Les deux premières se trompent d’environ 12 billets de soutien par jour dans la même direction. Elles ont appris sur une période plus calme et ne peuvent pas savoir que mai et juin sont plus occupés.
- MAE. « Même jour de la semaine et même mois » se trompe d’environ 6 billets lors d’une journée typique. C’est moins de la moitié des autres. Cette prévision sait que mai est un mois occupé, parce que mai 2025 l’était aussi.
- RMSE. Chaque RMSE est un peu plus élevée que sa MAE. La meilleure prévision a une RMSE de 7,83 : certains jours, l’erreur dépasse largement 6 billets. Sa plus grande erreur est de 24,2 billets, et 11 des 61 jours présentent une erreur de plus de 10.
- MAPE. La meilleure prévision se trompe de 16,4 % du nombre réel lors d’une journée typique.
- R². Les deux premières prévisions ont un R² inférieur à zéro. Elles font moins bien que la moyenne de mai et juin, 37,59, qu’elles ne pouvaient pas connaître. La meilleure prévision a un R² de 0,586.
Le graphique montre les nombres réels et les trois prévisions, jour par jour.
- Billets réels
- Moyenne d'entraînement (en pointillés)
- Moyenne de semaine ou de fin de semaine
- Même jour de la semaine et même mois
Description textuelle du graphique
Un graphique en courbes sur 61 jours, du 1er mai au 30 juin 2026. L’axe vertical indique de 0 à 60 billets par jour. Les nombres réels montent et descendent chaque semaine : surtout de 36 à 52 en semaine et de 15 à 26 en fin de semaine. Le maximum quotidien est de 60 et le minimum, de 11. La moyenne d’entraînement est une ligne horizontale en pointillés à 25,3, sous les nombres réels la plupart des jours. La prévision de semaine ou de fin de semaine passe de 30,0 en semaine à 13,5 en fin de semaine. Elle suit le bon profil hebdomadaire, mais reste sous les nombres réels sur 60 des 61 jours. La prévision du même jour de la semaine et du même mois se situe entre 17,5 et 42,25. Elle suit de plus près le profil hebdomadaire et le niveau de mai et juin. Mais elle reste sous les nombres réels sur 50 des 61 jours.
Priya écrit une courte note pour Omar : « La meilleure prévision simple se trompe d’environ 6 billets par jour. En moyenne, elle est trop basse d’environ 5 billets par jour, parce que la boutique continue de croître. Utilisez-la pour planifier, mais ajoutez quelques agents. » Les chiffres lui indiquent quoi corriger ensuite : le biais. Le module 4 construit un modèle de régression, et vous y retrouverez ces chiffres.
Exercices guidés : les métriques à la main et en code
Section intitulée « Exercices guidés : les métriques à la main et en code »Utilisez les sections 1 à 3 du carnet. Vous calculez les cinq métriques pour les cinq jours, d’abord à la main, puis avec scikit-learn.
- Ouvrez le carnet depuis l’encadré en haut de cette page, dans Colab, Kaggle ou VS Code.
- Exécutez les cellules de préparation. Vous devriez voir
pandas 3.0.6,scikit-learn 1.9.1et la ligneReady:(prêt). - Dans la section 1, calculez d’abord sur papier l’erreur moyenne, la MAE et la RMSE de la prévision A. Puis exécutez la cellule. Vous devriez voir
mean error 1.6(erreur moyenne de 1,6),MAE 2.8etRMSE 4.6. - Dans la section 2, écrivez la MAPE de la prévision A avec numpy. Placez-la dans
mape_a, sous forme de pourcentage arrondi à une décimale. - Exécutez la cellule de vérification. Elle affiche
Check passed: mape_a is 10.2.(vérification réussie : mape_a vaut 10,2) quand votre nombre est correct. - Dans la section 3, exécutez
regression_report()sur la prévision B. Vous devriez voir une erreur moyenne de-0.4, une MAE de9.6et un R² de-0.001. - Écrivez une phrase pour Omar au sujet de la prévision B. Utilisez l’erreur moyenne et la MAE.
Afficher la réponse
real = np.array([31, 30, 14, 13, 40])forecast_a = np.array([30, 30, 15, 15, 30])mape_a = round(float(100 * np.mean(np.abs(real - forecast_a) / real)), 1)print(mape_a)10.2Pour Omar : « La prévision B est juste en moyenne : son erreur moyenne est de −0,4. Mais elle se trompe de presque 10 billets lors d’une journée typique. Elle est trop élevée en fin de semaine et trop basse en semaine. Ces deux effets s’annulent dans l’erreur moyenne. » L’erreur moyenne seule ferait paraître B bonne. La MAE montre la taille des erreurs.
À vous de jouer : les quatre dernières semaines
Section intitulée « À vous de jouer : les quatre dernières semaines »Changez une chose : les jours d’entraînement qu’une prévision utilise. Les trois prévisions ci-dessus sont trop basses, parce que la boutique croît. Une prévision qui utilise seulement des jours récents pourrait suivre cette croissance. La nouvelle prévision est la moyenne du même jour de la semaine sur les 4 dernières semaines avant mai (du 3 au 30 avril 2026). Pour un lundi de mai, c’est la moyenne des quatre lundis d’avril.
Avant d’exécuter la section 4 du carnet, faites une prédiction. L’erreur moyenne sera-t-elle plus proche de 0 que les 5,00 de « Même jour de la semaine et même mois »? La MAE sera-t-elle plus basse? Calculez ensuite la colonne same weekday, last 4 weeks (même jour de la semaine, 4 dernières semaines) et son regression_report().
Afficher la réponse
last_4_weeks = train_days[train_days["date"] >= "2026-04-03"]weekday_means = last_4_weeks.groupby("weekday")["tickets"].mean()eval_days["same weekday, last 4 weeks"] = eval_days["weekday"].map(weekday_means)print(regression_report(eval_days["tickets"], eval_days["same weekday, last 4 weeks"])){'mean error': 1.65, 'MAE': 5.08, 'RMSE': 6.32, 'MAPE %': 15.1, 'R2': 0.73}L’erreur moyenne passe de 5,00 à 1,65 : avril était déjà occupé, donc le biais est beaucoup plus faible. La MAE passe de 6,13 à 5,08 et la RMSE, de 7,83 à 6,32. Les données récentes aident quand le niveau change avec le temps. Cela a un coût. Une prévision sur seulement 4 semaines varie avec chaque semaine inhabituelle, par exemple un jour férié ou une panne. Elle a peu de jours pour calculer sa moyenne.
Erreur courante
Une petite MAE qui cache un biais
Symptôme : Tomás, l’ingénieur en IA, compare les prévisions seulement selon la MAE. Il rapporte : « Même jour de la semaine et même mois se trompe de 6,13 billets par jour. C’est assez bon. » Omar l’utilise pour planifier les quarts de travail de mai. Après deux semaines, Grace, la responsable du soutien, dit que la file d’attente est longue presque tous les soirs.
Cause : la MAE mesure la taille des erreurs, pas leur direction. Cette prévision est trop basse sur 50 des 61 jours, de 5,00 billets en moyenne. Une prévision parfois trop basse et parfois trop élevée pose un petit problème pour la planification des effectifs. Une prévision trop basse presque chaque jour laisse l’équipe en sous-effectif chaque jour. L’erreur moyenne le montre immédiatement; la MAE ne le montre pas.
errors = eval_days["tickets"] - eval_days["same weekday and month"]print("mean error:", round(errors.mean(), 2), "| days too low:", (errors > 0).sum(), "of", len(errors))mean error: 5.0 | days too low: 50 of 61Correction : rapportez toujours l’erreur moyenne à côté de la MAE ou de la RMSE. Comptez aussi les jours où la prévision est trop basse ou trop élevée. Si le biais est grand, trouvez sa cause avant de faire confiance à la prévision. Ici, la cause est la croissance, et une prévision basée sur les semaines récentes réduit le biais à 1,65.
Conséquence dans le travail en IA : un modèle biaisé dans une direction cause des dommages discrets. Une prévision de demande toujours trop basse vide les étagères; un modèle de risque toujours trop bas sous-évalue les primes d’assurance. La métrique de synthèse habituelle peut sembler bonne alors que chaque erreur va dans le même sens.
Vérification des connaissances
Section intitulée « Vérification des connaissances »Vérifiez votre compréhension
Deux prévisions sont testées sur les mêmes quatre jours. La prévision A se trompe de 3, 3, 3 et 3 billets. La prévision B se trompe de 0, 0, 0 et 12 billets. Calculez la MAE et la RMSE des deux. Pour Larkfield, le pire cas est une journée très occupée qui n'a pas été prévue. Quelle prévision recommandez-vous?
Afficher la réponse
Les deux ont une MAE = 12 ÷ 4 = 3 billets. La prévision A a une RMSE = √((9 + 9 + 9 + 9) ÷ 4) = 3. La prévision B a une RMSE = √(144 ÷ 4) = 6. La MAE ne peut pas les distinguer; la RMSE le peut. Recommandez A : la prévision B se trompe de 12 billets un jour, et cette journée surcharge les agents. Quand les grandes erreurs sont le pire cas, choisissez selon la RMSE et montrez la MAE à côté.
Votre réponse contient-elle les points principaux de la nôtre ?
Connectez-vous et inscrivez-vous au cours pour enregistrer vos réponses. Chaque vérification compte pour le certificat.
Vérifiez votre compréhension
Une boutique prévoit les ventes quotidiennes de 200 produits. Certains produits se vendent à 0 ou 1 unité la plupart des jours. Un collègue veut comparer les prévisions avec la MAPE. Quel problème cela pose-t-il, et que suggérez-vous?
Afficher la réponse
La MAPE divise chaque erreur par la valeur réelle. Un jour avec 1 unité réelle, une prévision de 2 donne une erreur de 100 %. Un jour avec 0 unité, la MAPE divise par zéro et n’a pas de valeur (ou devient très grande). La MAPE est donc instable pour les produits dont les ventes sont proches de zéro. Utilisez plutôt la MAE en unités, ou calculez la MAPE seulement pour les produits dont les ventes ne sont jamais proches de zéro.
Votre réponse contient-elle les points principaux de la nôtre ?
Connectez-vous et inscrivez-vous au cours pour enregistrer vos réponses. Chaque vérification compte pour le certificat.
Vérifiez votre compréhension
Faites une prédiction : une prévision a une erreur moyenne de +8 billets et une MAE de 8 billets. Que pouvez-vous dire de ses erreurs, sans les regarder?
Afficher la réponse
Chaque erreur est positive ou nulle : la prévision est trop basse chaque jour, ou exacte. L’erreur moyenne peut égaler la MAE seulement quand aucune erreur n’est négative. Une erreur négative réduit l’erreur moyenne, mais augmente la MAE. La prévision est donc biaisée : elle prédit toujours trop peu de billets, de 8 en moyenne. Lui ajouter environ 8 éliminerait la plupart des erreurs, si le biais reste le même.
Votre réponse contient-elle les points principaux de la nôtre ?
Connectez-vous et inscrivez-vous au cours pour enregistrer vos réponses. Chaque vérification compte pour le certificat.
Récapitulatif
- Un modèle de régression prédit un nombre. Chaque prédiction a donc une erreur : réel − prédit, avec un signe et une unité.
- L’erreur moyenne (biais) montre la direction : une valeur positive signifie que la prévision est trop basse en moyenne. Les erreurs de signes différents s’y annulent, donc elle ne mesure jamais la taille des erreurs.
- La MAE est la taille typique d’une erreur. La RMSE élève d’abord les erreurs au carré, donc quelques grandes erreurs l’augmentent beaucoup plus. La MAPE exprime l’erreur en pourcentage, utile pour comparer différentes tailles et inutile près de zéro. Le R² compare la prévision à la moyenne des valeurs réelles et peut être inférieur à zéro.
- Choisissez la métrique selon le coût d’une mauvaise prévision. Pour les quarts de travail de Larkfield : la RMSE, accompagnée de la MAE et de l’erreur moyenne.
- Pour mai et juin, la meilleure prévision simple est celle du même jour de la semaine et du même mois. Elle a une MAE de 6,13, une RMSE de 7,83 et une erreur moyenne de +5,00. Elle est trop basse sur 50 des 61 jours.
Ensuite, la question du transfert au niveau supérieur. Sa réponse est une classe, pas un nombre : vous comptez donc les résultats au lieu de soustraire.
Leçon suivante : Les métriques de classification