Clustering-Algorithmus ausführen

Beim maschinellen Lernen stoßen Sie manchmal auf Datasets, die Millionen von Beispielen enthalten können. ML-Algorithmen müssen effizient auf diese großen Datasets skaliert werden. Viele Clustering-Algorithmen skalieren jedoch nicht, da sie die Ähnlichkeit zwischen allen Punktpaaren berechnen müssen. Das bedeutet, dass ihre Laufzeiten mit dem Quadrat der Anzahl von Punkten erhöht werden, angegeben als \(O(n^2)\). Beispielsweise sehen sich Agglomerativ- oder dividative Hierarchie-Clustering-Algorithmen alle Paare von Punkten an und haben eine Komplexität von \(O(n^2 log(n))\) und \(O(n^2)\).

In diesem Kurs konzentrieren wir uns auf k-Means, da er als \(O(nk)\)skaliert wird. Dabei ist \(k\)die Anzahl der Cluster. k-means gruppiert Punkte in \(k\) Clustern, indem die Abstände zwischen Punkten und dem Schwerpunkt des Clusters minimiert werden (siehe Abbildung 1 unten). Der Schwerpunkt eines Clusters ist der Mittelwert aller Punkte im Cluster.

Wie gezeigt, findet k-means ungefähr kreisförmige Cluster. Das bedeutet konzeptionell, dass k-Means Daten effektiv aus einer Reihe von ungefähr zirkulären Verteilungen behandelt und versucht, Cluster zu finden, die diesen Distributionen entsprechen. In Wirklichkeit enthalten Daten Ausreißer und passen möglicherweise nicht in ein solches Modell.

Bevor Sie k-means ausführen, müssen Sie die Anzahl der Cluster \(k\)auswählen. Beginnen Sie mit einer Vermutung für \(k\). Später besprechen wir, wie Sie diese Zahl optimieren können.

k-Means-Clustering-Algorithmus

So werden k-means in \(k\) -Clustern gruppiert:

Grafik der k-Means bei der Initialisierung
Abbildung 1: k-Means bei der Initialisierung

Schritt 1

Der Algorithmus wählt für jeden Cluster einen Schwerpunkt aus. In unserem Beispiel wählen wir \(k\) von 3 aus, sodass der Algorithmus 3 Schwerpunkte auswählt.

Erste Cluster
Abbildung 2: Erste Cluster

Schritt 2

Der Algorithmus weist jeden Punkt dem nächstgelegenen Schwerpunkt zu, um \(k\) erste Cluster zu erhalten.

Neuberechnung von Schwerpunkten
Abbildung 3: Neuberechnung von Schwerpunkten

Schritt 3

Für jeden Cluster berechnet der Algorithmus den Schwerpunkt neu. Dazu wird der Durchschnitt aller Punkte im Cluster verwendet. Die Änderungen der Schwerpunkte sind in Abbildung 3 durch Pfeile dargestellt. Da sich die Schwerpunkte ändern, weist der Algorithmus die Punkte dem nächstgelegenen Schwerpunkt zu. Abbildung 4 zeigt die neuen Cluster nach der Neuzuweisung.

Cluster nach der Neuzuweisung
Abbildung 4: Cluster nach der Neuzuweisung

Schritt 4

Der Algorithmus wiederholt die Berechnung der Schwerpunkte und die Zuweisung von Punkten, bis sich die Cluster nicht mehr ändern. Wenn Sie große Datasets gruppieren, müssen Sie den Algorithmus beenden, bevor Sie die Konvergenz erreichen. Verwenden Sie stattdessen andere Kriterien.

Für diesen Kurs brauchen Sie die mathematischen Grundlagen nicht zu verstehen. Wenn Sie neugierig sind, finden Sie unten einen mathematischen Nachweis.

Da die Schwerpunktpositionen anfangs nach dem Zufallsprinzip ausgewählt werden, können k-Means bei aufeinanderfolgenden Ausführungen erheblich unterschiedliche Ergebnisse liefern. Führen Sie den Befehl „k-means“ mehrmals aus und wählen Sie das Ergebnis mit den besten Qualitätsmesswerten aus, um dieses Problem zu beheben. (Qualitätsmesswerte werden später in diesem Kurs genauer beschrieben.) Sie benötigen eine erweiterte Version von k-means, um bessere Anfangsherdenpositionen auszuwählen.