1/2 содержит теоретическую часть K — ближайший сосед.

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

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

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

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

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

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

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

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

Как работает K-NN?

Работу K-NN можно объяснить на основе следующего алгоритма:

  • Шаг 1: Выберите количество K соседей
  • Шаг 2: Рассчитайте евклидово расстояние K соседей
  • Шаг 3: Возьмите K ближайших соседей в соответствии с рассчитанным евклидовым расстоянием.
  • Шаг 4: Среди этих k соседей подсчитайте количество точек данных в каждой категории.
  • Шаг 5: Назначьте новые точки данных той категории, для которой количество соседей максимально.
  • Шаг 6: Наша модель готова.

KNN (графическое представление)

Как выбрать значение K в алгоритме K-NN?

  • Не существует конкретного способа определить наилучшее значение для «К», поэтому нам нужно попробовать несколько значений, чтобы найти лучшее из них. Наиболее предпочтительное значение К равно 5.
  • Очень низкое значение K, такое как K=1 или K=2, может быть зашумленным и привести к выбросам в модели.
  • Большие значения для K хороши, но могут возникнуть некоторые трудности.

Преимущества алгоритма KNN:

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

Недостатки алгоритма KNN:

  • Требование высокого хранения.
  • Скорость предсказания низкая.
  • Хранит все данные тренировки.
  • Алгоритм становится медленнее, когда количество примеров, предикторов или независимых переменных увеличивается.

Следите за новостями 2/2. Будет работать с набором данных KNN.

Заключение

Если вы обнаружите какие-либо трудности при следовании теоретической части, укажите их в разделе комментариев.

Спасибо, что прочитали! Дайте мне знать в комментарии или на linkedin, если вы считаете, что это помогло или не помогло. У меня есть еще несколько статей, которые я пишу и буду публиковать их каждые пару недель. В основном это аккаунты из моего проектного опыта. Если у вас есть какие-либо другие вопросы или что-то еще, о чем вы хотели бы услышать, не стесняйтесь отправить запрос.