Definition: K-Means++

Als K-Means++ bezeichnen wir einen Algorithmus zur Auswahl der initialen Zentroiden des K-Means-Clustering-Algorithmus.

Das Vorgehen ist wie folgt:

  1. Wähle zufällig gleichverteilt einen ersten Zentroiden aus.
  2. Wähle den nächsten Zentroiden zufällig auf Basis der Entfernung der möglichen Kandidaten zu den bereits ausgewählten Zentroiden aus.
  3. Weiter mit 2, bis alle Zentroiden initial gewählt wurden.

Formal aufgeschrieben:

Algorithmus: K-Means++ Algorithmus

Eingabe: Datensatz , Clusteranzahl
Ausgabe: initiale Zentroiden


Wähle zufällig gleichverteilt
for do

für .
Wähle zufällig mit Wahrscheinlichkeit

return

Anmerkung

K-Means++ Clustering mit scikit-learn

In Python erhalten wir ein K-Means-Clustering mit Lloyds-Algorithmus, K-Means++ Clusterinitialisierung und durch:

X=((12,7),(10,8),(10,7.5),(15,5),(16,9),(18,8))
 
from sklearn.cluster import KMeans
kmeans = KMeans(algorithm="lloyd", init="k-means++", n_clusters=3).fit(X)
 
kmeans.predict([(5,10)])