Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Недолік GridSearchCV | Моделювання
Вступ до ML з Scikit-learn

bookНедолік GridSearchCV

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

Ваги

KNeighborsClassifier здійснює прогнозування, знаходячи k найближчих сусідів і призначаючи найбільш поширений клас серед них, незалежно від того, наскільки близько знаходиться кожен сусід.

Альтернативою є зважування сусідів за їхньою відстанню, надаючи більший вплив ближчим точкам. Це реалізується за допомогою weights='distance'.

За замовчуванням класифікатор використовує weights='uniform', коли всі сусіди мають однаковий внесок.

P

Гіперпараметр p визначає спосіб обчислення відстаней:

  • p=1: Манхеттенська відстань (сума модулів різниць координат);
  • p=2: Евклідова відстань (відстань по прямій, знайома з геометрії).

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

Note
Примітка

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

У попередньому розділі для налаштування використовувався лише параметр GridSearchCV у n_neighbors. Щоб знайти найкращу комбінацію параметрів n_neighbors, weights та p, можна визначити param_grid так:

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

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

Це суттєво збільшує простір пошуку. Наприклад:

param_grid = {
    'n_neighbors': [1, 3, 5, 7, 9, 12, 15, 17, 20, 25],
    '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

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

Awesome!

Completion rate improved to 3.13

bookНедолік GridSearchCV

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

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

Ваги

KNeighborsClassifier здійснює прогнозування, знаходячи k найближчих сусідів і призначаючи найбільш поширений клас серед них, незалежно від того, наскільки близько знаходиться кожен сусід.

Альтернативою є зважування сусідів за їхньою відстанню, надаючи більший вплив ближчим точкам. Це реалізується за допомогою weights='distance'.

За замовчуванням класифікатор використовує weights='uniform', коли всі сусіди мають однаковий внесок.

P

Гіперпараметр p визначає спосіб обчислення відстаней:

  • p=1: Манхеттенська відстань (сума модулів різниць координат);
  • p=2: Евклідова відстань (відстань по прямій, знайома з геометрії).

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

Note
Примітка

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

У попередньому розділі для налаштування використовувався лише параметр GridSearchCV у n_neighbors. Щоб знайти найкращу комбінацію параметрів n_neighbors, weights та p, можна визначити param_grid так:

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

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

Це суттєво збільшує простір пошуку. Наприклад:

param_grid = {
    'n_neighbors': [1, 3, 5, 7, 9, 12, 15, 17, 20, 25],
    '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