Недолік GridSearchCV
Перш ніж розглядати GridSearchCV, важливо зазначити, що у KNeighborsClassifier є кілька гіперпараметрів, окрім n_neighbors. Два з них: weights та p.
Ваги
KNeighborsClassifier здійснює прогнозування, знаходячи k найближчих сусідів і призначаючи найбільш поширений клас серед них, незалежно від того, наскільки близько знаходиться кожен сусід.
Альтернативою є зважування сусідів за їхньою відстанню, надаючи більший вплив ближчим точкам. Це реалізується через weights='distance'.
За замовчуванням класифікатор використовує weights='uniform', коли всі сусіди мають однаковий внесок.
P
Гіперпараметр p визначає спосіб обчислення відстаней:
p=1: Манхеттенська відстань (сума абсолютних різниць між координатами);p=2: Евклідова відстань (відстань по прямій, знайома з геометрії).
Параметр p може приймати будь-яке додатне ціле число. Існує багато різних метрик відстані, але їх складніше візуалізувати, ніж випадки з p=1 або p=2.
Не переймайтеся, якщо деталі параметрів 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. Він досліджує лише підмножину всіх можливих комбінацій, значно скорочуючи час обчислень і водночас забезпечуючи високі результати.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 3.13
Недолік GridSearchCV
Свайпніть щоб показати меню
Перш ніж розглядати GridSearchCV, важливо зазначити, що у KNeighborsClassifier є кілька гіперпараметрів, окрім n_neighbors. Два з них: weights та p.
Ваги
KNeighborsClassifier здійснює прогнозування, знаходячи k найближчих сусідів і призначаючи найбільш поширений клас серед них, незалежно від того, наскільки близько знаходиться кожен сусід.
Альтернативою є зважування сусідів за їхньою відстанню, надаючи більший вплив ближчим точкам. Це реалізується через weights='distance'.
За замовчуванням класифікатор використовує weights='uniform', коли всі сусіди мають однаковий внесок.
P
Гіперпараметр p визначає спосіб обчислення відстаней:
p=1: Манхеттенська відстань (сума абсолютних різниць між координатами);p=2: Евклідова відстань (відстань по прямій, знайома з геометрії).
Параметр p може приймати будь-яке додатне ціле число. Існує багато різних метрик відстані, але їх складніше візуалізувати, ніж випадки з p=1 або p=2.
Не переймайтеся, якщо деталі параметрів 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. Він досліджує лише підмножину всіх можливих комбінацій, значно скорочуючи час обчислень і водночас забезпечуючи високі результати.
Дякуємо за ваш відгук!