Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Фінальний Оцінювач | Розділ
Practice
Projects
Quizzes & Challenges
Вікторини
Challenges
/
Основи машинного навчання

bookФінальний Оцінювач

Pipeline раніше використовувався для попередньої обробки, але його справжнє призначення — поєднання попередньої обробки з фінальним предиктором. Останній крок у pipeline може бути будь-яким оцінювачем (зазвичай моделлю), який генерує передбачення.

Note
Примітка

Під час виклику .fit() кожен трансформер виконує .fit_transform(). Під час виклику .predict() pipeline використовує .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)

Це дозволяє виконати весь робочий процес—попередню обробку + прогнозування—одним викликом.

question mark

Які твердження щодо фінального оцінювача та попередньої обробки в конвеєрі є правильними?

Select all correct answers

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

bookФінальний Оцінювач

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

Pipeline раніше використовувався для попередньої обробки, але його справжнє призначення — поєднання попередньої обробки з фінальним предиктором. Останній крок у pipeline може бути будь-яким оцінювачем (зазвичай моделлю), який генерує передбачення.

Note
Примітка

Під час виклику .fit() кожен трансформер виконує .fit_transform(). Під час виклику .predict() pipeline використовує .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)

Це дозволяє виконати весь робочий процес—попередню обробку + прогнозування—одним викликом.

question mark

Які твердження щодо фінального оцінювача та попередньої обробки в конвеєрі є правильними?

Select all correct answers

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

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

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

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