K-Means

K-Means ist ein sehr simples und wohl das bekannteste Clustering-Verfahren und zählt dementsprechend zum Bereich des unüberwachten Lernens. Der K-Means Algorithmus bekommt also nur die Input Features ohne Klassen und weist jedem Datenpunkt ein Cluster zu. Unter dem Begriff Cluster versteht man ganz allgemein eine Gruppe von Datenpunkten, die räumlich nah beieinander liegen und somit gewisse Ähnlichkeiten aufweisen. Dem K-Means Algorithmus muss dabei als Parameter übergeben werden, wie viele Cluster aus den Daten gebildet werden sollen. Je nach Beschaffenheit der Daten ist nicht direkt ersichtlich, wie viele Cluster sinnvolle Ergebnisse liefern – daher wird mit verschiedenen Werten experimentiert, bis die Ergebnisse zufriendenstellend sind. Die nachfolgenden Abbildungen verdeutlichen beispielhaft die Funktionsweise von K-Means.
Die Grafiken wurden mit dem Tool erzeugt, das unter den weiterführenden Links zu finden ist.

Funktionsweise von K-Means #

Schritt 1: Zu Beginn werden zufällig Centroids (also Zentren) initialisiert. Die Anzahl wird durch den festgelegten Parameter definiert. Jeder Punkt wird dem Centroid zugewiesen, der ihm am nächsten liegt. Aufgrund des Zufallsprinzips können Ergebnisse je Durchlauf verschieden ausfallen.
Schritt 2: Nach der Zuweisung von Punkten zu einem Centroid werden die Positionen der Centroids aktualisiert. Aus allen Punkten, die aktuell in einer Gruppe sind, wird der Mittelpunkt berechnet – auf diesen wird der Centroid gesetzt (daher kommt auch der Name Centroid zustande).
Schritt 3: Die folgenden Schritt ähneln sehr stark den ersten beiden Schritten des Verfahrens. Nachdem die Centroids aktualisert wurden, wird erneut jeder Punkt dem nähesten Centroid zugewiesen. Punkte können dabei entsprechend den Centroid wechseln.
Schritt 4: Die Schritte 2 & 3 werden anschließend solange ausgeführt, bis in einem Durchlauf keine Änderungen mehr auftreten. Die Centroids sind dann an den optimalen Punkten und alle Punkte im jeweiligen Cluster zugeordnet.

Die Cluster im gezeigten Beispiel sind natürlich extrem deutlich – daher funktioniert der K-Means Algorithmus auch sehr problemlos mit wenigen Iterationen. Bei komplexeren Daten werden häufig deutlich mehr Schritte benötigt, bis alle Centroids an den optimalen Positionen sind und dementsprechend keine Änderungen bzw. Neuzuweisungen auftreten. Experimentieren Sie mit dem Tool (s. weiterführende Links) einfach ein bisschen rum, wie sich Centroids bei verschiedenen Daten verhalten und wie das zufällige Initialisieren den Ablauf und die Ergebnisse beeinflusst.

Weitere Informationen #

Weiterführende Links:
Understanding K-Means Clustering: https://towardsdatascience.com/understanding-k-means-clustering-in-machine-learning-6a6e67336aa1
Visualizing K-Means Clustering: https://www.naftaliharris.com/blog/visualizing-k-means-clustering/

Schreibe einen Kommentar