Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

Метод K-ближайших соседей (KNN)

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

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

Принцип работы KNN

Механизм работы K-Nearest Neighbors опирается на метрику расстояния для количественной оценки сходства между точками данных точками. Наиболее распространенной метрикой является евклидово расстояние, хотя могут использоваться и другие, например Манхэттенское расстояние или расстояние Минковского могут быть использованы в зависимости от проблемной области. Процесс предсказания включает в себя несколько отдельных этапов:

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

Простота KNN делает его эффективным базовым инструментом для решения многих проблем машинного обучения. Ниже приведен краткий пример с использованием популярной библиотеки Scikit-learn для демонстрирующий базовый процесс классификации.

import numpy as np
from sklearn.neighbors import KNeighborsClassifier

# distinct classes: 0 and 1
X_train = np.array([[1, 1], [1, 2], [2, 2], [5, 5], [5, 6], [6, 5]])
y_train = np.array([0, 0, 0, 1, 1, 1])

# Initialize KNN with 3 neighbors
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)

# Predict class for a new point [4, 4]
prediction = knn.predict([[4, 4]])
print(f"Predicted Class: {prediction[0]}")
# Output: 1 (Closer to the cluster at [5,5])

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

Несмотря на свою простоту, K-Nearest Neighbors используется в различных сложных областях, где важна интерпретируемость и интерпретируемость и рассуждения на основе экземпляров.

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

Отличия KNN от других алгоритмов

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

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

Хотя KNN эффективен для небольших наборов данных, он сталкивается с проблемами масштабируемости при работе с большими данными из-за вычислительных затрат на вычисление расстояний для каждого запроса. Для высокопроизводительного вычислений в реальном времени в таких задачах, как обнаружение объектов, современные архитектуры глубокого обучения архитектуры, такие как YOLO11 как правило, предпочтительнее из-за их высокой скорости и точности.

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

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

Присоединиться сейчас