Chaînes de traitement
Fait partie de la section Apprentissage supervisé du Journey Machine Learning de Coddy. Leçon 45 sur 58.
Les tableaux réels contiennent des valeurs manquantes, des mots et des échelles différentes. Ce chapitre construit un objet qui les nettoie et effectue des prédictions, un pipeline :
Commence petit : make_pipeline enchaîne un scaler et un modèle :
from sklearn.pipeline import make_pipeline
pipe = make_pipeline(StandardScaler(), KNeighborsClassifier())
pipe.fit(X_train, y_train)
print(pipe.score(X_test, y_test))Pour 200 soudures de test, fortes ou faibles, cela affiche 0.86, contre 0.74 sans mise à l’échelle.
fit apprend la mise à l’échelle à partir des lignes d’entraînement, puis entraîne le modèle. Toutes les lignes suivantes sont mises à l’échelle de la même manière, automatiquement.
Défi
MoyenUne entreprise de montgolfières décide chaque soir si le lendemain sera un jour de vol. Le code de départ effectue la mise à l’échelle manuellement : la précision sur les données de test est bonne, mais les prévisions ne sont jamais mises à l’échelle, alors le modèle répond yes quelle que soit la météo.
- Remplace-le par un pipeline, avec un scaler suivi de k-NN, entraîné sur les lignes d’entraînement.
- Affiche sa précision sur les données de test et évalue la prévision avec lui.
Pour une autre entreprise, jour 20, 32, 7000, 9 :
Test accuracy: 0.880
Flying day: noEssayez vous-même
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline
# Jours passés dans une compagnie de montgolfières : jour de vol (1) ou non (0)
days = pd.read_csv("balloons.csv")
X = days[["wind_kmh", "gusts_kmh", "visibility_m", "passengers"]].to_numpy()
y = days["flying_day"].to_numpy()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
# Prévisions pour demain : vent, rafales, visibilité, passagers ayant réservé
day = np.array([[float(input()), float(input()), float(input()), float(input())]])
# Mise à l’échelle manuelle : le score semble bon, mais les prévisions ne sont jamais mises à l’échelle
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
model = KNeighborsClassifier()
model.fit(X_train_scaled, y_train)
print(f"Test accuracy: {model.score(X_test_scaled, y_test):.3f}")
if model.predict(day)[0] == 1:
print("Flying day: yes")
else:
print("Flying day: no")
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-spam7Surapprentissage
Sous-apprentissage et surapprentissageCourbes d’apprentissageRégularisationEnsembles de validationRécapitulatif : régler un arbre10Chaînes de traitement
Chaînes de traitementColonnes mixtesImputation dans une chaîne de traitementOptimisation d’une chaîne de traitementRécapitulatif : nettoyer et prédire2Plus 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