Entdecken Sie DBSCAN für dichtebasiertes Clustering und Anomalieerkennung. Erfahren Sie, wie es zusammen mit Ultralytics beliebige Formen und Rauschen in Datensätzen identifiziert.
DBSCAN (Density-Based Spatial Clustering of Applications with Noise) ist ein leistungsstarker Algorithmus für unüberwachtes Lernen, der dazu dient, anhand der Dichte unterschiedliche Gruppen innerhalb von Daten zu identifizieren. Im Gegensatz zu herkömmlichen Clustering-Methoden, die von sphärischen Clustern ausgehen oder eine vorgegebene Anzahl von Gruppen erfordern, lokalisiert DBSCAN Regionen mit hoher Dichte, die durch Bereiche mit niedriger Dichte voneinander getrennt sind. Diese Fähigkeit ermöglicht es ihm, Cluster beliebiger Formen und Größen zu entdecken, wodurch er besonders effektiv für die Analyse komplexer realer Datensätze ist, deren zugrunde liegende Struktur unbekannt ist. Ein wesentlicher Vorteil dieses Algorithmus ist seine integrierte Anomalieerkennung, da er Punkte in Regionen mit geringer Dichte automatisch als Rauschen klassifiziert, anstatt sie in einen Cluster zu zwängen.
Der Algorithmus definiert eine Nachbarschaft um jeden Datenpunkt und zählt, wie viele andere Punkte innerhalb dieser Nachbarschaft liegen. Zwei primäre Hyperparameter steuern diesen Prozess und erfordern eine sorgfältige Hyperparameteroptimierung, um den spezifischen Eigenschaften der Daten gerecht zu werden:
Basierend auf diesen Parametern kategorisiert DBSCAN jeden Punkt im Datensatz in einen von drei Typen:
minPts Nachbarn innerhalb der
eps Radius. Diese Punkte bilden das Innere eines Clusters.
eps Radius eines Kernpunkts, aber weniger als
... minPts Nachbarn selbst. Diese bilden die Ränder eines Clusters.
Beide sind zwar grundlegend für das maschinelle Lernen (ML), doch bietet DBSCAN in bestimmten Szenarien deutliche Vorteile gegenüber dem K-Means-Clustering. K-Means stützt sich auf Zentren und euklidische Distanz und geht dabei häufig davon aus, dass Cluster konvex oder sphärisch sind. Dies kann bei länglichen oder halbmondförmigen Daten zu einer schlechten Leistung führen. Im Gegensatz dazu ermöglicht der dichtebasierte Ansatz von DBSCAN, den natürlichen Konturen der Datenverteilung zu folgen.
Ein weiterer wesentlicher Unterschied liegt in der Initialisierung. Bei K-Means muss der Benutzer die Anzahl der Cluster (k) im Voraus festlegen, was ohne Vorkenntnisse eine Herausforderung darstellen kann. DBSCAN leitet die Anzahl der Cluster auf natürliche Weise aus der Datendichte ab. Darüber hinaus reagiert K-Means empfindlich auf Ausreißer, da es jeden Punkt in eine Gruppe zwingt, wodurch die Clusterzentren möglicherweise verzerrt werden. Die Fähigkeit von DBSCAN, Punkte als Rauschen zu kennzeichnen, verhindert, dass Datenanomalien gültige Cluster verfälschen, und sorgt so für sauberere Ergebnisse für nachgelagerte Aufgaben wie die prädiktive Modellierung.
DBSCAN wird häufig in Branchen eingesetzt, die räumliche Analysen und eine robuste Geräuschbearbeitung erfordern.
In Computer-Vision-Workflows verwenden Entwickler häufig die
Ultralytics Objektdetektoren trainieren und anschließend die Ergebnisse nachbearbeiten
. Das folgende Beispiel zeigt, wie man die sklearn Bibliothek zum Clustern der Zentren
der erkannten Objekte. Dies hilft bei der Gruppierung von Erkennungen, die räumlich miteinander in Zusammenhang stehen, wodurch möglicherweise mehrere
Begrenzungsrahmen für dasselbe Objekt oder zur Identifizierung
von Objektgruppen.
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]
Obwohl DBSCAN ein klassischer Algorithmus ist, lässt er sich gut mit modernem Deep Learning kombinieren. Beispielsweise können hochdimensionale Merkmale, die aus einem Faltungsneuronalen Netzwerk (CNN) können vor der Anwendung von DBSCAN mithilfe von Techniken zur Dimensionsreduktion wie PCA oder t-SNE reduziert werden. Dieser hybride Ansatz ermöglicht die Clusterbildung komplexer Bilddaten auf der Grundlage semantischer Ähnlichkeit und nicht nur der Pixelposition. Dies ist besonders nützlich in unüberwachten Lernszenarien, in denen gekennzeichnete Trainingsdaten rar sind, und hilft Forschern dabei, riesige Archive unbeschrifteter Bilder effizient zu organisieren.