Колонний Трансформер
Під час виклику .fit_transform(X) для Pipeline, кожен трансформер застосовується до всіх стовпців, що не завжди бажано. Деякі стовпці можуть вимагати різних кодувальників — наприклад, OrdinalEncoder для порядкових ознак і OneHotEncoder для номінативних.
ColumnTransformer вирішує цю проблему, дозволяючи призначати різні трансформери для конкретних стовпців за допомогою make_column_transformer.
make_column_transformer приймає кортежі у форматі (transformer, [columns]).
Наприклад, застосування OrdinalEncoder до 'education' та OneHotEncoder до 'gender':
ct = make_column_transformer(
(OrdinalEncoder(), ['education']),
(OneHotEncoder(), ['gender']),
remainder='passthrough'
)
remainder визначає, що відбувається з не вказаними стовпцями.
За замовчуванням: 'drop'.
Щоб залишити всі інші стовпці без змін, встановіть remainder='passthrough'.
Наприклад, розгляньте файл exams.csv. Він містить кілька номінативних стовпців ('gender', 'race/ethnicity', 'lunch', 'test preparation course') та один порядковий стовпець — 'parental level of education'.
12345import 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())
Використовуючи ColumnTransformer, номінативні дані можна трансформувати за допомогою OneHotEncoder, а порядкові — за допомогою OrdinalEncoder за один крок.
12345678910111213from 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))
ColumnTransformer сам є трансформером, тому надає стандартні методи .fit(), .fit_transform() та .transform().
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
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
Колонний Трансформер
Свайпніть щоб показати меню
Під час виклику .fit_transform(X) для Pipeline, кожен трансформер застосовується до всіх стовпців, що не завжди бажано. Деякі стовпці можуть вимагати різних кодувальників — наприклад, OrdinalEncoder для порядкових ознак і OneHotEncoder для номінативних.
ColumnTransformer вирішує цю проблему, дозволяючи призначати різні трансформери для конкретних стовпців за допомогою make_column_transformer.
make_column_transformer приймає кортежі у форматі (transformer, [columns]).
Наприклад, застосування OrdinalEncoder до 'education' та OneHotEncoder до 'gender':
ct = make_column_transformer(
(OrdinalEncoder(), ['education']),
(OneHotEncoder(), ['gender']),
remainder='passthrough'
)
remainder визначає, що відбувається з не вказаними стовпцями.
За замовчуванням: 'drop'.
Щоб залишити всі інші стовпці без змін, встановіть remainder='passthrough'.
Наприклад, розгляньте файл exams.csv. Він містить кілька номінативних стовпців ('gender', 'race/ethnicity', 'lunch', 'test preparation course') та один порядковий стовпець — 'parental level of education'.
12345import 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())
Використовуючи ColumnTransformer, номінативні дані можна трансформувати за допомогою OneHotEncoder, а порядкові — за допомогою OrdinalEncoder за один крок.
12345678910111213from 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))
ColumnTransformer сам є трансформером, тому надає стандартні методи .fit(), .fit_transform() та .transform().
Дякуємо за ваш відгук!