K-Nearest Neighbors (KNN)
Узнайте, как K-Nearest Neighbors (KNN) упрощает машинное обучение благодаря интуитивно понятному непараметрическому подходу к задачам классификации и регрессии.
K-Nearest Neighbors (KNN) - это основополагающий алгоритм контролируемого обучения, используемый для задач классификации и регрессии. Он считается алгоритмом, основанным на экземплярах, или "ленивым обучением", поскольку не строит модель на этапе обучения. Вместо этого он хранит весь набор данных и делает предсказания, находя K наиболее похожих экземпляров (соседей) в хранящихся данных. Основная идея заключается в том, что похожие точки данных находятся в непосредственной близости друг от друга. Для новой, неклассифицированной точки данных KNN определяет ее ближайших соседей и использует их метки для определения собственной классификации или значения.
Как работает KNN?
Алгоритм KNN работает по простому принципу сходства, которое обычно измеряется метрикой расстояния. Наиболее распространенной является евклидово расстояние, хотя в зависимости от набора данных могут использоваться и другие метрики.
Процесс составления прогноза прост:
- Выберите значение K: число соседей (K), которое необходимо учитывать, является критическим гиперпараметром. Выбор K может существенно повлиять на производительность модели.
- Вычисление расстояний: Для новой точки данных алгоритм вычисляет расстояние между ней и каждой другой точкой в обучающем наборе данных.
- Определить соседей: Определяет K точек данных из обучающего набора, которые находятся ближе всего к новой точке. Это и есть "ближайшие соседи".
- Сделайте прогноз:
- Для задач классификации алгоритм проводит голосование по большинству голосов. Новой точке данных присваивается класс, который наиболее часто встречается среди 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.