Mesurer les erreurs
Fait partie de la section Apprentissage supervisé du Journey Machine Learning de Coddy. Leçon 13 sur 58.
De combien le modèle se trompe-t-il, en dollars ? Voici un modèle de prix des maisons testé sur cinq maisons qu’il n’avait jamais vues :
sklearn.metrics mesure les erreurs pour toi :
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
y_test = np.array([290, 410, 235, 520, 330]) # milliers de dollars
pred = np.array([270, 450, 245, 430, 360])
print(mean_absolute_error(y_test, pred))
print(np.round(np.sqrt(mean_squared_error(y_test, pred)), 1))
print(np.round(r2_score(y_test, pred), 3))Cela affiche :
38.0
47.1
0.776La MAE, l’erreur absolue moyenne, correspond à l’erreur typique : 38 mille. La RMSE élève les erreurs au carré, en calcule la moyenne, puis en prend la racine : une grosse erreur la fait monter à 47.
Les deux s’expriment dans les unités de la variable cible. r2_score est votre R carré : 78 % de la dispersion des prix est expliquée.
Défi
MoyenUne boutique fixe le prix des appareils photo d’occasion à l’aide d’un modèle. Une deuxième caractéristique aide-t-elle ? Le programme lit shutter_k (milliers de photos prises) ou megapixels. Le code de départ ajuste deux modèles, l’un avec age_years seul et l’autre avec la caractéristique supplémentaire, en conservant leurs prédictions de test dans preds.
- Pour chaque modèle, affiche son MAE, son RMSE (1 décimale) et son R squared (3 décimales).
- Affiche celui qui a le plus petit MAE.
Pour une autre boutique et shutter_k :
age_years: MAE 212.4, RMSE 268.1, R squared 0.853
age_years + shutter_k: MAE 98.7, RMSE 121.0, R squared 0.97
Better: age_years + shutter_k, off by 98.7 dollars on a typical cameraEssayez vous-même
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
# Une ligne par appareil photo vendu : âge, nombre de déclenchements en milliers, mégapixels, prix en dollars
cameras = pd.read_csv("cameras.csv")
extra = input()
names = ["age_years", "age_years + " + extra]
columns = [["age_years"], ["age_years", extra]]
# Répartir les lignes entières ; chaque modèle ci-dessous sélectionne ses propres colonnes
X_train, X_test, y_train, y_test = train_test_split(cameras, cameras["price"], test_size=0.25, random_state=0)
# Un modèle par liste de colonnes, avec ses prédictions pour les appareils photo de test
preds = []
for cols in columns:
model = LinearRegression()
model.fit(X_train[cols], y_train)
preds.append(model.predict(X_test[cols]))
# Écrivez votre code ci-dessous
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Apprentissage supervisé
1Votre premier modèle
Apprendre à partir d’exemplesJeux d’entraînement et de testAjuster et prédireÉvaluer un modèleRécapitulatif : trieur de graines4Régression logistique
Prédictions oui ou nonLe seuil de décisionLes poids comme indicesPlusieurs classesRécapitulatif : filtre anti-spam2Plus proches voisins
Comment k-NN prend ses décisionsChoisir kFrontières de décisionMettre les voisins à l’échelleRécapitulatif : voisins et vin5Évaluer les classificateurs
La matrice de confusionPrécision et rappelLe score F1Classes déséquilibréesCourbes ROCRécapitulatif : test de dépistage8Validation croisée
Validation K-foldComparer les modèles équitablementRecherche par grilleRécapitulatif : réparations de skateboard11Projet : espèces de manchots
À la rencontre des manchotsPréparer les donnéesChoisir un modèleOptimiser le modèle gagnantDéployer le modèle3Régression linéaire
Prédire des nombresPlusieurs caractéristiquesMesurer les erreursGraphiques des résidusRécapitulatif : locations de vélos6Arbres de décision
Les arbres posent des questionsLire un arbreProfondeur de l’arbreImportance des caractéristiquesRécapitulatif : décisions de prêtEntraînez-vous par vous-même : Compilateur Python en ligne