заглушки Что такое KNN (K-ближайшие соседи)? - Unite.ИИ
Свяжитесь с нами:
Мастер-класс по ИИ:

AI 101

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

mm
обновленный on

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

K-Nearest Neighbours — это метод и алгоритм машинного обучения, который может использоваться как для задач регрессии, так и для задач классификации. K-Ближайшие соседи осматривает метки выбранного количества точек данных вокруг целевой точки данных, чтобы сделать прогноз о классе, в который попадает точка данных. K-ближайшие соседи (KNN) — это концептуально простой, но очень мощный алгоритм, и по этим причинам он является одним из самых популярных алгоритмов машинного обучения. Давайте углубимся в алгоритм KNN и посмотрим, как именно он работает. Хорошее понимание того, как работает KNN, позволит вам оценить лучшие и худшие варианты использования KNN.

Обзор K-ближайших соседей (KNN)

Фото: Антти Аянки АнАй через Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:KnnClassification.svg)

Давайте визуализируем набор данных на 2D-плоскости. Представьте себе набор точек данных на графике, разбросанных по графику небольшими кластерами. KNN исследует распределение точек данных и, в зависимости от аргументов, переданных модели, разделяет точки данных на группы. Затем этим группам присваивается метка. Основное предположение, которое делает модель KNN, заключается в том, что точки данных/экземпляры, которые существуют в непосредственной близости друг от друга, очень похожи, в то время как, если точка данных находится далеко от другой группы, она не похожа на эти точки данных.

Модель KNN вычисляет сходство, используя расстояние между двумя точками на графике. Чем больше расстояние между точками, тем меньше они похожи. Существует несколько способов расчета расстояния между точками, но наиболее распространенной метрикой расстояния является просто евклидово расстояние (расстояние между двумя точками на прямой линии).

KNN — это алгоритм обучения с учителем, что означает, что примеры в наборе данных должны иметь назначенные им метки/их классы должны быть известны. Есть еще две важные вещи, которые нужно знать о KNN. Во-первых, KNN — это непараметрический алгоритм. Это означает, что при использовании модели не делается никаких предположений о наборе данных. Скорее, модель строится полностью на основе предоставленных данных. Во-вторых, при использовании KNN нет разделения набора данных на обучающую и тестовую выборки. KNN не делает никаких обобщений между обучающим и тестовым наборами, поэтому все обучающие данные также используются, когда модель просят сделать прогнозы.

Как работает алгоритм KNN

Алгоритм KNN проходит три основных этапа по мере его выполнения:

  1. Установка K на выбранное количество соседей.
  2. Расчет расстояния между предоставленным/тестовым примером и примерами набора данных.
  3. Сортировка рассчитанных расстояний.
  4. Получение меток первых K записей.
  5. Возвращает прогноз о тестовом примере.

На первом этапе пользователь выбирает K, и он сообщает алгоритму, сколько соседей (сколько окружающих точек данных) следует учитывать при вынесении суждения о группе, к которой принадлежит целевой пример. Обратите внимание, что на втором этапе модель проверяет расстояние между целевым примером и каждым примером в наборе данных. Затем расстояния добавляются в список и сортируются. После этого отсортированный список проверяется и возвращаются метки для первых K элементов. Другими словами, если для K установлено значение 5, модель проверяет метки первых 5 ближайших точек данных к целевой точке данных. При рендеринге прогноза о целевой точке данных важно, является ли задача регресс or классификация задача. Для задачи регрессии используется среднее значение K верхних меток, а в случае классификации используется мода K верхних меток.

Точные математические операции, используемые для выполнения KNN, различаются в зависимости от выбранной метрики расстояния. Если вы хотите узнать больше о том, как рассчитываются показатели, вы можете прочитать о некоторых наиболее распространенных показателях расстояния, таких как евклиды, Манхеттени Минковский.

Почему значение K имеет значение

Основное ограничение при использовании KNN заключается в том, что может быть выбрано неправильное значение K (неправильное количество рассматриваемых соседей). Если это произойдет, возвращаемые прогнозы могут существенно отличаться. Очень важно, чтобы при использовании алгоритма KNN было выбрано правильное значение K. Вы хотите выбрать значение для K, которое максимизирует способность модели делать прогнозы на невидимых данных, уменьшая при этом количество ошибок, которые она делает.

Фото: Agor153 через Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:Map1NN.png)

Более низкие значения K означают, что прогнозы, сделанные KNN, менее стабильны и надежны. Чтобы понять, почему это так, рассмотрим случай, когда у нас есть 7 соседей вокруг целевой точки данных. Предположим, что модель KNN работает со значением K, равным 2 (мы просим ее посмотреть на двух ближайших соседей, чтобы сделать прогноз). Если подавляющее большинство соседей (пять из семи) принадлежат к синему классу, но два ближайших соседа просто оказались красными, модель предскажет, что пример запроса — красный. Несмотря на предположение модели, в таком сценарии Blue будет лучшим предположением.

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

Плюсы и минусы КНН

Давайте рассмотрим некоторые плюсы и минусы модели KNN.

Плюсы:

KNN можно использовать как для задач регрессии, так и для задач классификации, в отличие от некоторых других алгоритмов обучения с учителем.

KNN очень точен и прост в использовании. Его легко интерпретировать, понять и реализовать.

KNN не делает никаких предположений о данных, а это означает, что его можно использовать для решения самых разных задач.

Минусы:

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

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

Краткое изложение K-ближайших соседей (KNN)

K-Nearest Neighbours — один из самых простых алгоритмов машинного обучения. Несмотря на простоту концепции KNN, это также мощный алгоритм, обеспечивающий довольно высокую точность в большинстве задач. При использовании KNN обязательно поэкспериментируйте с различными значениями K, чтобы найти число, обеспечивающее наибольшую точность.

Блогер и программист со специализацией в Машинное обучение и Глубокое обучение темы. Дэниел надеется помочь другим использовать возможности ИИ на благо общества.