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