Глоссарий

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

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

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

Узнай больше

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

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

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

  • Для классификации: Новая точка данных относится к тому классу, который наиболее распространен среди ее K ближайших соседей. Если K=3, а два соседа принадлежат к классу A и один - к классу B, то новая точка классифицируется как класс A.
  • Для регрессии: Прогноз для новой точки данных обычно представляет собой среднее (или иногда медиану) значений ее K ближайших соседей.

Выбор метрики расстояния и значение 'K' - важнейшие гиперпараметры, которые существенно влияют на производительность модели.

Выбор значения 'K'

Выбор оптимального значения 'K' очень важен. Маленькое значение K делает модель чувствительной к шуму и провалам, что потенциально может привести к переборщикам. И наоборот, большое значение 'K' может чрезмерно сгладить границы принятия решений, что потенциально может привести к недооценке и большим вычислительным затратам. Для поиска подходящего значения 'K', которое уравновешивает компромисс между смещением и дисперсией, часто используются такие техники, как кросс-валидация.

Применение KNN

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

  1. Рекомендательные системы: KNN может предлагать пользователям предметы (например, фильмы или продукты), основываясь на предпочтениях их "ближайших" соседей (пользователей с похожими вкусами). Такие сервисы, как Netflix, исследовали подобные методы, основанные на инстансах.
  2. Распознавание изображений: В базовых задачах классификации изображений KNN может классифицировать изображение на основе классов наиболее похожих изображений в обучающем наборе (например, идентифицировать рукописные цифры на основе сходства пикселей). Хотя это эффективно для более простых наборов данных, таких как MNIST, для более сложных задач часто требуются сложные модели.
  3. Обнаружение аномалий: Определяя точки данных, удаленные от любого кластера соседей, KNN можно использовать для обнаружения выбросов или аномалий, что полезно в таких областях, как обнаружение мошенничества или выявление бракованных изделий на производстве. Узнай больше о методах обнаружения аномалий.
  4. Анализ экспрессии генов: В биоинформатике KNN помогает классифицировать образцы на основе паттернов экспрессии генов, группируя похожие генетические профили вместе. Узнай больше о применении ИИ в здравоохранении.

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

KNN предлагает несколько преимуществ, но также имеет и ограничения:

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

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

Недостатки:

  • Вычислительные затраты: Прогнозирование может быть медленным и вычислительно дорогим, особенно при работе с большими наборами данных, так как требует вычисления расстояний до всех тренировочных точек.
  • Чувствительность к нерелевантным признакам: Производительность значительно снижается при использовании высокоразмерных данных (проклятие размерности) или при наличии нерелевантных признаков. В этом случае могут понадобиться такие техники, как уменьшение размерности.
  • Необходимость масштабирования признаков: Чувствителен к масштабу данных; признаки с большим диапазоном могут доминировать в расчетах расстояния, что требует нормализации.
  • Определение оптимального значения 'K': Поиск оптимального значения 'K' требует тщательной настройки гиперпараметров.

KNN против родственных понятий

Важно отличать KNN от других алгоритмов:

  • Кластеризация по методу K-Means: Хотя в обоих случаях используется "K" и меры расстояния, K-Means - это алгоритм обучения без надзора для кластеризации данных в группы на основе сходства. KNN - алгоритм контролируемого обучения для классификации или регрессии на основе меченых соседей.
  • Машина опорных векторов (SVM): SVM - это алгоритм с супервизией, который находит оптимальную гиперплоскость для разделения классов. В отличие от подхода KNN, основанного на экземплярах, SVM строит явную модель и часто лучше работает с высокоразмерными данными.
  • Деревья решений: Деревья решений строят модель на основе расщепления признаков, предоставляя четкие правила для классификации или регрессии. KNN опирается на локальное сходство, а не на явные правила.

Хотя KNN ценен для решения определенных задач и понимания фундаментальных концепций ML, в сложных проблемах, таких как обнаружение объектов в реальном времени, часто используются более продвинутые модели, такие как Ultralytics YOLOкоторые обеспечивают превосходную скорость и точность, особенно на масштабных наборах данных компьютерного зрения. Ты можешь обучать и разворачивать такие модели с помощью платформ вроде Ultralytics HUB.

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