Standardisation et normalisation avec Pipeline
Utiliser un Pipeline en machine learning permet de chaîner plusieurs étapes de traitement des données, telles que la normalisation ou la standardisation, tout en assurant la bonne gestion des transformations. Grâce à un Pipeline, vous pouvez appliquer des transformations comme StandardScaler ou MinMaxScaler de manière cohérente et ordonnée. Cela garantit que les mêmes transformations sont appliquées de manière uniforme à la fois lors de l’entraînement et lors de la prédiction, tout en simplifiant le processus et en réduisant le risque d’erreurs dans les différentes étapes du flux de travail.
Fonctions :
-
Pipeline()
Pipeline permet de chaîner plusieurs étapes de transformation, telles que la normalisation ou la standardisation des données, et d'automatiser le prétraitement avant d'appliquer un modèle de machine learning. Cela garantit que chaque étape est appliquée dans le bon ordre, rendant le flux de travail plus lisible et moins sujet aux erreurs.
Importation :
from sklearn.pipeline import Pipeline from sklearn.preprocessing import StandardScaler from sklearn.datasets import load_iris
Attributs :
Paramètre Type Description Valeur par défaut steps
list of tuples Liste des étapes à effectuer, sous forme de tuples (nom, transformateur)
. Chaque transformateur peut être un modèle ou un préprocesseur.None
scaler
transformer object L'instance du transformateur utilisé pour standardiser ou normaliser les données (ex. StandardScaler
ouMinMaxScaler
).None
data
numpy.ndarray, pandas.DataFrame L'ensemble de données d'entrée qui sera transformé. Cela peut être un tableau de données sous forme de DataFrame
ounumpy.ndarray
.None
Exemple de code :
from sklearn.pipeline import Pipeline from sklearn.preprocessing import StandardScaler from sklearn.datasets import load_iris # Charger l'exemple de jeu de données Iris data = load_iris() X = data.data # Données d'entrée (features) y = data.target # Labels (cibles) # Créer un pipeline qui applique la standardisation avec StandardScaler pipeline = Pipeline([ ('scaler', StandardScaler()) # Étape de transformation : standardisation des données ]) # Appliquer la standardisation sur les données X_scaled = pipeline.fit_transform(X) # Affichage des premières lignes des données standardisées print(X_scaled[:5]) # Affiche les 5 premières lignes des données standardisées
Explication du code :
- Chargement des données : Nous chargeons l'ensemble de données Iris à l'aide de
load_iris()
depuissklearn.datasets
. Ce jeu de données contient 150 échantillons de fleurs avec 4 caractéristiques. - Création du Pipeline : Le pipeline est créé avec une étape de prétraitement, ici le
StandardScaler
qui standardise les données en les ajustant à une moyenne de 0 et un écart-type de 1. - Application de la transformation : Le pipeline est appliqué aux données
X
avecfit_transform()
, qui effectue la transformation (standardisation) sur les données d'entrée. - Affichage des résultats : Les 5 premières lignes des données standardisées sont affichées pour vérifier la transformation.
Explication de la fonction :
- La fonction Pipeline prend une liste de transformations à effectuer, et chaque transformation est désignée par un nom. Ici, nous appliquons une seule transformation avec
StandardScaler()
, mais plusieurs transformations peuvent être ajoutées. - L'avantage de l'utilisation de
Pipeline
est de garantir que toutes les étapes sont exécutées dans le bon ordre et de simplifier l'intégration avec des modèles de machine learning.
Conseils d'utilisation :
- Pipeline avec plusieurs transformations : Vous pouvez ajouter autant d'étapes que nécessaire dans un pipeline, y compris des étapes de prétraitement comme l'imputation des données manquantes ou l'encodage des variables catégorielles.
- Facilité d'intégration avec un modèle : Une fois le pipeline défini, il peut être directement utilisé avec un modèle de machine learning, ce qui garantit une application cohérente des transformations à la fois sur les données d'entraînement et de test.
- Chargement des données : Nous chargeons l'ensemble de données Iris à l'aide de