Page cover

K-Means Clustering

K-Means ist ein weit verbreiteter Clustering-Algorithmus, der Datenpunkte in "K" Gruppen oder Cluster unterteilt. Dabei versucht der Algorithmus, die Daten so aufzuteilen, dass die Ähnlichkeit innerhalb eines Clusters maximiert und die Ähnlichkeit zwischen den unterschiedlichen Clustern minimiert wird. Das Vorgehen ist wie folgt:

  1. Initialisierung der Clusterzentren: Wähle zufällig K Startpunkte, die möglichst weit voneinander entfernt sind und die Anfangszentren der Cluster darstellen.

  2. Datenpunktzuweisung zu den nächsten Zentren: Weise jedem Datenpunkt das Zentrum zu, das ihm am nächsten liegt.

  3. Aktualisierung der Clusterzentren: Aktualisiere die Zentren der Cluster, indem der Durchschnitt der Datenpunkte in jedem Cluster berechnet wird.

  4. Iterative Clusterbildung: Wiederhole die Schritte 2 und 3, bis sich die Cluster-Zuweisungen nicht mehr ändern oder eine bestimmte Anzahl von Iterationen erreicht ist.

Abbildung 11 stellt die Clusterbildung vor und nach dem K-Means Algorithmus in 3 Clustergruppen dar.

Abbildung 11: Clustern dreier Punktwolken mithilfe des k-Means Clustering

K-Means eignet sich für Datensätze, bei denen die Anzahl der Cluster im Voraus bekannt sind, und die Cluster annähernd kugelförmig sind. Die Vor- und Nachteile von K-Means werden hier betrachtet.

Vorteile:

  • Einfachheit und Effizienz: K-Means ist einfach zu implementieren und schnell in der Ausführung, was ihn für große Datensätze geeignet macht.

  • Skalierbarkeit: Der Algorithmus ist gut skalierbar und kann auch bei großen Datenmengen effizient arbeiten.

  • Anpassung an unterschiedliche Formen: K-Means kann Cluster in verschiedenen Formen identifizieren, solange die Cluster gut voneinander getrennt sind.

Nachteile:

  • Empfindlichkeit gegenüber Anfangswerten: Die Auswahl der Anfangszentren kann die Ergebnisse des Algorithmus stark beeinflussen, da er lokal nach dem nächstgelegenen Zentrum sucht.

  • Festlegung der Anzahl von Clustern: Der Benutzer muss die Anzahl der Cluster im Voraus festlegen, was manchmal schwierig sein kann, insbesondere wenn keine klaren Informationen über die Datenstruktur vorliegen.

  • Ungeeignet für Cluster unterschiedlicher Größe und Dichte: K-Means funktioniert gut für Cluster mit ähnlicher Größe und Dichte, kann aber Schwierigkeiten haben, Cluster mit unterschiedlichen Größen und Dichten zu identifizieren.

Der präsentierte Code demonstriert die Anwendung des k-Means-Clustering-Algorithmus auf den Iris-Datensatz, wobei die Merkmale der Daten in natürliche Cluster gruppiert werden.

from sklearn.datasets import load_iris
from sklearn.cluster import KMeans

# Laden des Iris-Datensatzes
iris = load_iris()
X,y = iris.data, iris.target

# K-Means Clustering
kmeans = KMeans(n_clusters=3, random_state=32)
kmeans.fit(X)

# Clusterzuweisungen
y_kmeans = kmeans.predict(X)

Mehr erfahren: Real Python/K-Means Clustering in Python: A Practical Guide, Analytics Vidhya/The Ultimate Guide to K-Means Clustering: Definition, Methods and Applications, Medium/Understanding K-means Clustering in Machine Learning

Last updated