K Теория ближайших соседей

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

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

Этапы алгоритма KNN:

  • Сначала определяется параметр k. Этот параметр представляет собой количество ближайших к данной точке соседей.
  • Расстояние новых данных, которые должны быть включены в набор выборочных данных, рассчитывается индивидуально в соответствии с существующими данными.
  • Ближайшие k соседей рассматриваются с соответствующих расстояний.
  • Новые данные помечены.

На приведенной выше диаграмме k=3. Модель вычисляет расстояния между новыми и старыми точками данных. С учетом этих расстояний обозначены три ближайших к новым данным участка. Поскольку эти три точки включают две зеленые и одну красную, новая точка данных будет помечена как зеленая или класс B.

Примечание. Прогнозы в алгоритме KNN формируются на основе их сходства с ближайшими наблюдениями.

Вопрос. Почему нам не следует использовать алгоритм KNN для больших наборов данных?

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

Ниже вы можете увидеть графики с разными значениями k в алгоритме, созданном с помощью KNN.