Изучите DBSCAN для кластеризации на основе плотности и обнаружения аномалий. Узнайте, как он идентифицирует произвольные формы и шумы в наборах данных вместе с Ultralytics .
DBSCAN (Density-Based Spatial Clustering of Applications with Noise) — это мощный алгоритм неконтролируемого обучения, используемый для выделения отдельных групп в данных на основе плотности. В отличие от традиционных методов кластеризации, которые предполагают сферические кластеры или требуют заранее определенного количества групп, DBSCAN находит области высокой плотности, разделенные областями низкой плотности. Эта способность позволяет ему обнаруживать кластеры произвольной формы и размера, что делает его исключительно эффективным для анализа сложных реальных наборов данных, где базовая структура неизвестна. Ключевым преимуществом этого алгоритма является встроенная функция обнаружения аномалий, поскольку он автоматически классифицирует точки в областях низкой плотности как шум, а не принудительно включает их в кластер.
Алгоритм работает путем определения окрестностей вокруг каждой точки данных и подсчета количества других точек, попадающих в эту окрестность. Этот процесс контролируется двумя основными гиперпараметрами, требующими тщательной настройки гиперпараметров в соответствии с конкретными характеристиками данных:
На основе этих параметров DBSCAN классифицирует каждую точку в наборе данных по одному из трех типов:
minPts соседи в пределах
eps радиус. Эти точки образуют внутреннюю часть кластера.
eps радиус центральной точки, но имеют меньше
чем minPts сами соседи. Они образуют границы кластера.
Хотя оба метода являются основополагающими для машинного обучения (ML), DBSCAN предлагает явные преимущества по сравнению с K-Means Clustering в определенных сценариях. K-Means опирается на центроиды и евклидово расстояние, часто предполагая, что кластеры являются выпуклыми или сферическими. Это может привести к низкой производительности при работе с удлиненными или серповидными данными. В отличие от этого, подход DBSCAN, основанный на плотности, позволяет ему следовать естественным контурам распределения данных.
Еще одно существенное отличие заключается в инициализации. K-Means требует от пользователя заранее указать количество кластеров (k), что может быть сложно без предварительных знаний. DBSCAN выводит количество кластеров естественным образом из плотности данных. Кроме того, K-Means чувствителен к выбросам, поскольку он заставляет каждую точку входить в группу, что может привести к искажению центров кластеров. Способность DBSCAN маркировать точки как шум предотвращает загрязнение действительных кластеров аномалиями данных, обеспечивая более чистые результаты для последующих задач, таких как прогнозное моделирование.
DBSCAN широко применяется в отраслях, требующих пространственного анализа и надежной обработки шумов.
В рабочих процессах компьютерного зрения разработчики часто используют
Платформа Ultralytics для обучения детекторов объектов и последующей обработки
результатов. В следующем примере показано, как использовать sklearn библиотеку для кластеризации центроидов
обнаруженных объектов. Это помогает сгруппировать обнаружения, которые связаны пространственно, потенциально объединяя несколько
ограничительные рамки для одного и того же объекта или для идентификации
групп объектов.
import numpy as np
from sklearn.cluster import DBSCAN
# Simulated centroids of objects detected by YOLO26
# [x, y] coordinates representing object locations
centroids = np.array(
[
[100, 100],
[102, 104],
[101, 102], # Cluster 1 (Dense group)
[200, 200],
[205, 202], # Cluster 2 (Another group)
[500, 500], # Noise (Outlier)
]
)
# Initialize DBSCAN with a radius (eps) of 10 and min_samples of 2
# This groups points close to each other
clustering = DBSCAN(eps=10, min_samples=2).fit(centroids)
# Labels: 0, 1 are cluster IDs; -1 represents noise
print(f"Cluster Labels: {clustering.labels_}")
# Output: [ 0 0 0 1 1 -1]
Хотя DBSCAN является классическим алгоритмом, он эффективно сочетается с современным глубоким обучением. Например, высокоразмерные особенности, извлеченные из сверточной нейронной сети (CNN) могут быть уменьшены с помощью методов уменьшения размерности, таких как PCA или t-SNE, перед применением DBSCAN. Этот гибридный подход позволяет кластеризовать сложные данные изображений на основе семантического сходства, а не только местоположения пикселей. Это особенно полезно в сценариях неконтролируемого обучения, где помеченные учебные данные являются редкими, помогая исследователям эффективно организовывать обширные архивы непомеченных изображений.