Що таке k-NN
Свайпніть щоб показати меню
Розпочнемо наше знайомство з класифікацією з найпростішого завдання — бінарної класифікації. Припустимо, ми хочемо класифікувати солодощі як печиво/не печиво на основі однієї ознаки: їхньої ваги.
Простий спосіб передбачити клас нового об'єкта — подивитися на його найближчого сусіда. У нашому прикладі потрібно знайти солодощі, вага яких найбільш схожа на вагу нового об'єкта.
У цьому й полягає суть методу k-ближчих сусідів (k-NN) — ми просто розглядаємо сусідів. Алгоритм k-NN передбачає, що подібні об'єкти знаходяться у близькому оточенні. Іншими словами, схожі об'єкти розташовані поруч один з одним. k у k-NN означає кількість сусідів, яких ми враховуємо під час передбачення.
У наведеному вище прикладі ми розглядали лише 1 сусіда, тобто це був метод найближчого сусіда (1-Nearest Neighbor). Проте зазвичай значення k встановлюють більшим, оскільки орієнтація лише на одного сусіда може бути ненадійною:
Якщо k (кількість сусідів) більше одного, для передбачення обирають найбільш поширений клас серед сусідів. Ось приклад передбачення для двох нових об'єктів при k=3:
Як видно, зміна значення k може призвести до різних результатів передбачення.
Іноді алгоритм k-NN створює нічийний результат, коли кілька класів зустрічаються однаково часто серед найближчих сусідів. Більшість бібліотек, включаючи scikit-learn, вирішують такі ситуації, обираючи перший клас у своєму внутрішньому порядку — це варто враховувати, оскільки це може непомітно впливати на відтворюваність і тлумачення результатів.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат