Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Prétraitement Efficace des Données avec des Pipelines | Pipelines
Introduction au ML Avec Scikit-Learn

bookPrétraitement Efficace des Données avec des Pipelines

Avec la possibilité de transformer les colonnes séparément à l'aide de la fonction make_column_transformer, l'étape suivante consiste à construire des pipelines. Un pipeline est un conteneur qui organise les étapes de prétraitement et les applique séquentiellement.

Un pipeline dans Scikit-learn peut être créé soit à l'aide du constructeur de la classe Pipeline, soit avec la fonction make_pipeline du module sklearn.pipeline. Ce cours se concentrera sur make_pipeline, car son utilisation est plus simple.

Il suffit de passer tous les transformateurs en arguments à une fonction. La création de pipelines est aussi simple que cela.

Cependant, lorsque la méthode .fit_transform(X) est appelée sur l'objet Pipeline, elle applique .fit_transform(X) à chaque transformateur à l'intérieur du pipeline. Ainsi, si certaines colonnes doivent être traitées différemment, il convient d'utiliser un ColumnTransformer et de le passer à make_pipeline().

Construire un pipeline en utilisant le même fichier que dans le chapitre précédent. Le pipeline doit inclure des encodeurs pour les variables catégorielles ainsi que SimpleImputer. Étant donné que le jeu de données contient à la fois des variables nominales et ordinales, utiliser un ColumnTransformer pour les traiter séparément.

1234567891011121314151617
import pandas as pd from sklearn.compose import make_column_transformer from sklearn.preprocessing import OneHotEncoder, OrdinalEncoder from sklearn.impute import SimpleImputer from sklearn.pipeline import make_pipeline df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/exams.csv') # Making a column transformer edu_categories = ['high school', 'some high school', 'some college', "associate's degree", "bachelor's degree", "master's degree"] ct = make_column_transformer( (OrdinalEncoder(categories=[edu_categories]), ['parental level of education']), (OneHotEncoder(), ['gender', 'race/ethnicity', 'lunch', 'test preparation course']), remainder='passthrough' ) # Making a Pipeline pipe = make_pipeline(ct, SimpleImputer(strategy='most_frequent')) print(pipe.fit_transform(df))
copy
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 3

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Suggested prompts:

Can you explain what each step in the pipeline is doing?

What is the difference between OneHotEncoder and OrdinalEncoder?

Why do we use SimpleImputer with the 'most_frequent' strategy here?

Awesome!

Completion rate improved to 3.13

bookPrétraitement Efficace des Données avec des Pipelines

Glissez pour afficher le menu

Avec la possibilité de transformer les colonnes séparément à l'aide de la fonction make_column_transformer, l'étape suivante consiste à construire des pipelines. Un pipeline est un conteneur qui organise les étapes de prétraitement et les applique séquentiellement.

Un pipeline dans Scikit-learn peut être créé soit à l'aide du constructeur de la classe Pipeline, soit avec la fonction make_pipeline du module sklearn.pipeline. Ce cours se concentrera sur make_pipeline, car son utilisation est plus simple.

Il suffit de passer tous les transformateurs en arguments à une fonction. La création de pipelines est aussi simple que cela.

Cependant, lorsque la méthode .fit_transform(X) est appelée sur l'objet Pipeline, elle applique .fit_transform(X) à chaque transformateur à l'intérieur du pipeline. Ainsi, si certaines colonnes doivent être traitées différemment, il convient d'utiliser un ColumnTransformer et de le passer à make_pipeline().

Construire un pipeline en utilisant le même fichier que dans le chapitre précédent. Le pipeline doit inclure des encodeurs pour les variables catégorielles ainsi que SimpleImputer. Étant donné que le jeu de données contient à la fois des variables nominales et ordinales, utiliser un ColumnTransformer pour les traiter séparément.

1234567891011121314151617
import pandas as pd from sklearn.compose import make_column_transformer from sklearn.preprocessing import OneHotEncoder, OrdinalEncoder from sklearn.impute import SimpleImputer from sklearn.pipeline import make_pipeline df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/exams.csv') # Making a column transformer edu_categories = ['high school', 'some high school', 'some college', "associate's degree", "bachelor's degree", "master's degree"] ct = make_column_transformer( (OrdinalEncoder(categories=[edu_categories]), ['parental level of education']), (OneHotEncoder(), ['gender', 'race/ethnicity', 'lunch', 'test preparation course']), remainder='passthrough' ) # Making a Pipeline pipe = make_pipeline(ct, SimpleImputer(strategy='most_frequent')) print(pipe.fit_transform(df))
copy
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 3
some-alt