Page cover

Mean Shift Clustering

Der Mean Shift Algorithmus ist ein robustes, iteratives Verfahren, das darauf abzielt, die dichtesten Bereiche einer Verteilung zu finden, indem es die Datenpunkte in Richtung der Maxima ihrer Dichte verschiebt. Dieser Prozess wird ohne Annahme einer vorher bestimmten Anzahl von Clustern durchgeführt, was ihn besonders nützlich für Anwendungen macht, bei denen die Clusterstruktur im Voraus unbekannt ist. Hier sind die Kernaspekte des Algorithmus:

  1. Initialisierung durch Setzen von Fenstern: Zu Beginn wird um jeden Datenpunkt ein Fenster gelegt. Die Größe dieser Fenster wird durch einen vorher festgelegten Wert, die sogenannte Bandbreite, bestimmt. Diese Fenster dienen dazu, die lokale Dichte der Daten zu untersuchen.

  2. Schätzung der lokalen Dichte: Innerhalb jedes Fensters wird ermittelt, wie dicht die Datenpunkte beieinanderliegen. Dies geschieht entweder durch einfaches Zählen der Punkte im Fenster oder durch eine Methode, bei der Punkte, die näher am Zentrum des Fensters liegen, stärker gewichtet werden. Dadurch erhält man ein Maß für die Dichte an jedem Punkt des Datensatzes.

  3. Anpassung der Fensterzentren: Basierend auf der Dichteschätzung wird das Zentrum jedes Fensters zum Durchschnitts- oder Schwerpunkt der innerhalb des Fensters liegenden Punkte verschoben. Diese Verschiebung richtet sich nach der Dichte der Daten und bewegt das Fensterzentrum in Richtung der dichtesten Region.

  4. Wiederholung zur Feinabstimmung: Die Schritte der Dichteschätzung und der Anpassung der Fensterzentren werden wiederholt. Diese Iteration setzt sich fort, bis sich die Positionen der Zentren stabilisieren und nicht mehr wesentlich verändern. Das bedeutet, dass jedes Fensterzentrum in einer Region mit maximaler lokaler Dichte zur Ruhe kommt.

  5. Erstellung von Clustern: Nachdem alle Fensterzentren stabilisiert sind, werden Datenpunkte den ihnen nächstgelegenen Zentren zugeordnet. Dies führt zur Bildung von Clustern. Mehrere Fenster, die zum gleichen Dichtemaximum konvergieren, werden dabei zu einem einzigen Cluster zusammengefasst.

In Abbildung 13 wird dargestellt, wie das erwartete Clusterzentrum durch fortschreitende Iteration dem tatsächlichen Zentrum eines bestimmten Clusters, durch den Mean Shift Clustering Algorithmus, immer näher kommt.

Abbildung 13: Funktionsweise des Mean Shift Clustering

Zusammengefasst nutzt der Mean Shift Algorithmus die lokale Dichte von Datenpunkten, um Cluster zu bilden. Er ist besonders nützlich, wenn die Clusterformen unregelmäßig sind oder die Anzahl der Cluster im Voraus nicht bekannt ist. Die Schlüsselherausforderung bei der Anwendung des Mean Shift liegt in der Wahl einer geeigneten Bandbreite, da diese die Größe der Fenster und somit die Dichteabschätzungen und die resultierende Clusterbildung wesentlich beeinflusst. Im Weiteren werden Vor- und Nachteile von Mean Shift Clustering diskutiert:

Vorteile:

  • Anpassungsfähig an unregelmäßige Clusterformen: Mean Shift ist in der Lage, Cluster mit unregelmäßigen Formen zu identifizieren, da er auf der lokalen Dichte der Datenpunkte basiert und keine Annahmen über die Form der Cluster macht.

  • Automatische Bestimmung der Anzahl von Clustern: Ähnlich wie DBSCAN erfordert der Mean Shift Algorithmus keine Festlegung der Anzahl von Clustern im Voraus, was seine Anwendung auf Datensätzen mit unbekannter Anzahl von Clustern erleichtert.

  • Robustheit gegenüber Rauschen und Ausreißern: Mean Shift ist robust gegenüber Rauschen und Ausreißern, da er die Dichte der Datenpunkte verwendet, um Cluster zu bilden, und Ausreißer in weniger dichten Bereichen ignoriert.

Nachteile:

  • Abhängigkeit von der Bandbreitenwahl: Die Wahl einer geeigneten Bandbreite ist entscheidend für die Leistung des Mean Shift Algorithmus, da sie die Größe der Fenster und somit die Dichteabschätzungen und die resultierende Clusterbildung wesentlich beeinflusst. Eine falsche Wahl kann zu suboptimalen Clustering-Ergebnissen führen.

  • Rechenintensivität: Der Mean Shift Algorithmus kann rechenintensiv sein, insbesondere für große Datensätze, da er für jeden Punkt die Dichteabschätzungen durchführen muss, um die Cluster zu bilden.

  • Empfindlichkeit gegenüber Datenverteilungen: Der Mean Shift Algorithmus kann Schwierigkeiten haben, Cluster in Datensätzen mit stark verzerrten oder ungleichmäßigen Datenverteilungen zu identifizieren, da dies die Dichteabschätzungen beeinträchtigen kann.

Im Beispiel wird die Mean Shift Clustering-Technik auf synthetische Daten angewendet, um Cluster zu identifizieren. Anschließend werden die Cluster-Zentren und -Zuweisungen extrahiert.

from sklearn.cluster import MeanShift
from sklearn.datasets import make_blobs

# Generiere Beispieldaten
X, _ = make_blobs(n_samples=300, centers=4, cluster_std=0.40, random_state=0)

# Mean Shift Clustering
mean_shift = MeanShift(bandwidth=0.8)
mean_shift.fit(X)

# Cluster-Zentren
centers = mean_shift.cluster_centers_

# Cluster-Zuweisungen
labels = mean_shift.labels_

Mehr erfahren: ML Explained/Mean Shift, GeeksforGeeks/ML | Mean-Shift Clustering

Last updated