Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Ефективне Попереднє Опрацювання Даних за Допомогою Конвеєрів | Конвеєри
Вступ до ML з Scikit-learn

bookЕфективне Попереднє Опрацювання Даних за Допомогою Конвеєрів

Маючи можливість окремо трансформувати стовпці за допомогою функції make_column_transformer, наступним кроком є створення конвеєрів. Конвеєр — це контейнер, який організовує етапи попередньої обробки та застосовує їх послідовно.

Конвеєр у Scikit-learn можна створити за допомогою конструктора класу Pipeline або функції make_pipeline з модуля sklearn.pipeline. У цьому курсі основна увага приділяється make_pipeline, оскільки його простіше застосовувати.

Потрібно лише передати всі трансформатори як аргументи функції. Створення конвеєрів настільки просте.

Однак при виклику методу .fit_transform(X) для об'єкта Pipeline, він застосовує .fit_transform(X) до кожного трансформатора всередині конвеєра, тому якщо потрібно обробляти деякі стовпці по-різному, слід використати ColumnTransformer і передати його у make_pipeline().

Створіть конвеєр, використовуючи той самий файл, що й у попередньому розділі. Конвеєр має містити кодувальники для категоріальних ознак разом із SimpleImputer. Оскільки набір даних містить як номінативні, так і порядкові ознаки, використовуйте ColumnTransformer для їх окремої обробки.

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
Все було зрозуміло?

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

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

bookЕфективне Попереднє Опрацювання Даних за Допомогою Конвеєрів

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

Маючи можливість окремо трансформувати стовпці за допомогою функції make_column_transformer, наступним кроком є створення конвеєрів. Конвеєр — це контейнер, який організовує етапи попередньої обробки та застосовує їх послідовно.

Конвеєр у Scikit-learn можна створити за допомогою конструктора класу Pipeline або функції make_pipeline з модуля sklearn.pipeline. У цьому курсі основна увага приділяється make_pipeline, оскільки його простіше застосовувати.

Потрібно лише передати всі трансформатори як аргументи функції. Створення конвеєрів настільки просте.

Однак при виклику методу .fit_transform(X) для об'єкта Pipeline, він застосовує .fit_transform(X) до кожного трансформатора всередині конвеєра, тому якщо потрібно обробляти деякі стовпці по-різному, слід використати ColumnTransformer і передати його у make_pipeline().

Створіть конвеєр, використовуючи той самий файл, що й у попередньому розділі. Конвеєр має містити кодувальники для категоріальних ознак разом із SimpleImputer. Оскільки набір даних містить як номінативні, так і порядкові ознаки, використовуйте ColumnTransformer для їх окремої обробки.

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
Все було зрозуміло?

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

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

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