Глоссарий

Ближайшие соседи (K-Nearest Neighbors, KNN)

Узнай, как K-Nearest Neighbors (KNN) упрощает машинное обучение благодаря интуитивно понятному непараметрическому подходу для задач классификации и регрессии.

Обучай модели YOLO просто
с помощью Ultralytics HUB.

Узнай больше

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

Как работает KNN

В своей основе алгоритм K-Nearest Neighbors работает по принципу сходства. Когда тебе представляют новую, неклассифицированную точку данных, KNN определяет ее "K" ближайших соседей из обучающего набора данных. Значение 'K' - это константа, задаваемая пользователем, и она определяет, сколько соседей влияет на классификацию. Процесс разворачивается следующим образом:

  1. Вычисление расстояния: KNN вычисляет расстояние между новой точкой данных и всеми остальными точками в обучающем наборе данных. Общепринятые метрики расстояний включают евклидово расстояние, манхэттенское расстояние и расстояние Минковского.
  2. Выбор соседей: Он выбирает "K" точек данных из обучающего множества, которые ближе всего к новой точке данных, основываясь на расстоянии, вычисленном на предыдущем шаге. Эти "K" точек и есть "ближайшие соседи".
  3. Классификация или регрессия:
    • Классификация: Для задач классификации KNN относит новую точку данных к тому классу, который наиболее часто встречается среди ее "K" ближайших соседей. По сути, это большинство голосов среди соседей.
    • Регрессия: Для задач регрессии KNN предсказывает значение для новой точки данных, вычисляя среднее (или медиану) значений ее "K" ближайших соседей.

Применение KNN

Универсальность KNN делает ее применимой в различных областях. Вот несколько примеров из реальной жизни:

  • Рекомендательные системы: На таких платформах, как Netflix или Amazon, KNN можно использовать для создания систем рекомендаций с коллаборативной фильтрацией. Например, если тебе нужны рекомендации по фильмам, KNN может найти пользователей, которые являются твоими "ближайшими соседями", основываясь на схожих историях просмотра, а затем рекомендовать фильмы, которые понравились этим соседям. Это использует идею о том, что пользователи со схожими предпочтениями в прошлом, скорее всего, будут иметь схожие предпочтения в будущем. Узнай больше о рекомендательных системах и других приложениях ИИ в аналитике данных.
  • Медицинская диагностика: KNN может помочь в анализе медицинских изображений для диагностики заболеваний. Анализируя данные о пациенте (симптомы, результаты анализов и т.д.), KNN может найти "K" похожих пациентов в базе данных и на основе их диагнозов предсказать диагноз для нового пациента. Например, при обнаружении рака можно использовать признаки, извлеченные из медицинских изображений, и KNN может классифицировать новые изображения на основе сходства с известными доброкачественными или злокачественными случаями.

Преимущества и недостатки KNN

Как и у всех алгоритмов, у KNN есть свои сильные и слабые стороны:

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

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

Недостатки:

  • Вычислительно дорого: Во время предсказания KNN нужно вычислить расстояния до всех точек обучающих данных, что может быть медленным для больших наборов данных.
  • Чувствителен к нерелевантным признакам: KNN плохо работает, если присутствуют нерелевантные признаки, так как они могут исказить расчеты расстояния. Может потребоваться отбор признаков или методы снижения размерности.
  • Оптимальное значение 'K': Выбор правильного значения 'K' очень важен и часто требует экспериментов. Слишком маленький "K" может привести к чувствительности к шуму, а слишком большой "K" - к размыванию границ классов. Такие техники, как настройка гиперпараметров, могут помочь в поиске оптимального значения 'K'.
  • Несбалансированные данные: KNN может быть смещен в сторону большинства классов в несбалансированных наборах данных, потому что образцы большинства классов будут доминировать в окрестностях.

Смежные понятия

Понимание KNN в связи с другими концепциями машинного обучения помогает оценить его нишу и то, когда его наиболее целесообразно использовать:

  • Сравнение с другими алгоритмами классификации: В отличие от логистической регрессии или машин опорных векторов, которые являются параметрическими и учат границу принятия решения, KNN является непараметрическим и основанным на экземплярах. Например, если логистическая регрессия моделирует вероятность принадлежности к классу, то KNN непосредственно использует сами точки данных для классификации.
  • Взаимосвязь с алгоритмами кластеризации: Хотя KNN - это алгоритм контролируемого обучения, он разделяет концепцию сходства на основе расстояния с алгоритмами неконтролируемого обучения, такими как кластеризация K-Means. Однако K-Means используется для группировки немеченых данных в кластеры, а KNN - для классификации или предсказания значений для новых, меченых или немеченых точек данных на основе меченых обучающих данных.

В общем, K-Nearest Neighbors - это основополагающий алгоритм машинного обучения, который ценится за свою простоту и эффективность в различных приложениях, особенно когда набор данных умеренного размера, а закономерности в данных различимы по близости. Для более сложных наборов данных или приложений, работающих в режиме реального времени и требующих более быстрого вывода, можно предпочесть более сложные модели, такие как Ultralytics YOLO для обнаружения объектов, могут быть предпочтительнее.

Читать полностью