Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Недолік GridSearchCV | Моделювання
Quizzes & Challenges
Quizzes
Challenges
/
Вступ до машинного навчання з Python

bookНедолік GridSearchCV

Перед використанням GridSearchCV зверніть увагу, що у KNeighborsClassifier є більше гіперпараметрів, ніж лише n_neighbors. Два важливих параметри — це weights та p.

Ваги

За замовчуванням класифікатор використовує weights='uniform', тобто всі k сусідів мають однакову вагу при голосуванні. Встановлення weights='distance' надає ближчим сусідам більший вплив, що часто покращує передбачення, коли найближчі точки є більш релевантними.

P

Параметр p визначає метрику відстані:

  • p=1: Манхеттенська відстань;
  • p=2: Евклідова відстань.

Параметр p може приймати будь-яке додатне ціле число. Існує багато різних метрик відстані, але їх важче візуалізувати, ніж p=1 або p=2.

Note
Примітка

Не переймайтеся, якщо деталі щодо weights або p залишаються незрозумілими. Вони наведені лише для того, щоб показати, що існує декілька гіперпараметрів, які можуть впливати на передбачення моделі. Розглядайте їх як приклади гіперпараметрів, які можна налаштовувати.

Раніше налаштовувався лише параметр n_neighbors. Щоб здійснити пошук за всіма трьома гіперпараметрами, використовуйте:

param_grid = {
    'n_neighbors': [1, 3, 5, 7],
    'weights': ['distance', 'uniform'],
    'p': [1, 2]
}

GridSearchCV перевіряє всі можливі комбінації для знаходження найкращої, тому він спробує всі такі варіанти:

Більша сітка, наприклад:

param_grid = {
    'n_neighbors': [...],
    'weights': ['distance', 'uniform'],
    'p': [1, 2, 3, 4, 5]
}

створює 100 комбінацій. З 5-кратною крос-валідацією модель навчається 500 разів. Це прийнятно для невеликих наборів даних, але для більших це стає надто повільно.

Щоб зменшити час обчислень, RandomizedSearchCV перевіряє лише випадкову підмножину комбінацій, зазвичай знаходячи хороші результати значно швидше, ніж повний перебір сітки.

question mark

Головна проблема GridSearchCV полягає в тому, що він перебирає всі можливі комбінації (зазначені в param_grid), що може займати багато часу. Чи є це твердження правильним?

Select the correct answer

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Suggested prompts:

Can you explain how RandomizedSearchCV selects the combinations to test?

What are some best practices for choosing the range of hyperparameters?

How do I interpret the results from GridSearchCV or RandomizedSearchCV?

bookНедолік GridSearchCV

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

Перед використанням GridSearchCV зверніть увагу, що у KNeighborsClassifier є більше гіперпараметрів, ніж лише n_neighbors. Два важливих параметри — це weights та p.

Ваги

За замовчуванням класифікатор використовує weights='uniform', тобто всі k сусідів мають однакову вагу при голосуванні. Встановлення weights='distance' надає ближчим сусідам більший вплив, що часто покращує передбачення, коли найближчі точки є більш релевантними.

P

Параметр p визначає метрику відстані:

  • p=1: Манхеттенська відстань;
  • p=2: Евклідова відстань.

Параметр p може приймати будь-яке додатне ціле число. Існує багато різних метрик відстані, але їх важче візуалізувати, ніж p=1 або p=2.

Note
Примітка

Не переймайтеся, якщо деталі щодо weights або p залишаються незрозумілими. Вони наведені лише для того, щоб показати, що існує декілька гіперпараметрів, які можуть впливати на передбачення моделі. Розглядайте їх як приклади гіперпараметрів, які можна налаштовувати.

Раніше налаштовувався лише параметр n_neighbors. Щоб здійснити пошук за всіма трьома гіперпараметрами, використовуйте:

param_grid = {
    'n_neighbors': [1, 3, 5, 7],
    'weights': ['distance', 'uniform'],
    'p': [1, 2]
}

GridSearchCV перевіряє всі можливі комбінації для знаходження найкращої, тому він спробує всі такі варіанти:

Більша сітка, наприклад:

param_grid = {
    'n_neighbors': [...],
    'weights': ['distance', 'uniform'],
    'p': [1, 2, 3, 4, 5]
}

створює 100 комбінацій. З 5-кратною крос-валідацією модель навчається 500 разів. Це прийнятно для невеликих наборів даних, але для більших це стає надто повільно.

Щоб зменшити час обчислень, RandomizedSearchCV перевіряє лише випадкову підмножину комбінацій, зазвичай знаходячи хороші результати значно швидше, ніж повний перебір сітки.

question mark

Головна проблема GridSearchCV полягає в тому, що він перебирає всі можливі комбінації (зазначені в param_grid), що може займати багато часу. Чи є це твердження правильним?

Select the correct answer

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

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

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

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