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