12 Clusteranalyse
12.1 Die Folien zur Sitzung
Der Vorlesungsmitschnitt
Mit der Clusteranalyse wird versucht, Elemente (Fälle) nach ihren Merkmalen (mehrere Variablen) in Gruppen (Clustern) zusammenzufassen. Die Problemstellung lautet als: Wie können Fälle in einem Datensatz nach mehreren Variablen gruppiert werden?
Die Clusteranalyse gehört zu den explorativen Verfahren. Im Kontext des Machine Learnings (ML) wird sie auch zu den «unsupervised learning»-Verfahren gezählt.
Das Grundsätzliche Vorgehen ist bei allen Arten von Clusteranalysen gleich bzw. ähnlich: Wir suchen Gruppen (Cluster) von Fällen, die sich untereinander so stark wie möglich ähneln (homoge Cluster) und so stark von den anderen Gruppen unterscheiden wie möglich. Es geht also um Segmentierung anhand von Mustern in den Daten und nicht um Sortierung anhand vorgegebener Kategorien. Wir wollen also stark Vereinfachen (wenige Cluster), aber auch wenig Heterogenität in den Clustern, wobei die eben immer kleiner wird, je mehr Cluster man bildet. Das führt zu einem Optimierungsproblem (siehe Abbildung 12.1), das die Clusteranalyse ganz gut lösen kann, da in der Regel die Heterogenität innerhalb der Cluster stark sinkt, wenn man ein Cluster in zwei aufteilt und auch dann, wenn man drei Cluster versucht zu finden und zu optimieren, aber schon etwas weniger als von eins auf zwei. Wenn man statt drei, vier Cluster zulässt und verteilt, dann sinkt die Heterogenität nochmals weiter, aber wieder etwas weniger als im Schritt davor. Das schauen wir weiter unten nochmal technisch an, wenn es um den «Heterogenitätsknick» geht, der als «Ellenbogen» gesehen werden und damit als Kriterium für eine gute Clusterlösung herhalten kann.
12.2 Voraussetzungen von Clusteranalysen generell
Nicht zu viele fehlende Werte, da fehlende Werte die Clusterbildung verzerren.
Das Skalenniveau spielt grundsätzlich keine Rolle, da Methoden der Clusteranalyse gibt (hierarchische Clusteranalyse), die auch mit kategorialen (nominale mit mehreren Ausprägungen) Variablen und ordinalen Variablen gut umgehen kann. Bei Clusteranalysemethoden mit Distanzmassen (wie k-Means-Clustering) müssen die Distanzen interpretierbar sein und mithin metrisch skaliert, was aber auch von den Dummys erfüllt wird.
Die Fallzahl sollte nicht zu klein sein. Es werden für brauchbare Clusteranalysen ordentliche Fallzahlen benötigt. Vor allem gilt das, wenn einzelne Variablenkombinationen (wichtig für die Gruppenbildung) dünn besetzt sind.
Die Variablen sollten ähnlich skaliert sein, damit nicht eine Variable mit einem deutlich grösserem Gewicht in die Clusteranalyse eingeht, nur weil sie breiter skaliert ist. Bei sehr unterschiedlichen Skalierungen empfiehlt sich eine vorherige Standardisierung (z-Transformation bzw. scale) der Variablen (bei vorheriger Faktorenanalyse ist das schon gegeben, weil Faktoren immer standardisiert sind (\(\overline{x}\) = 0, sd = 1)).1
12.3 Vorgehensweise
Als Grundlage von Clusteranalysen dienen Variablen im Datensatz. Man wählt Variablen aus, von denen man annimmt, dass sie charackteristisch sind für die Gruppenbildung, die man anstrebt.
Aufbereitung der Variablen:
- Die Variablen für die Clusteranalyse sollten nicht zu stark korrelieren. Sollte das der Fall sein, kann eine explorative Faktorenanalyse durchgeführt werden, um dann die Clusteranalyse mit den Faktoren und separaten Variablen durchzuführen, die eine hohe Uniqueness (kleine Kommunalitäten) in der Faktorenenalyse haben (siehe Kapitel 8).
- Sind die Variablen sehr unterschiedlich skaliert (zB Alter 15-107 und Wahlabsicht 0 und 1), sollte man die Variablen standardisieren (z-transformieren), damit jede Variable in die Clusteranalyse mit demselben Gewicht eingeht (Es sei denn, man möchte einzelen Variablen höher gewichten. In dem Fall empfehle ich, die Variablen nach der Standardisierung mit einem Faktor zu multiplizieren, also zB das standardisierte Alter mit 0.5 und die standardisierte Wahlabsicht mit 2, wenn die höher gewichtet sein soll.)
Bevor man zur eigentlichen Clusteranalyse schreitet, muss man ein gutes Mass für die Ähnlichkeit oder die Distanz wählen («Proximitätsmasse»).
An dieser Stelle weichen verschiedene Clusteranalysen voneinander ab.
- Bei der hierarchischen Clusteranalyse werden an diesem Punkt die Cluster zusammengelegt, also vom Ausgangspunkt, dass jeder Fall ein Cluster ist, bis dahin, dass alle Fälle in einem Cluster zusammenglegt sind. Das passiert schrittweise, indem in jedem Schritt alle Cluster miteinander verglichen werden und jeweils die beiden ähnlichsten zusammengelegt werden.
- Bei der K-mean-Clusteranalyse muss an dieser Stelle mit Hilfe eines Screeplots bestimmt und festgelegt werden, wie viele Cluster es geben soll.
- Da der Schritt 4 für verschiedene Clusteranalysen unterschiedlich ist, ist es auch der Schritt 5.
- Bei der hierarchischen Clusteranalyse wird hier die Anzahl Cluster anhand des Dendrogramms (oder alternativ durch einen Screeplot) bestimmt.
- Bei der K-mean-Clusteranalyse werden in diesem Schritt die Cluster extrahiert, indem zunächst die Clusterzentren zufällig in den Merkmalsraum (multidimensionales Koordinatensystem aller Variablen in der Analyse) gelegt werden. Dann werden diesen Clusterzentren alle ihnen jeweils nächsten Fälle zugeordnet. Dann werden die Clusterzentren ins Zentrum ihrer Fälle verschoben und dann die Fälle neu zugeordnet. Das passiert so oft, bis die Clusterzentren nicht mehr ihre Position verändern (und alle Fälle in ihren Clustern verbleiben).
Die Clusterzuorndung wird in den Daten gespeichert.
Jetzt werden die Cluster charakterisiert (interpretiert), indem geschaut wird, wie die Variablen in den verschiedenen Clustern aussehen, welche Mittelwerte sie zum Beispiel haben oder wie hoch die Prozentanteile einzelner Werte (1 bei Dummys) sind.
12.4 Proximitätsmasse
Diese «Proximitätsmasse» können folgende Distanzmasse sein: euklidische Distanzen bei metrischen Variablen:
Die Distanz d ist die Wurzel der Summe aller quadrierten Abstände in den Richtungen der Variablendimensionen: \(d = \sqrt{(q_1-p_1)^2 + (q_2-p_2)^2}\). Das kommt aus der euklidischen Geometrie und kennen Sie sicher aus der Formel für die Seitenlängen in rechtwinkligen Dreiecken mit \(a^2 + b^2 = c^2\), also Ankathete zum Quadrat plus Gegenkathete zum Quadrat ist gleich der Hypothenuse zum Quadrat. Das nur schnell als Antwort auf ihre alte Frage aus Schulzeiten, wozu sie das wohl jemals brauchen würden. 😃 Siehe auch Abbildung 12.2.
Es gibt weitere Distanzmasse auch für metrische Variablen. Bei dichotomen Variablen gibt es noch den M-Koeffizienten, der schlicht die Übereinstimmungen wiedergibt (also in allen Variablen eine 1 oder in allen Variablen eine 0 oder nur in Teilen usw.).
Neben diesen Massen für die Distanz bzw. Nähe im geometrischen Sinne, gibt es noch Ähnlichkeitsmasse. Dazu zählt zum Beispiel der Q-Korrelationskoeffizient, der dasselbe ist, wie Pearsons Korrelationskoeffizient. Die Korrelationen können bei stetigen Variablen verwendet werden. Bei kategoriellen Merkmalen kann \(\chi^2\) verwendet werden. Eine kleine Systematik der Clusteranalyse findet sich in Abbildung 12.3.
Dann muss noch der Cluster-Algorithmus gewählt werden. Es gibt die «Hierarchische Clusteranalyse» mit «Single-Linkage» und mit «Complete Linkage». Für metrische Variablen können partionierende Clusteranalysen eingesetzt werden, wie der k-Means-Algorithmus oder der Two-Stage-Algorithmus. Die einfachste Methode ist im Grunde die k-Means-Cluster-Methode, die daher hier als erste etwas genauer angeschaut und in R berechnet werden sollte.
Nehmen Sie also den Code und probieren Sie es aus. So können Sie praktisch üben.
12.5 Die k-Means-Cluster-Methode
In der schrittweisen «Animation» der k-Means-Clusterung sieht man, wenn man genau hinschaut, wie die Cluster am Anfang zufällig verteilt werden, dann alle Fälle, den ihnen am nächsten gelegenen Clusterzentrum zugeordnet werden und die «Clusterzentren» eigentlich erst dann in das Zentrum ihres Clusters gelegt werden. Dann kann es vorkommen, dass einzelne Fälle dichter an einem anderen Cluster liegen und werden deshalb eben dem Cluster zugeordnet, in dessen Nähe sie liegen. Danach liegen die Clusterzentren wieder nicht mehr genau im Zentrum ihres eigenen Clusters und werden erneut so verschoben, dass sie genau in dessen Mitte liegen. Das «konvergiert» dann in der Regel irgendwann. Das heisst, bei jedem neuen Schritt würde kein Fall sein Cluster wechseln und darum auch die Clusterzentren unbewegt da bleiben wo sie sind. Das ist dann die Lösung!
Mit diesen Befehlen kann man eine schöne Clusteranalyse laufen lassen.
<- iris |>
DATEN select(-Species)
# Compute k-means with k = 3
set.seed(123)
<- kmeans(scale(DATEN), 3, nstart = 25)
res.km
# Dimension reduction using PCA
<- prcomp(DATEN, scale = TRUE)
res.pca
# Coordinates of individuals
<- as.data.frame(factoextra::get_pca_ind(res.pca)$coord)
ind.coord # Add clusters obtained using the K-means algorithm
$cluster <- factor(res.km$cluster)
ind.coord# Add Species groups from the original data sett
$Species <- iris$Species
ind.coord# Data inspection
# head(ind.coord)
# Percentage of variance explained by dimensions
<- round(factoextra::get_eigenvalue(res.pca), 1)
eigenvalue <- eigenvalue$variance.percent
variance.percent
# head(eigenvalue)
::ggscatter(
ggpubrx = "Dim.1", y = "Dim.2",
ind.coord, color = "cluster", palette = "npg", ellipse = TRUE, ellipse.type = "convex",
shape = "Species", size = 1.5, legend = "right", ggtheme = theme_bw(),
xlab = paste0("Dim 1 (", variance.percent[1], "% )" ),
ylab = paste0("Dim 2 (", variance.percent[2], "% )" )
+
) ::stat_mean(aes(color = cluster), size = 4) ggpubr
LEF 12
Essayfragen 12
E12.1 a) Was ist das Ziel einer Clusteranalyse? b) Was ist der Unterschied zu einer Faktorenanalyse?
E12.2 Welches Skalenniveau wird benötigt, wenn bei einer Clusteranalyse «Clusterzentren» berechnet werdenn sollen?
E12.3 Wie ist der grobe Ablauf einer k-means-Clusteranalyse?
E12.4 Warum werden Clusteranalysen im Kontext von ML als «unsupervised learning» bezeichnet?
E12.5 Warum kann man nicht einfach sagen, dass die Clusterlösung mit der kleinsten Heterogenität (mittlere Distanz zu Clusterzentren) die beste Lösung ist?
E12.6 Warum werden oft Faktorenanalysen vor den Clusteranalysen durchgeführt?
E12.7 Was verbirgt sich hinter der Abkürzung «ML»?
E12.8 Wozu dient bei einer Clusteranalyse das «Ellbogenkriterium»?
E12.9 Warum sind hierarchische Clusteranalysen für Big Data oder zum Beispiel Bildanalysen ungeeignet?
E12.10 NEU Bringen Sie die folgenden Ablaufschritte einer hierarchischen Clusteranalyse in die richtige Reihenfolge:
- Clusteralgorithmus wählen (single linkage)
- Anzahl Cluster bestimmen (zB mit Dendrogramm)
- Clustervariable(n) festlegen
- jedem Fall ein Cluster bauen
- den letzten Schritt so lange tun, bis es nur noch ein Cluster gibt
- zwei Cluster zusammenlegen
- Clusterlösung interpretieren
MC-Fragen 12
MC 12.1.
MC 12.2.
MC 12.3.
MC 12.4.
MC 12.5.
MC 12.6.
Insgesamt von Punkten, was % und etwa einer entspricht.
Wenn man einzelne Variablen besonders wichtig findet in der Clusteranalyse, kann man sie erstmal standardisieren und dann mit einem Faktor multiplizieren, damit sie um den Faktor mit höherem Gewicht in die Analyse eingehen.↩︎