Глоссарий

K-Nearest Neighbors (KNN)

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

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

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

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

Процесс составления прогноза прост:

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

Применение в реальном мире

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

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

KNN в сравнении со смежными понятиями

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

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

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

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему искусственного интеллекта. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединяйтесь сейчас
Ссылка копируется в буфер обмена