Алгоритм K-Nearest Neighbours — это всего лишь представление машинного обучения цитаты «Рыбак рыбака слетается в стаю».

K-ближайшие соседи

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

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

Формула Евклидова расстояния

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

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

Приведенная выше формула работает одинаково для n измерений, и поэтому ее можно использовать с n числом признаков.

При распознавании образов используется непараметрический метод k-Nearest Neighbours (k-NN). для классификации и регрессии. В обоих случаях входные данные состоят из k ближайших обучающих примеров в пространстве признаков. Результат зависит от того, используется ли k-NN для классификации или регрессии:

  • В классификации k-NN результатом является принадлежность к классу. Объект классифицируется по множеству голосов его соседей, при этом объект присваивается классу, наиболее распространенному среди его k ближайших соседей (k — положительное целое число, обычно маленькое). ). Если k = 1, то объект просто присваивается классу этого единственного ближайшего соседа.
  • В регрессии k-NN результатом является значение свойства объекта. Это значение является средним значением k ближайших соседей.

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

K-NN работает по аналогии. Идея в том, что вы то, на что вы похожи. Поэтому, когда мы хотим классифицировать точку, мы смотрим на ее K-ближайших (наиболее похожих) соседей и классифицируем точку как класс большинства среди этих соседей.

КНН зависит от:

Метрика, используемая для вычисления расстояния между двумя точками, и значение «k» — количество рассматриваемых соседей.

Когда «k» — это очень небольшое число, которое KNN может переобучить, оно будет классифицировать только на основе ближайших соседей вместо того, чтобы изучать хорошую разделительную границу между классами. Но если «k» — очень большое число, KNN будет недооценивать, в пределе, если k = n, KNN будет думать, что каждая точка принадлежит классу с большим количеством выборок.

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

Реализация Python

Вывод:

Я надеюсь, что смог немного разъяснить вам это kNN это один из основных алгоритмов, я буду применять гораздо больше объяснений алгоритмов, потому что почему бы и нет :)

Это мое личное исследование, если у вас есть какие-либо комментарии, пожалуйста, свяжитесь со мной.

Github, LinkedIn, Захра Эльхамрауи, Upwork