Что такое K-ближайшие соседи?

KNN — это контролируемый алгоритм машинного обучения, который можно использовать как для задач регрессии, так и для задач классификации.
Объяснение того, почему следует использовать KNN по сравнению с другими алгоритмами, будет объяснено позже.

Как работает K-ближайшие соседи? (Проблема классификации)

Мы не сомневаемся, что алгоритмам машинного обучения нужны данные для обучения. KNN не является исключением.
Чтобы объяснить, как работает KNN, давайте рассмотрим пример:

Давайте рассмотрим задачу, в которой нам даны рост и вес человека, мы должны классифицировать, годен ли человек для службы в армии или нет (извините, не удалось найти лучшего примера), и предположим, что рисунок 1.1 представляет это. данные многих людей. где красный представляет собой Fit, синий представляет собой непригодный.

Итак, скажем, новый человек должен пройти этот тест, чтобы быть отнесенным к одному из этих классов (пригодный/непригодный).

Теперь пусть рост нового человека будет H, а вес W.
и Красная звезда на рис. 1.2 представляют этого нового человека.
Итак, координаты Звезда будет (H,W)

В KNN мы должны вручную выбрать значение имени переменной k, что будет показано позже.

В этом случае давайте попробуем k=3 и k=6:
если K = 3, мы собираемся найти 3 существующие точки данных в нашем тренировочном наборе, ближайшие к нашей Красной звезде (Новый человек).

Как найти ближайшие 3 точки к новой точке данных?

  1. Найдите евклидово расстояние между новой точкой данных (H, W) и всеми другими точками данных в обучающем наборе и поместите их в массив.

2. Отсортировать массив в порядке возрастания
3. Получить первые 3 элемента массива (потому что k=3)

Как классифицировать нового человека?

Теперь, когда мы получили 3 точки данных, наиболее близких к координатам Red Star (новый человек), осталось только найти классы, к которым принадлежат эти 3 точки данных.< br /> Если 2 из них принадлежат к классу годных, а другой принадлежит к классу непригодных, то мы классифицируем нового человека (Красную Звезду) как годного. а если это не так, мы классифицируем нового человека как непригодного.

Так работает KNN. мы буквально классифицируем данные на основе класса большинства соседних данных (евклидово расстояние), отсюда и название K ближайших соседей.

Как работает K-ближайшие соседи? (Проблема регрессии)

Все шаги одинаковы для регрессии и классификации до получения
«K» элементов массива (показано выше)

после нахождения K элементов, ближайших к новой точке данных. мы берем среднее значение зависимой переменной Y элементов «K» в списке, и это значение присваивается как значение для Y новой точки данных.

Примечание. В отличие от классификации, выходные данные регрессии представляют собой непрерывные значения для регрессии, поэтому мы берем среднее значение k верхних элементов массива и назначаем это значение в качестве прогнозируемого значения для наших новых данных.

Почему значение К важно?

K влияет на точность нашей модели, и количество ближайших соседей, из которых классифицируются новые данные, очень важно
очень малое значение для K может привести к переоснащению, а очень маленькое значение для k может привести к недообучению. Итак, выбор правильного значения для K очень важен.

Как выбрать значение K?

Не существует идеального способа выбрать значение для K. Но оно в значительной степени зависит от набора данных.

Но все же есть некоторые показатели оценки, которые упрощают задачу.
использование тестового набора и функции потерь.
Итак, функция потерь — это то, что говорит нам о том, насколько наши прогнозируемые значения отклоняются от фактическая стоимость

Для задачи регрессии мы можем использовать среднеквадратичную ошибку потерь, а для задач классификации мы можем использовать либо бинарную кросс-энтропию, либо категориальную кросс-энтропию потерь в зависимости от типа классификации.

Объяснение этих функций потерь выходит за рамки этой статьи. Но основной вывод заключается в том, что мы могли бы использовать разные значения K и вычислять потери, используя функцию потерь для каждого значения.
Наконец, мы выбираем значение K, для которого потери являются самыми низкими.

Вывод

Итак, KNN — это простой, но эффективный алгоритм, так как он сильно зависит от координат соседних значений, и именно так он работает.

Спасибо за прочтение