Остаточний Оцінювач
До цього моменту Pipeline
використовувався переважно для попередньої обробки. Однак попередня обробка є лише проміжним етапом. Після трансформації дані зазвичай передаються предиктору (моделі) для отримання результатів або прогнозів.
Клас Pipeline
підтримує це, дозволяючи використовувати естіматор—зазвичай предиктор—як фінальний крок. Ілюстрація нижче демонструє, як працює Pipeline
, коли його останнім компонентом є предиктор.
Коли викликається метод .fit()
для pipeline, кожен трансформер виконує .fit_transform()
. На відміну від цього, при виклику .predict()
pipeline застосовує .transform()
до даних перед передачею їх предиктору.
Метод .predict()
використовується переважно для нових екземплярів, які повинні пройти ті ж самі трансформації, що й тренувальні дані під час .fit()
.
Чому .transform()
?
Pipeline застосовує .transform()
замість .fit_transform()
при обробці нових екземплярів даних для прогнозування. Це гарантує послідовність трансформацій між тренувальним і тестовим наборами.
Наприклад, розглянемо набір даних із категоріальною ознакою 'Color'
, яку необхідно закодувати перед навчанням моделі:
Ось як виглядають навчальні дані після one-hot кодування:
Ось нові екземпляри для прогнозування:
Якщо застосувати .fit_transform()
до нових екземплярів, OneHotEncoder
може створити стовпці в іншому порядку або навіть додати нові. Це призведе до того, що нові дані будуть трансформовані непослідовно з навчальним набором, що зробить прогнози ненадійними.
Однак використання .transform()
гарантує, що нові дані будуть закодовані точно так само, як і тренувальні дані, ігноруючи категорії, які не були присутні під час навчання:
Додавання фінального оцінювача
Щоб використати фінальний оцінювач, достатньо додати його як останній крок у конвеєрі. Наприклад, у наступному розділі ми використаємо модель KNeighborsClassifier
як фінальний оцінювач.
Синтаксис виглядає так:
# Creating a pipeline
pipe = make_pipeline(ct,
SimpleImputer(strategy='most_frequent'),
StandardScaler(),
KNeighborsClassifier()
)
# Training a model using pipeline
pipe.fit(X, y)
# Predicting new instances
pipe.predict(X_new)
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 3.13
Остаточний Оцінювач
Свайпніть щоб показати меню
До цього моменту Pipeline
використовувався переважно для попередньої обробки. Однак попередня обробка є лише проміжним етапом. Після трансформації дані зазвичай передаються предиктору (моделі) для отримання результатів або прогнозів.
Клас Pipeline
підтримує це, дозволяючи використовувати естіматор—зазвичай предиктор—як фінальний крок. Ілюстрація нижче демонструє, як працює Pipeline
, коли його останнім компонентом є предиктор.
Коли викликається метод .fit()
для pipeline, кожен трансформер виконує .fit_transform()
. На відміну від цього, при виклику .predict()
pipeline застосовує .transform()
до даних перед передачею їх предиктору.
Метод .predict()
використовується переважно для нових екземплярів, які повинні пройти ті ж самі трансформації, що й тренувальні дані під час .fit()
.
Чому .transform()
?
Pipeline застосовує .transform()
замість .fit_transform()
при обробці нових екземплярів даних для прогнозування. Це гарантує послідовність трансформацій між тренувальним і тестовим наборами.
Наприклад, розглянемо набір даних із категоріальною ознакою 'Color'
, яку необхідно закодувати перед навчанням моделі:
Ось як виглядають навчальні дані після one-hot кодування:
Ось нові екземпляри для прогнозування:
Якщо застосувати .fit_transform()
до нових екземплярів, OneHotEncoder
може створити стовпці в іншому порядку або навіть додати нові. Це призведе до того, що нові дані будуть трансформовані непослідовно з навчальним набором, що зробить прогнози ненадійними.
Однак використання .transform()
гарантує, що нові дані будуть закодовані точно так само, як і тренувальні дані, ігноруючи категорії, які не були присутні під час навчання:
Додавання фінального оцінювача
Щоб використати фінальний оцінювач, достатньо додати його як останній крок у конвеєрі. Наприклад, у наступному розділі ми використаємо модель KNeighborsClassifier
як фінальний оцінювач.
Синтаксис виглядає так:
# Creating a pipeline
pipe = make_pipeline(ct,
SimpleImputer(strategy='most_frequent'),
StandardScaler(),
KNeighborsClassifier()
)
# Training a model using pipeline
pipe.fit(X, y)
# Predicting new instances
pipe.predict(X_new)
Дякуємо за ваш відгук!