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

Введение

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

На приведенном выше рисунке показано, насколько важно значение k для прогнозирования правильного класса для новой точки данных. Как показано для k = 3, новая точка данных находится в классе B, но для k = 6 она принадлежит классу A. Таким образом, использование правильного значения k действительно важно в KNN.

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

Когда использовать алгоритм KNN?

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

Он обычно используется из-за простоты интерпретации и небольшого времени расчета.

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

Евклидово расстояние

Это наименьшее возможное расстояние между точками A и B. Хотя евклидово расстояние полезно в малых размерностях, оно плохо работает в больших размерностях и для категориальных переменных.

Манхэттенское расстояние

Расстояние между точками А и В измеряется по оси прямого угла. Мы хотим рассчитать расстояние d между двумя точками данных — x и г.

ЗАЧЕМ ИСПОЛЬЗОВАТЬ?

Алгоритм прост и легко реализуем.

Нет необходимости строить модель, настраивать несколько параметров или делать дополнительные предположения.

Алгоритм универсальный. Его можно использовать для классификации, регрессии и поиска.

ПОЧЕМУ НЕТ?

Алгоритм становится значительно медленнее по мере увеличения количества примеров и/или предикторов/независимых переменных.

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