Introduction
Ce laboratoire est un guide étape par étape sur la manière de construire et d'afficher des pipelines dans Scikit-Learn.
Conseils sur la machine virtuelle
Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder à Jupyter Notebook pour la pratique.
Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.
Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous résoudrons rapidement le problème pour vous.
Construction d'un pipeline simple avec une étape de prétraitement et un classifieur
Dans cette étape, nous allons construire un pipeline simple avec une étape de prétraitement et un classifieur, et afficher sa représentation visuelle.
Tout d'abord, nous importons les modules nécessaires :
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn import set_config
Ensuite, nous définissons les étapes du pipeline :
steps = [
("prétraitement", StandardScaler()),
("classifieur", LogisticRegression()),
]
Ensuite, nous créons le pipeline :
pipe = Pipeline(steps)
Enfin, nous affichons la représentation visuelle du pipeline :
set_config(display="diagram")
pipe
Construction d'un pipeline enchaînant plusieurs étapes de prétraitement et un classifieur
Dans cette étape, nous allons construire un pipeline avec plusieurs étapes de prétraitement et un classifieur, et afficher sa représentation visuelle.
Tout d'abord, nous importons les modules nécessaires :
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler, PolynomialFeatures
from sklearn.linear_model import LogisticRegression
Ensuite, nous définissons les étapes du pipeline :
steps = [
("standard_scaler", StandardScaler()),
("polynôme", PolynomialFeatures(degree=3)),
("classifieur", LogisticRegression(C=2.0)),
]
Ensuite, nous créons le pipeline :
pipe = Pipeline(steps)
Enfin, nous affichons la représentation visuelle du pipeline :
pipe
Construction d'un pipeline avec une réduction de dimensionnalité et un classifieur
Dans cette étape, nous allons construire un pipeline avec une étape de réduction de dimensionnalité et un classifieur, et afficher sa représentation visuelle.
Tout d'abord, nous importons les modules nécessaires :
from sklearn.pipeline import Pipeline
from sklearn.svm import SVC
from sklearn.decomposition import PCA
Ensuite, nous définissons les étapes du pipeline :
steps = [("réduire_dim", PCA(n_components=4)), ("classifieur", SVC(kernel="linéaire"))]
Ensuite, nous créons le pipeline :
pipe = Pipeline(steps)
Enfin, nous affichons la représentation visuelle du pipeline :
pipe
Construction d'un pipeline complexe enchaînant un ColumnTransformer
Dans cette étape, nous allons construire un pipeline complexe avec un ColumnTransformer et un classifieur, et afficher sa représentation visuelle.
Tout d'abord, nous importons les modules nécessaires :
import numpy as np
from sklearn.pipeline import make_pipeline
from sklearn.pipeline import Pipeline
from sklearn.impute import SimpleImputer
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder, StandardScaler
from sklearn.linear_model import LogisticRegression
Ensuite, nous définissons les étapes de prétraitement pour les caractéristiques numériques et catégorielles :
preprocesseur_numerique = Pipeline(
steps=[
("imputation_moyenne", SimpleImputer(missing_values=np.nan, strategy="mean")),
("scalage", StandardScaler()),
]
)
preprocesseur_categorique = Pipeline(
steps=[
(
"imputation_constante",
SimpleImputer(fill_value="manquant", strategy="constant"),
),
("onehot", OneHotEncoder(handle_unknown="ignore")),
]
)
Ensuite, nous créons le ColumnTransformer :
preprocesseur = ColumnTransformer(
[
("catégorique", preprocesseur_categorique, ["état", "genre"]),
("numérique", preprocesseur_numerique, ["âge", "poids"]),
]
)
Ensuite, nous créons le pipeline :
pipe = make_pipeline(preprocesseur, LogisticRegression(max_iter=500))
Enfin, nous affichons la représentation visuelle du pipeline :
pipe
Construction d'une recherche en grille sur un pipeline avec un classifieur
Dans cette étape, nous allons construire une recherche en grille sur un pipeline avec un classifieur, et afficher sa représentation visuelle.
Tout d'abord, nous importons les modules nécessaires :
import numpy as np
from sklearn.pipeline import make_pipeline
from sklearn.pipeline import Pipeline
from sklearn.impute import SimpleImputer
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder, StandardScaler
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV
Ensuite, nous définissons les étapes de prétraitement pour les caractéristiques numériques et catégorielles :
preprocesseur_numerique = Pipeline(
steps=[
("imputation_moyenne", SimpleImputer(missing_values=np.nan, strategy="mean")),
("scalage", StandardScaler()),
]
)
preprocesseur_categorique = Pipeline(
steps=[
(
"imputation_constante",
SimpleImputer(fill_value="manquant", strategy="constant"),
),
("onehot", OneHotEncoder(handle_unknown="ignore")),
]
)
Ensuite, nous créons le ColumnTransformer :
preprocesseur = ColumnTransformer(
[
("catégorique", preprocesseur_categorique, ["état", "genre"]),
("numérique", preprocesseur_numerique, ["âge", "poids"]),
]
)
Ensuite, nous créons le pipeline :
pipe = Pipeline(
steps=[("preprocesseur", preprocesseur), ("classifieur", RandomForestClassifier())]
)
Ensuite, nous définissons la grille de paramètres pour la recherche en grille :
param_grid = {
"classifieur__n_estimators": [200, 500],
"classifieur__max_features": ["auto", "sqrt", "log2"],
"classifieur__max_depth": [4, 5, 6, 7, 8],
"classifieur__criterion": ["gini", "entropie"],
}
Enfin, nous créons la recherche en grille :
grid_search = GridSearchCV(pipe, param_grid=param_grid, n_jobs=1)
Et affichons la représentation visuelle de la recherche en grille :
grid_search
Sommaire
Ce laboratoire a fourni un guide étape par étape sur la manière de construire et d'afficher des pipelines dans Scikit-Learn. Nous avons abordé des pipelines simples avec une étape de prétraitement et un classifieur, des pipelines enchaînant plusieurs étapes de prétraitement et un classifieur, des pipelines avec une réduction de dimensionnalité et un classifieur, des pipelines complexes enchaînant un ColumnTransformer et un classifieur, et des recherches en grille sur des pipelines avec un classifieur.