Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Колонний Трансформер | Конвеєри
Quizzes & Challenges
Quizzes
Challenges
/
Вступ до машинного навчання з Python

bookКолонний Трансформер

Під час виклику .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'
)
Note
Примітка

remainder визначає, що відбувається з не вказаними стовпцями. За замовчуванням: 'drop'. Щоб залишити всі інші стовпці без змін, встановіть remainder='passthrough'.

Наприклад, розгляньте файл exams.csv. Він містить кілька номінативних стовпців ('gender', 'race/ethnicity', 'lunch', 'test preparation course') та один порядковий стовпець — '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

Використовуючи ColumnTransformer, номінативні дані можна трансформувати за допомогою OneHotEncoder, а порядкові — за допомогою OrdinalEncoder за один крок.

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

ColumnTransformer сам є трансформером, тому надає стандартні методи .fit(), .fit_transform() та .transform().

question mark

Припустимо, у вас є набір даних з ознаками 'education', 'income', 'job'. Що станеться зі стовпцем 'income' після виконання наступного коду? (Зверніть увагу, що аргумент remainder не вказано)

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 2

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

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?

bookКолонний Трансформер

Свайпніть щоб показати меню

Під час виклику .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'
)
Note
Примітка

remainder визначає, що відбувається з не вказаними стовпцями. За замовчуванням: 'drop'. Щоб залишити всі інші стовпці без змін, встановіть remainder='passthrough'.

Наприклад, розгляньте файл exams.csv. Він містить кілька номінативних стовпців ('gender', 'race/ethnicity', 'lunch', 'test preparation course') та один порядковий стовпець — '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

Використовуючи ColumnTransformer, номінативні дані можна трансформувати за допомогою OneHotEncoder, а порядкові — за допомогою OrdinalEncoder за один крок.

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

ColumnTransformer сам є трансформером, тому надає стандартні методи .fit(), .fit_transform() та .transform().

question mark

Припустимо, у вас є набір даних з ознаками 'education', 'income', 'job'. Що станеться зі стовпцем 'income' після виконання наступного коду? (Зверніть увагу, що аргумент remainder не вказано)

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 2
some-alt