Optimisation d’une chaîne de traitement
Fait partie de la section Apprentissage supervisé du Journey Machine Learning de Coddy. Leçon 48 sur 58.
Un pipeline peut être réglé comme n’importe quel modèle, y compris ses étapes de nettoyage. Chaque paramètre est nommé d’après son étape, suivie de deux tirets bas, puis du paramètre :
pipe = make_pipeline(SimpleImputer(), DecisionTreeClassifier(random_state=0))
grid = {"simpleimputer__strategy": ["mean", "median", "most_frequent"],
"decisiontreeclassifier__max_depth": [2, 4, 6, 8]}
search = GridSearchCV(pipe, grid, cv=5)
search.fit(X_train, y_train)make_pipeline nomme chaque étape d’après sa classe, en minuscules. Pour 200 lancements de fusées modèles, atteignant ou non 300 m, les 12 configurations obtiennent les scores suivants :
Chaque pli réajuste l’ensemble du pipeline, y compris l’imputeur, afin qu’aucun pli ne consulte les lignes qui le testent.
Défi
MoyenUne école de musique veut savoir quels élèves violonistes réussiront leur examen de fin de niveau. Le code de départ lit trois valeurs de k, et sa recherche sur grille dans un pipeline s’arrête avec une erreur.
- Corrige les deux clés de la grille afin que la recherche ajuste la stratégie de l’imputeur et le nombre de voisins de k-NN.
- Affiche les meilleurs paramètres, leur précision validée par validation croisée et la précision sur les données de test, comme ci-dessous.
Une autre école, avec 2, 4, 6 :
Best: mean fills, 6 neighbors
Cross-validated accuracy: 0.720
Test accuracy: 0.820Essayez vous-même
import pandas as pd
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline
# Élèves de violon : ont réussi leur examen de niveau (1) ou non (0) ; certains relevés de travail
# et résultats de lecture à vue sont manquants
students = pd.read_csv("violins.csv")
X = students.drop(columns="passed")
y = students["passed"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
ks = [int(input()), int(input()), int(input())]
# Cette recherche s’arrête avec une erreur : corrigez la grille
pipe = make_pipeline(SimpleImputer(), StandardScaler(), KNeighborsClassifier())
grid = {
"strategy": ["mean", "median"],
"n_neighbors": ks,
}
search = GridSearchCV(pipe, grid, cv=5)
search.fit(X_train, y_train)
# É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-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