K-Nearest Neighbor (K NN) - один из простейших и мощных контролируемых алгоритмов машинного обучения. Основное внимание в алгоритме уделяется прогнозированию результатов на большом наборе данных без фактического обучения. Да, вы не ослышались, этот алгоритм не выполняет обучение и прогнозирует результаты непосредственно на фактическом наборе данных во время выполнения.

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

Лучшее применение K-Nearest Neighbor - это Recommender Systems. Он рекомендует аналогичные товары, приобретенные другими пользователями. Он также рекомендует другой набор предметов, которые часто покупаются вместе. По сути, алгоритм сравнивает набор пользователей, которым нравится каждый элемент, и ищет сходство. Еще несколько приложений KNN - это интеллектуальный анализ данных, распознавание образов, семантический поиск, обнаружение вторжений и обнаружение аномалий.

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

Точность этого алгоритма довольно хороша по сравнению с простыми алгоритмами машинного обучения, такими как логистическая регрессия и дерево решений, но алгоритмы ансамбля, такие как Random Forest и AdaBoost, будут превосходить kNN по точности, но эти алгоритмы ансамбля требуют гораздо больше вычислительных возможностей для обучения набора данных. .

Как работает алгоритм K-NN?

Шаги для выполнения алгоритма KNN:

1. Первый шаг - определить значение K.

2. Затем вычислите расстояния между данными теста и всеми данными обучения. Наиболее часто используемые методы вычисления расстояния - это евклидово и косинусное подобие.

3. Найдите K-ближайших соседей на основе минимального расстояния между точками данных.

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

5. Верните прогнозируемое значение.

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

5. Верните прогнозируемое значение.

На приведенном выше рисунке значение K принято равным 3. Для прогнозирования новой категории на основе входных данных необходимо учитывать всего три точки, и на основе голосования большинством категория будет присвоена выходным данным прогнозирования. На рисунке выше x проверяет ввод, а 3 ближайших соседа x - это два синих шара и 1 красный квадрат. Таким образом, на основе большинства прогнозов для тестового ввода будет синий шар.

Преимущества и недостатки K-NN

Преимущества:

  1. Время для обучающих данных сравнительно очень мало, так как вычисления выполняются во время прогнозирования на основе обучающих данных K-ближайших соседей.
  2. Это очень простой алгоритм для понимания и реализации.
  3. Для обучающей модели обобщения не требуется.
  4. Не делает предположений относительно данных.
  5. Относительно лучшая точность.

Недостатки:

  1. Во время прогнозирования требуется относительно больше времени, поскольку он вычисляет ближайших соседей во время прогнозирования с использованием обучающих данных.
  2. Поскольку этот алгоритм лучше всего подходит для больших обучающих данных, требуется больше памяти для хранения всех обучающих данных для прогнозирования.
  3. Евклидово расстояние чувствительно к величине. Объекты с большими величинами будут весить больше, чем объекты с низкими величинами.
  4. Не подходит для данных большого размера.

Вывод:

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

Использованная литература:

  1. Https://www.ijera.com/papers/Vol3_issue5/DI35605610.pdf
  2. Https://www.knowledgehut.com/blog/data-science/knn-for-machine-learning