Ефективна Підготовка Даних за Допомогою Конвеєрів
Маючи можливість окремо трансформувати стовпці за допомогою функції make_column_transformer, наступним кроком є побудова конвеєрів. Конвеєр — це контейнер, який організовує кроки попередньої обробки та застосовує їх послідовно.
Конвеєр у Scikit-learn можна створити за допомогою конструктора класу Pipeline або функції make_pipeline з модуля sklearn.pipeline. У цьому курсі основна увага приділяється make_pipeline, оскільки його простіше застосовувати.
Потрібно лише передати всі трансформатори як аргументи до функції. Створення конвеєрів настільки просте.
Однак, коли ви викликаєте метод .fit_transform(X) для об'єкта Pipeline, він застосовує .fit_transform(X) до кожного трансформатора всередині конвеєра, тому якщо потрібно обробити деякі стовпці по-іншому, слід використати ColumnTransformer і передати його до make_pipeline().
Створення конвеєра з використанням того ж файлу, що й у попередньому розділі. Конвеєр повинен містити кодувальники для категоріальних ознак разом із SimpleImputer. Оскільки набір даних містить як номінативні, так і порядкові ознаки, використовуйте ColumnTransformer для їх окремої обробки.
1234567891011121314151617import 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))
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
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
Ефективна Підготовка Даних за Допомогою Конвеєрів
Свайпніть щоб показати меню
Маючи можливість окремо трансформувати стовпці за допомогою функції make_column_transformer, наступним кроком є побудова конвеєрів. Конвеєр — це контейнер, який організовує кроки попередньої обробки та застосовує їх послідовно.
Конвеєр у Scikit-learn можна створити за допомогою конструктора класу Pipeline або функції make_pipeline з модуля sklearn.pipeline. У цьому курсі основна увага приділяється make_pipeline, оскільки його простіше застосовувати.
Потрібно лише передати всі трансформатори як аргументи до функції. Створення конвеєрів настільки просте.
Однак, коли ви викликаєте метод .fit_transform(X) для об'єкта Pipeline, він застосовує .fit_transform(X) до кожного трансформатора всередині конвеєра, тому якщо потрібно обробити деякі стовпці по-іншому, слід використати ColumnTransformer і передати його до make_pipeline().
Створення конвеєра з використанням того ж файлу, що й у попередньому розділі. Конвеєр повинен містити кодувальники для категоріальних ознак разом із SimpleImputer. Оскільки набір даних містить як номінативні, так і порядкові ознаки, використовуйте ColumnTransformer для їх окремої обробки.
1234567891011121314151617import 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))
Дякуємо за ваш відгук!