Метод K-ближайших соседей (KNN)
Узнайте, как метод K-ближайших соседей (KNN) упрощает машинное обучение благодаря интуитивно понятному непараметрическому подходу к задачам классификации и регрессии.
Метод K ближайших соседей (KNN) — это базовый алгоритм обучения с учителем, используемый как для задач классификации, так и для задач регрессии. Он считается алгоритмом, основанным на экземплярах или «ленивым обучением», поскольку он не строит модель на этапе обучения. Вместо этого он хранит весь набор данных и делает прогнозы, находя «K» наиболее похожих экземпляров (соседей) в сохраненных данных. Основная идея заключается в том, что похожие точки данных находятся в непосредственной близости. Для новой, неклассифицированной точки данных KNN определяет ее ближайших соседей и использует их метки для определения ее собственной классификации или значения.
Как работает KNN?
Алгоритм KNN работает по простому принципу сходства, обычно измеряемого метрикой расстояния. Наиболее распространенной является евклидово расстояние, хотя в зависимости от набора данных можно использовать и другие метрики.
Процесс создания прогноза довольно прост:
- Выберите значение K: Количество соседей (K), которые следует учитывать, является критическим гиперпараметром. Выбор K может существенно повлиять на производительность модели.
- Вычисление расстояний: Для новой точки данных алгоритм вычисляет расстояние между ней и каждой другой точкой в обучающем наборе данных.
- Определение соседей: Он определяет K точек данных из обучающего набора, которые находятся ближе всего к новой точке. Это «ближайшие соседи».
- Сделать прогноз:
- Для задач классификации алгоритм выполняет голосование большинством голосов. Новой точке данных присваивается класс, который является наиболее распространенным среди ее K ближайших соседей. Например, если K=5 и три соседа относятся к классу A, а два — к классу B, новая точка классифицируется как класс A.
- Для задач регрессии алгоритм вычисляет среднее значение значений K ближайших соседей. Это среднее значение становится прогнозируемым значением для новой точки данных.
Применение в реальном мире
Простота и интуитивность KNN делают его полезным в различных приложениях, особенно в качестве базовой модели.
- Системы рекомендаций: KNN — популярный выбор для создания механизмов рекомендаций. Например, потоковый сервис может рекомендовать фильмы пользователю, определяя других пользователей (соседей) с похожей историей просмотров. Фильмы, которые понравились этим соседям и которые целевой пользователь еще не видел, затем рекомендуются. Этот метод является формой совместной фильтрации.
- Финансовые услуги: В финансах KNN можно использовать для кредитного скоринга. Сравнивая нового заявителя на кредит с базой данных прошлых заявителей с известными кредитными результатами, алгоритм может предсказать, вероятно ли, что новый заявитель не выполнит свои обязательства. Соседями являются прошлые заявители с аналогичными финансовыми профилями (например, возраст, доход, уровень долга), и их история неплатежей информирует прогноз. Это помогает автоматизировать первоначальные оценки рисков.
KNN в сравнении со смежными концепциями
Важно отличать KNN от других распространенных алгоритмов машинного обучения:
- Кластеризация K-средних: Хотя названия похожи, их функции сильно различаются. K-средних — это алгоритм обучения без учителя, используемый для разделения данных на K отдельных, непересекающихся подгрупп (кластеров). KNN, напротив, является алгоритмом обучения с учителем, используемым для прогнозирования на основе маркированных данных.
- Метод опорных векторов (SVM): SVM — это алгоритм обучения с учителем, который стремится найти наилучшую гиперплоскость, разделяющую различные классы в пространстве признаков. В то время как KNN принимает решения на основе локального сходства с соседями, SVM стремится найти глобальную оптимальную границу, что принципиально отличает его подход. Более подробную информацию можно найти на странице Scikit-learn SVM.
- Деревья решений (Decision Trees): Дерево решений классифицирует данные, создавая модель иерархических решений на основе правил. Это приводит к древовидной структуре, тогда как KNN опирается на сходство на основе расстояния, не изучая явные правила. Вы можете узнать больше в документации Scikit-learn по деревьям решений.
Хотя KNN является ценным инструментом для понимания фундаментальных концепций машинного обучения и для использования на небольших, хорошо подготовленных наборах данных, он может быть вычислительно затратным для вывода в реальном времени с большими данными. Для сложных задач компьютерного зрения, таких как обнаружение объектов в реальном времени, предпочтительнее использовать более продвинутые модели, такие как Ultralytics YOLO, из-за их превосходной скорости и точности. Эти модели можно легко обучить и развернуть с помощью платформ, таких как Ultralytics HUB.