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 ou MinMaxScaler). 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 ou numpy.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
    Résultat du code

    Explication du code :

    from sklearn.pipeline import Pipeline importe la classe Pipeline de la bibliothèque scikit-learn, qui permet de chaîner plusieurs étapes de transformation et d'apprentissage dans un même objet. from sklearn.preprocessing import StandardScaler importe la classe StandardScaler de la bibliothèque scikit-learn, utilisée pour normaliser les données, en les ramenant à une échelle standard (moyenne nulle et écart-type de 1). from sklearn.datasets import load_iris importe la fonction load_iris qui permet de charger un jeu de données d'exemple bien connu, le jeu de données Iris, contenant des mesures sur des fleurs d'iris.

    Charger l'exemple de jeu de données Iris

    La fonction load_iris() charge le jeu de données Iris dans la variable data. Le tableau data.data contient les caractéristiques (features) des iris (longueur et largeur des sépales et pétales) et est assigné à la variable X. Les labels (cibles), qui correspondent aux espèces des fleurs, sont stockés dans data.target et assignés à la variable y.

    Créer un pipeline qui applique la standardisation avec StandardScaler

    Un objet pipeline est créé à l'aide de la classe Pipeline, qui permet de chaîner des étapes de transformation. Dans ce cas, le pipeline contient une étape de standardisation appliquée aux données d'entrée via l'instance de StandardScaler(), nommée ici 'scaler'.

    Appliquer la standardisation sur les données

    La méthode fit_transform() est utilisée sur le pipeline pour appliquer la transformation (standardisation) aux données d'entrée X. Cette méthode calcule les paramètres nécessaires (moyenne et écart-type) et applique la transformation à l'ensemble des données. Le résultat est stocké dans la variable X_scaled, qui contient les données standardisées.

    Affichage des premières lignes des données standardisées

    La fonction print(X_scaled[:5]) affiche les 5 premières lignes des données standardisées, ce qui permet de vérifier l'application correcte de la transformation.