Колонний Трансформер
Під час виклику .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().
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Чудово!
Completion показник покращився до 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().
Дякуємо за ваш відгук!