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

Кластеризация K-средних

Изучите кластеризацию K-средних, ключевой алгоритм обучения без учителя для группировки данных в кластеры. Изучите его процесс, приложения и сравнения!

Кластеризация K-Means - это широко используемый алгоритм в области неконтролируемого обучения, предназначенный для разделения набора данных на отдельные, непересекающиеся подгруппы. В более широком контексте машинного обучения (МОО) этот метод необходим для обнаружения скрытых паттернов и структур в немаркированных данных. Алгоритм работает путем организации точек данных в $K$ кластеров, где каждая точка принадлежит к кластеру с ближайшим средним значением, служащим прототипом группы. Такой подход позволяет минимизировать дисперсию внутри каждого кластера, гарантируя, что точки данных в одной и той же группы как можно больше похожи друг на друга, сохраняя при этом различия между группами.

Как работает алгоритм

Процесс K-Means является итерационным и начинается с выбора $K$ начальных центроидов, которые выступают в качестве центральных точки для кластеров. Эти центроиды могут быть выбраны случайным образом или с помощью более интеллектуальных методов инициализации, таких как инициализация k-means++ для повышения скорости сходимости. Затем алгоритм проходит два основных этапа, пока результаты не стабилизируются:

  1. Назначение: Каждая точка данных в обучающих данных назначается ближайшему центроиду на основе метрики расстояния, обычно Евклидово расстояние. Этот шаг эффективно группирует данные в кластеры $K$.
  2. Обновление: Новый центроид для каждого кластера рассчитывается путем вычисления среднего значения всех точек данных отнесенных к данному кластеру.

Этот цикл повторяется до тех пор, пока центроиды не перестанут значительно смещаться, что свидетельствует о сходимости алгоритма. Определение оптимального количества кластеров - важная часть процесса, которая часто достигается с помощью таких методов, как метод локтя или путем анализа показатель силуэта для измерения расстояния разделения между полученными кластерами.

Приложения реального мира в искусственном интеллекте

Кластеризация K-Means является универсальной и находит применение в различных отраслях промышленности для для добычи и анализа данных.

  • Сегментация клиентов: Предприятия используют кластеризацию для группировки клиентов на основе покупательского поведения, демографических характеристик или истории посещений. Выявляя отдельные группы, компании могут адаптировать маркетинговые стратегии, подобно тому, как искусственный интеллект в розничной торговле улучшает таргетинг клиентов и управление запасами.
  • Сжатие изображений: В области компьютерного зрения (КВ), K-Means используется для квантования цвета. Эта техника уменьшает количество уникальных цветов в изображении путем кластеризации значений пикселей, эффективно выполняя уменьшение размерности при сохраняя при этом визуальную целостность изображения.
  • Обнаружение аномалий: Изучая структуру кластеров нормальных данных, системы могут выявлять отклонения которые находятся далеко от центроида. Это ценно для приложений безопасности и обнаружения аномалий в сетевом трафике.

K-Means в истории обнаружения объектов

В то время как современные детекторы объектов, такие как Ultralytics YOLO11 часто используют передовые методы регрессии или безъякорные головы, K-Means сыграли ключевую роль в эволюции моделей обнаружения. В предыдущих итерациях, таких как YOLOv2 и YOLOv5, использовалась кластеризация K-Means на границах на размерах ограничительной рамки набора данныхCOCO для определения оптимальных якорных ящиков. Эти предварительно рассчитанные якоря обеспечивали модель с лучшими предпосылками для предсказания формы объектов, что значительно улучшило стабильность обучения и запоминание.

K-Means против K-Nearest Neighbors (KNN)

Обычно K-Means путают с K-Nearest Neighbors (KNN), но они служат но они служат принципиально разным целям.

  • K-Means - это неконтролируемый алгоритм, используемый для кластеризации. Он не требует маркированных данных и фокусируется на поиске внутренней структуры в наборе данных.
  • KNN - это алгоритм контролируемого обучения, используемый для классификации и регрессии изображений. Он На основе помеченных входных данных он classify новые точки данных на основе большинства классов их ближайших соседей.

Другой родственной концепцией является DBSCAN, в которой кластеризация основана на плотности, а не на расстоянии от центральной точки. В отличие от K-Means, DBSCAN не требует заранее задавать количество кластеров и лучше справляется с выбросами.

Пример кода: Квантование цвета

Следующий пример на Python демонстрирует, как использовать K-Means для кластеризации цветов пикселей, что является распространенным шаг предварительной обработки данных в задачах технического зрения.

import numpy as np
from sklearn.cluster import KMeans

# Simulate a small image (10x10 pixels) with 3 RGB channels
# In a real scenario, you would load an image using cv2.imread()
image_data = np.random.randint(0, 255, (10, 10, 3), dtype=np.uint8)
pixels = image_data.reshape(-1, 3)

# Apply K-Means to reduce the image to 3 dominant colors (clusters)
kmeans = KMeans(n_clusters=3, n_init="auto", random_state=42).fit(pixels)

# The cluster centers represent the dominant colors
print(f"Dominant RGB Colors:\n{kmeans.cluster_centers_}")

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

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

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