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 :
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 variabledata
. Le tableaudata.data
contient les caractéristiques (features) des iris (longueur et largeur des sépales et pétales) et est assigné à la variableX
. Les labels (cibles), qui correspondent aux espèces des fleurs, sont stockés dansdata.target
et assignés à la variabley
.Créer un pipeline qui applique la standardisation avec StandardScaler
Un objet
pipeline
est créé à l'aide de la classePipeline
, 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 deStandardScaler()
, 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éeX
. 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 variableX_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.