Основи ШІ
Що таке KNN (K-Nearest Neighbors)?
Що таке K-Nearest Neighbors (KNN)?
K-Nearest Neighbors – це техніка та алгоритм машинного навчання, який може бути використаний для задач регресії та класифікації. K-Nearest Neighbors аналізує мітки вибраних даних, що оточують цільовий дані, щоб зробити передбачення про клас, до якого належить цільовий дані. K-Nearest Neighbors (KNN) – це концептуально простий, але дуже потужний алгоритм, і саме тому він є одним з найпопулярніших алгоритмів машинного навчання. Давайте глибоко вивчимо алгоритм KNN і побачимо, як він працює. Маємо хорошнє розуміння того, як працює KNN, щоб оцінити найкращі та найгірші випадки використання KNN.
Огляд K-Nearest Neighbors (KNN)

Фото: Antti Ajanki AnAj via Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:KnnClassification.svg)
Давайте візуалізуємо набір даних на двовимірній площині. Уявіть собі набір даних, розкиданих по графіку в маленьких кластерах. KNN аналізує розподіл даних і, залежно від аргументів, переданих моделі, розділяє дані на групи. Цим групам потім присвоюються мітки. Основне припущення, яке робить модель KNN, полягає в тому, що дані, які існують в близькій відстані один від одного, є дуже схожими, тоді як якщо дані знаходяться далеко від іншої групи, вони є несхожими на ці дані.
Модель KNN розраховує схожість за допомогою відстані між двома точками на графіку. Чим більша відстань між точками, тим менше вони схожі. Є кілька способів розрахунку відстані між точками, але найпоширенішим способом розрахунку відстані є просто евклідова відстань (відстань між двома точками по прямій).
KNN – це алгоритм супервізованого навчання, що означає, що приклади в наборі даних повинні мати присвоєні їм мітки/їх класи повинні бути відомі. Є дві інші важливі речі, які потрібно знати про KNN. По-перше, KNN – це непараметричний алгоритм. Це означає, що жодних припущень про набір даних не робиться при використанні моделі. Натомість модель будується повністю з наданих даних. По-друге, немає розділення набору даних на тренувальні та тестові набори при використанні KNN. KNN не робить жодних узагальнень між тренувальним та тестовим наборами, тому весь тренувальний набір даних також використовується, коли модель запитується щодо передбачення.
Як працює алгоритм KNN
Алгоритм KNN проходить через три основні фази під час його виконання:
- Встановлення K до вибраної кількості сусідів.
- Розрахунок відстані між наданим/тестовим прикладом та прикладами набору даних.
- Сортування розрахованих відстаней.
- Отримання міток верхніх K елементів.
- Повернення передбачення про тестовий приклад.
На першому етапі K вибирається користувачем і каже алгоритму, скільки сусідів (скількох навколишніх даних) потрібно розглянути при винесенні судження про групу, до якої належить цільовий приклад. На другому етапі зверніть увагу, що модель перевіряє відстань між цільовим прикладом та кожним прикладом набору даних. Відстані потім додаються до списку та сортуються. Після цього сортований список перевіряється, і мітки верхніх K елементів повертаються. Інакше кажучи, якщо K встановлено на 5, модель перевіряє мітки 5 найближчих даних до цільового даних. При винесенні передбачення про цільовий дані важливо, чи це задача регресії чи класифікації. Для задачі регресії використовується середнє значення верхніх K міток, тоді як для задачі класифікації використовується мода верхніх K міток.
Точні математичні операції, які використовуються для виконання KNN, залежать від вибраного метричного показника відстані. Якщо ви хочете дізнатися більше про те, як розраховуються метричні показники, ви можете прочитати про деякі з найпоширеніших метричних показників відстані, таких як евклідова, манхеттенська та мінковського.
Чому значення K має значення
Основне обмеження при використанні KNN полягає в тому, що може бути вибрано неправильне значення K (неправильна кількість сусідів, які потрібно розглянути). Якщо це трапиться, передбачення, які повертаються, можуть бути суттєво неправильними. Дуже важливо, щоб при використанні алгоритму KNN було вибрано правильне значення для K. Ви хочете вибрати значення K, яке максимізує здатність моделі робити передбачення про невидимі дані, одночасно зменшуючи кількість помилок, які вона робить.

Фото: Agor153 via Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:Map1NN.png)
Нижчі значення K означають, що передбачення, які повертаються KNN, є менш стабільними та надійними. Щоб зрозуміти, чому це так, розгляньте випадок, у якому у нас є 7 сусідів навколо цільового даних. Припустимо, що модель KNN працює з значенням K, встановленим на 2 (ми просимо її розглянути 2 найближчих сусідів, щоб зробити передбачення). Якщо більшість сусідів (п’ять з семи) належить до класу Blue, але 2 найближчих сусіди просто випадково належать до класу Red, модель передбачить, що цільовий приклад належить до класу Red. Навіть якщо модель робить передбачення, у такому сценарії Blue був би кращим передбаченням.
Якщо це так, чому б не вибрати найвище значення K, яке ми можемо? Це тому, що вказівка моделі розглянути занадто багато сусідів також зменшить точність. По мірі збільшення радіуса, який розглядає модель KNN, вона врешті-решт почне розгляняти дані, які знаходяться ближче до інших груп, ніж до цільового даних, і помилкова класифікація починає відбуватися. Наприклад, навіть якщо точка, яка спочатку була вибрана, знаходилася в одному з червоних регіонів вище, якщо K було встановлено занадто високо, модель досягне інших регіонів, щоб розглянути точки. При використанні моделі KNN пробуються різні значення K, щоб побачити, яке значення дає моделі найкращу продуктивність.
Переваги та недоліки KNN
Давайте розглянемо деякі переваги та недоліки моделі KNN.
Переваги:
KNN можна використовувати для задач регресії та класифікації, на відміну від деяких інших алгоритмів супервізованого навчання.
KNN є високоточним та простим у використанні. Він легко інтерпретується, зрозумілий та простий у реалізації.
KNN не робить жодних припущень про дані, що означає, що його можна використовувати для широкого спектра задач.
Недоліки:
KNN зберігає більшу частину або всі дані, що означає, що модель вимагає багато пам’яті та обчислювально дорога. Великі набори даних також можуть спричинити тривалі передбачення.
KNN виявляється дуже чутливим до масштабу набору даних і може бути легко збитим з рівноваги незначущими ознаками порівняно з іншими моделями.
Загальний огляд K-Nearest Neighbors (KNN)
K-Nearest Neighbors – це один з найпростіших алгоритмів машинного навчання. Навіть якщо KNN простий за концепцією, він також є потужним алгоритмом, який дає досить високу точність на більшості задач. Коли ви використовуєте KNN, переконайтеся, що експериментуєте з різними значеннями K, щоб знайти число, яке забезпечує найвищу точність.












