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