Typen
:Konstrukte
:Generalisierungen
:Eigenschaften
:- Bestimmung der Clusterzahl mittels Elbow Methode
- Gegenüberstellung partitionierender Clusteringmethoden
- Wie KNN ist auch K-Means sensibel gegenüber verschieden skalierten Merkmalen und profitiert stark von der z-Transformation.
- K-Means ist nicht deterministisch und stark abhängig von der initialen Wahl der Zentroiden.
- Nur Anwendbar, wenn der Mittelwert definiert ist.
- Konvergiert zu einem lokalen Minimum der Inertia
- Konvergiert in einer endlichen Anzahl von Schritten.
- Laufzeitkomplexität pro Iteration beträgt
Involvierte Definitionen
:Veranstaltung
: EMLReferenz
: @thimm2024 (Abschnitt 3.1.1, Algorithmus 1)
⠀
Definition: K-Means-Clustering
Sei
ein ungelabelter Datensatz mit . Als K-Means-Clustering bezeichnen wir einen Algorithmus der Clusteranalyse, der einen Datensatz
iterativ so in Teilmengen partitioniert, dass die Summe der euklidischen Distanzen der Datenpunkte zu dem Mittelpunkt des ihnen zugewiesenen Clusters minimal ist. Die zwei gängigsten (heuristischen) Algorithmen sind der Lloyd- und der MacQueen-Algorithmus.
Algorithmus: Lloyd-Algorithmus
Sei
ein ungelabelter Datensatz. Der Lloyd-Algorithmus (auch naiver K-Means-Algorithmus) ist ein gängiger heuristischer Algorithmus zur Durchführung des K-Means-Clusterings.
Grob zusammengefasst:
Der Lloyd-Algorithmus wird mit einer gegebenen Menge von Clustermittelpunkten (auch Zentroiden)
initialisiert. Jedem
wird derjenige Zentroid zugewiesen, der ihm (nach der euklidischen Norm) am nächsten ist. Anschließend aktualisieren wir die Zentroiden
, indem wir jeweils durch den Mittelpunkt derjenigen Datenpunkte ersetzen, die dem Cluster von zugewiesenen wurden. Weiter mit 1, bis die Werte der
konvergiert sind (heißt: bis sie sich nicht mehr verändern). Algorithmus: Lloyd-Algorithmus
Eingabe: Datensatz
, Clusteranzahl
Ausgabe:Zentroiden des finalen Clusterings
Wähle initiale Zentroiden(bspw. random, k-means++, …)
while nicht konvergiert do
for do
for do
return
Anmerkung
Nachteile des K-Means-Clusterings
- Wie KNN ist auch K-Means sensibel gegenüber verschieden skalierten Merkmalen und profitiert stark von der z-Transformation.
- K-Means ist nicht deterministisch und stark abhängig von der initialen Wahl der Zentroiden.
- Nur Anwendbar, wenn der Mittelwert definiert ist.
K-Means-Clustering mit scikit-learn
In Python erhalten wir ein K-Means-Clustering mit Lloyds-Algorithmus, zufälliger Clusterinitialisierung und
durch:
Herleitung
Für den Lloyd-Algorithmus gibt es eine sehr schöne analytische Herleitung.
Als Erinnerung: zur Evaluation des Clusterings nutzen wir das Trägheitsmaß
Der Algorithmus lässt sich in zwei Teilschritte schneiden:
- Punkte zu Cluster zuweisen wählen
- (das entspricht der Funktion
)
- (das entspricht der Funktion
- Cluster-Zentren wählen
- (das entspricht den
)
- (das entspricht den
Für beide Teilschritte können wir uns nun überlegen, wie wir
1. Punkte zu Cluster zuweisen wählen
Möchten wir
2. Cluster-Zentren wählen
Möchten wir
Ob wir ein Minimum oder Maximum erhalten, können wir anschließend mit der zweiten Ableitung prüfen.
Wir erhalten mit der Kettenregel:
Stellen wir nun noch null, erhalten wir
was genau dem Lloyd-Algorithmus entspricht.
Bilden wir nun noch zur Prüfung die zweite Ableitung, erhalten wir
Nach der Unterscheidung von Maximum und Minimum über die zweite Ableitung folgt, dass es sich bei der Nullstelle tatsächlich um ein Minimum handelt - was zu zeigen war.