Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Transformateur de Colonnes | Pipelines
Quizzes & Challenges
Quizzes
Challenges
/
Introduction à l'Apprentissage Automatique avec Python

bookTransformateur de Colonnes

Lors de l'appel à .fit_transform(X) sur un Pipeline, chaque transformateur est appliqué à toutes les colonnes, ce qui n'est pas toujours souhaitable. Certaines colonnes peuvent nécessiter des encodeurs différents — par exemple, OrdinalEncoder pour les variables ordinales et OneHotEncoder pour les variables nominales. ColumnTransformer résout ce problème en permettant d'assigner différents transformateurs à des colonnes spécifiques à l'aide de make_column_transformer.

make_column_transformer accepte des tuples de (transformer, [columns]). Par exemple, appliquer OrdinalEncoder à 'education' et OneHotEncoder à 'gender' :

ct = make_column_transformer(
   (OrdinalEncoder(), ['education']),
   (OneHotEncoder(), ['gender']),
   remainder='passthrough'
)
Note
Remarque

remainder contrôle le traitement des colonnes non spécifiées. Par défaut : 'drop'. Pour conserver toutes les autres colonnes inchangées, définir remainder='passthrough'.

Par exemple, considérez le fichier exams.csv. Il contient plusieurs colonnes nominales ('gender', 'race/ethnicity', 'lunch', 'test preparation course') et une colonne ordinale, 'parental level of education'.

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/exams.csv') print(df.head())
copy

En utilisant ColumnTransformer, les données nominales peuvent être transformées avec OneHotEncoder et les données ordinales avec OrdinalEncoder en une seule étape.

12345678910111213
from sklearn.compose import make_column_transformer from sklearn.preprocessing import OneHotEncoder, OrdinalEncoder 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' ) print(ct.fit_transform(df))
copy

Le ColumnTransformer est lui-même un transformateur, il fournit donc les méthodes standards .fit(), .fit_transform() et .transform().

question mark

Supposons que vous disposez d'un jeu de données avec les caractéristiques 'education', 'income', 'job'. Que va-t-il se passer avec la colonne 'income' après l'exécution du code suivant ? (Remarquez que l'argument remainder n'est pas spécifié)

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 2

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 the `remainder='passthrough'` argument does?

How do I know which columns are nominal or ordinal in my own dataset?

Can you show how to use the transformed data in a machine learning model?

Awesome!

Completion rate improved to 3.13

bookTransformateur de Colonnes

Glissez pour afficher le menu

Lors de l'appel à .fit_transform(X) sur un Pipeline, chaque transformateur est appliqué à toutes les colonnes, ce qui n'est pas toujours souhaitable. Certaines colonnes peuvent nécessiter des encodeurs différents — par exemple, OrdinalEncoder pour les variables ordinales et OneHotEncoder pour les variables nominales. ColumnTransformer résout ce problème en permettant d'assigner différents transformateurs à des colonnes spécifiques à l'aide de make_column_transformer.

make_column_transformer accepte des tuples de (transformer, [columns]). Par exemple, appliquer OrdinalEncoder à 'education' et OneHotEncoder à 'gender' :

ct = make_column_transformer(
   (OrdinalEncoder(), ['education']),
   (OneHotEncoder(), ['gender']),
   remainder='passthrough'
)
Note
Remarque

remainder contrôle le traitement des colonnes non spécifiées. Par défaut : 'drop'. Pour conserver toutes les autres colonnes inchangées, définir remainder='passthrough'.

Par exemple, considérez le fichier exams.csv. Il contient plusieurs colonnes nominales ('gender', 'race/ethnicity', 'lunch', 'test preparation course') et une colonne ordinale, 'parental level of education'.

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/exams.csv') print(df.head())
copy

En utilisant ColumnTransformer, les données nominales peuvent être transformées avec OneHotEncoder et les données ordinales avec OrdinalEncoder en une seule étape.

12345678910111213
from sklearn.compose import make_column_transformer from sklearn.preprocessing import OneHotEncoder, OrdinalEncoder 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' ) print(ct.fit_transform(df))
copy

Le ColumnTransformer est lui-même un transformateur, il fournit donc les méthodes standards .fit(), .fit_transform() et .transform().

question mark

Supposons que vous disposez d'un jeu de données avec les caractéristiques 'education', 'income', 'job'. Que va-t-il se passer avec la colonne 'income' après l'exécution du code suivant ? (Remarquez que l'argument remainder n'est pas spécifié)

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 2
some-alt