Hierarchisches Clustering ist ein unüberwachter Algorithmus des maschinelles Lernen, der Daten in einer Struktur aus verschachtelten Clustern gruppiert. Zwei Haupttypen nennen sich „agglomerativ“ und „spaltend“. Die hierarchische Clusteranalyse hilft dabei, Muster und Verbindungen in Datensätzen zu finden. Die Ergebnisse werden in einem Dendrogramm-Diagramm dargestellt, das die Abstandsbeziehungen zwischen den Clustern zeigt.
Clustering ist eine Technik des unbeaufsichtigten maschinellen Lernens, die in der Datenanalyse verwendet wird, um ähnliche Objekte zu erkennen und zu gruppieren. Hierarchische Clusteranalyse (HCA) oder hierarchisches Clustering gruppiert Objekte in einer Cluster-Hierarchie, ohne sie in eine lineare Reihenfolge zu setzen. Viele Disziplinen, wie z. B. Biologie, Bildanalyse und Sozialwissenschaften, verwenden hierarchische Clustering-Methoden, um Muster in Datensätzen zu erkunden und zu erkennen. Zu den Anwendungsfällen gehören die Kategorisierung von Populationen in der klinischen Forschung, Kundensegmentierung und die Erkennung von Gemeinschaften von Knotenpunkten in Netzwerkmodellen.
Es gibt zwei Arten von hierarchischem Clustering:
- Agglomerativer oder Bottom-Up-Ansatz1, bei dem Cluster immer wieder zu größeren zusammengeführt werden, bis ein einziger Cluster entsteht.
- Spaltender oder Top-Down-Ansatz, der2 mit allen Daten in einem einzelnen Cluster beginnt und Cluster weiter aufteilt, bis alle Cluster Singletons sind.
Die hierarchische Clustering-Analyse ist mit hohen Rechenkosten verbunden. Die Verwendung eines Heapspeichers kann zwar die Rechenzeit reduzieren, erhöht aber gleichzeitig die Speicheranforderungen. Sowohl die spaltende als auch die agglomerative Art des Clusterings sind "„gierig“, was bedeutet, dass der Algorithmus entscheidet, welche Cluster zusammengeführt oder geteilt werden sollen, indem er in jeder Phase des Prozesses die lokal optimale Wahl trifft. Es ist auch möglich, ein Stopp-Kriterium anzuwenden, bei dem der Algorithmus die Agglomeration oder das Aufteilen von Clustern stoppt, wenn er eine vorgegebene Anzahl von Clustern erreicht.
Ein baumartiges Diagramm, das als Dendrogramm3 bezeichnet wird, wird häufig verwendet, um die Hierarchie der Cluster zu visualisieren. Es zeigt die Reihenfolge an, in der Cluster zusammengeführt oder geteilt wurden, und zeigt die Ähnlichkeit oder den Abstand zwischen Datenpunkten an. Dendrogramme können auch als verschachtelte Liste von Listen4 mit Attributen verstanden werden.
Hierarchische Clustering-Algorithmen verwenden das Konzept einer Unähnlichkeitsmatrix, um zu entscheiden, welche Cluster zusammengeführt oder geteilt werden sollen. Die Unähnlichkeit ist der Abstand zwischen zwei Datenpunkten, der mit einer gewählten Verknüpfungsmethode (Linkage) gemessen wird. Die Werte in einer Unähnlichkeitsmatrix drücken aus:
- Die Entfernung5, ein euklidischer Abstand als Beispiel, zwischen einzelnen Punkten in einer Menge
- Ein Kriterium für Linkage-Clustering, das die Unähnlichkeit als Funktion der paarweisen Abstände von Punkten über Datensätze hinweg angibt
Lassen Sie uns die gängigsten Methoden zur euklidischen Distanzverknüpfung erkunden. Beispiele für andere verwendbare Distanzmetriken sind Minkowski-, Hamming-, Mahalanobis-, Hausdorf- und Manhattan-Distanz. Beachten Sie, dass jede Verknüpfungsmethode unterschiedliche Cluster aus demselben Datensatz generiert. Die Auswahl der geeigneten Linkage-Clustering-Methode hängt von Faktoren wie der Art der zu clusternden Daten, der Datendichte, der Clusterform ab sowie davon, ob der Datensatz Ausreißer oder Rauschen enthält.
Die einzelne Verknüpfungsmethode analysiert paarweise Abstände zwischen Elementen in zwei Clustern und verwendet dann den Mindestabstand zwischen den Clustern. Die min-Methode kann nicht-elliptische Clusterformen gut verarbeiten, wird aber durch Rauschen und Ausreißer beeinträchtigt. Es gibt eine Einschränkung, die als Verkettungseffekt bekannt ist.6 Einige Punkte, die eine Brücke zwischen einem Clusterpaar bilden, können dazu führen, dass die beiden Cluster zu einem einzigen Cluster verschmelzen. Die Kriterien für die minimale Verknüpfung können wie folgt dargestellt werden:
mina∈A,b∈Bd(a,b)
Dabei sind A und B zwei Sätze von Beobachtungen und d ist eine Entfernungsfunktion.
Cluster-Entfernungen können auch basierend auf den Punkten berechnet werden, die am weitesten voneinander entfernt sind. Die max-Methode ist weniger empfindlich gegenüber Rauschen und Ausreißern als die min-Methode, aber die Verwendung dieser Methode kann die Ergebnisse verzerren, wenn kugelförmige oder große Cluster vorhanden sind. Die max-Verknüpfung erzeugt oft mehr kugelförmige Cluster als die min-Verknüpfung. Die max-Verknüpfung kann in der folgenden Formel dargestellt werden:
maxa∈A,b∈Bd(a,b)
Dabei sind A und B zwei Gruppen von Beobachtungen und d ist die Entfernung.
Diese von Sokal und Michener7 eingeführten Methoden definieren den Abstand zwischen Clustern als den durchschnittlichen Abstand zwischen Paaren über alle Punktpaare in den Clustern hinweg. Der Algorithmus kann entweder die ungewichtete Paargruppenmethode mit arithmetischem Mittelwert (UPGMA) oder die gewichtete Paargruppenmethode mit arithmetischem Mittelwert (WPGMA) sein. Der Begriff „ungewichtet“ bedeutet hier, dass alle Entfernungen gleichermaßen zu jedem Durchschnitt beitragen.
UPGMA wird durch die folgende Formel dargestellt
1∣A∣·∣B∣∑a∈A∑b∈Bd(a,b)
wobei *A* und *B* zwei Beobachtungssätze und *d* die Entfernung sind.
WPGMA wird durch die folgende Formel dargestellt
d(i∪j,k)=d(i,k)+d(j,k)2
Dabei sind i und j die nächstgelegenen Cluster, die in jedem Schritt kombiniert werden, um einen neuen Cluster aus der Vereinigung von i und j zu bilden. Wir können dann die Entfernung zu einem anderen Cluster k berechnen, die das arithmetische Mittel der durchschnittlichen Abstände zwischen den Datenpunkten in k und i sowie k und j ist.
Hier verwenden wir den Abstand zwischen Clusterzentren oder Schwerpunkten. Der Abstand zwischen den Schwerpunkten wird mit Hilfe einer Abstandsfunktion berechnet:
∥μA-μB∥2
Dabei ist μA der Schwerpunkt von A und μB der Schwerpunkt von B.
Joe H. Ward führte in den 1960er Jahren die Methode der minimalen Zunahme der Summe der Quadrate (MISSQ)8 ein. Jeder Datenpunkt beginnt in seinem eigenen Cluster. Dieser Ansatz bedeutet, dass die Summe der Quadrate zwischen den Datenpunkten zunächst Null beträgt und dann beim Zusammenführen von Clustern zunimmt. Wards Methode minimiert die Summe der quadrierten Entfernungen der Punkte von den Clusterzentren beim Zusammenführen. Wards Methode ist eine gute Wahl für quantitative Variablen9 und wird weniger von Rauschen oder Ausreißern beeinflusst. Sie kann wie folgt dargestellt werden:
∣A∣·∣B∣A∪B∥μA-μB∥2=∑x∈A∪B∥x-μA∪B∥2-∑x∈A∥x-μA∥2-∑x∈B∥x-μB∥2
Dabei sind der Mittelwert von A und der Mittelwert von B die Schwerpunkte von A bzw. B und x ist ein Datenpunkt, der zur Vereinigung von A und B gehört
Die Methode der minimalen Varianz nach Ward kann mit einem Lance-Williams-Algorithmus verfeinert werden. Diese Algorithmen verwenden eine rekursive Formel, um Cluster-Abstände zu aktualisieren und das optimale Cluster-Paar zu finden, das sich am nächsten befindet und zu verschmelzen ist.
Beim agglomerativen hierarchischen Clustering, auch bekannt als agglomeratives Nesting (AGNES), beginnt jeder Datenpunkt als Cluster. Der Algorithmus verwendet ein ausgewähltes Linkage-Clustering-Kriterium, das auf einer Unähnlichkeitsmatrix basiert, um zu entscheiden, welches Cluster-Paar zusammengeführt werden soll. Der Algorithmus verschiebt sich in der Hierarchie nach oben und bildet solange Cluster-Paare, bis alles miteinander verknüpft ist. Dadurch entsteht eine hierarchische Reihe verschachtelter Cluster. Grob zusammengefasst sind die Schritte des agglomerativen Clustering10:
1. Berechnung der Unähnlichkeitsmatrix unter Verwendung einer bestimmten Abstandsmetrik.
2. Ordnen Sie jeden Datenpunkt einem Cluster zu.
3. Führen Sie die Cluster basierend auf einem Verknüpfungskriterium für die Ähnlichkeit von Clustern zusammen.
4. Aktualisieren Sie die Entfernungsmatrix.
5. Wiederholen Sie die Schritte 3 und 4, bis ein einzelner Cluster übrig bleibt oder ein Stoppkriterien erfüllt ist.
Die Prinzipien hinter dem spaltenden hierarchischen Clustering wurden 1964 von Macnaughton-Smith und anderen11 entwickelt und 1990 von Kaufman und Rousseeuw mit ihrem DIANA-Algorithmus (Divisive ANAlysis Clustering)12 weiter untersucht. Beim spaltenden Clustering wird der dem agglomerativen Clustering entgegengesetzte Ansatz verwendet. Alle Datenpunkte beginnen in einem einzelnen Cluster, der wiederholt in mehrere Cluster aufgeteilt wird. Die Aufteilung erfolgt, bis entweder alle verbleibenden Cluster Singletons sind oder ein Stoppkriterium wie eine vordefinierte Anzahl von Clustern erfüllt ist. Spaltende Methoden sind besser in der Lage, große Cluster zu identifizieren13, und können genauer sein als agglomerative Methoden, da der Algorithmus die gesamte Verteilung des Datensatzes von Beginn des Prozesses an berücksichtigt.
Um die Effizienz zu verbessern, nutzen spaltende Methoden flache Clustering-Algorithmen wie k-Means, um den Datensatz in Cluster aufzuteilen. Die Anzahl der Cluster muss im Voraus angegeben werden. Der k-Means-Algorithmus teilt Cluster auf, indem er die Summe der Quadrate innerhalb des Clusters zwischen den Schwerpunktpunkten minimiert. Dies wird als Trägheitskriterium14 bezeichnet. Die spaltenden Clustering-Schritte15 sind:
1. Beginnen Sie mit allen Datenpunkten für eine Datensatzgröße N (d1, d2, d3 ... dN) in einem Cluster.
2. Aufteilung des Clusters in zwei unterschiedliche oder heterogene Cluster durch Anwendung einer flachen Clustering-Methode wie den k-Means-Algorithmus.
3. Wiederholung von Schritt 2, wobei der beste Cluster zum Teilen ausgewählt wird und die Ausreißer des am geringsten zusammenhängenden Clusters nach jeder Iteration entfernt werden.
4. Anhalten, wenn sich jedes Beispiel in einem eigenen Cluster befindet, andernfalls Wiederholung von Schritt 3.
Cluster-Ergebnisse werden in der Regel in einem Dendrogramm (binäre Baumstruktur) dargestellt. Die x-Achse im Dendrogramm stellt die Datenpunkte dar und die y-Achse oder die Höhe der Linien zeigt, wie weit die Cluster bei der Zusammenführung voneinander entfernt waren.
Mithilfe eines Dendrogramms können Sie entscheiden, wie viele Cluster16 Ihr endgültiges Clustermodell enthalten soll. Eine Strategie besteht darin, den natürlichen Abbruchpunkt im Baum zu ermitteln, an dem die Zweige sich lichten und länger werden. Alternativ ergibt sich die Anzahl der Cluster aus der Anzahl der vertikalen Linien, die gekreuzt werden, wenn eine horizontale Linie das Dendrogramm schneidet.
In dem hier gezeigten Beispielbild schneidet die horizontale Linie H1 zwei vertikale Linien. Dies zeigt, dass an diesem Punkt des Prozesses zwei Cluster vorhanden sind: ein Cluster mit den Punkten 5, 8 und 2 und ein Cluster mit den verbleibenden Punkten. Je weiter sich die horizontale Linie nach oben oder unten verschieben kann, ohne dass andere horizontale Linien im Dendrogramm geschnitten werden, desto besser ist die Auswahl dieser Anzahl von Clustern für Ihr Cluster-Modell. Im folgenden Beispiel wählt die horizontale Linie H2 vier Cluster aus. H2 ist kann nicht bis zu H1 auf und ab verschoben werden, ohne andere horizontale Linien zu schneiden. Dieses Szenario zeigt, dass die Option mit zwei Clustern (H1) wahrscheinlich besser für Ihr Clusteringmodell geeignet ist.
Ein robustes Clustering-Modell17 erzeugt Cluster mit hoher Ähnlichkeit innerhalb der Klassen und geringer Ähnlichkeit zwischen den Klassen. Es kann jedoch schwierig sein, die Clusterqualität zu definieren, und die Auswahl des Verknüpfungskriteriums und der Clusternummern kann sich erheblich auf Ihre Ergebnisse auswirken. Probieren Sie daher beim Erstellen eines Clustering-Modells verschiedene Optionen aus und wählen Sie diejenigen aus, die Ihnen am besten helfen, Muster im Datensatz für zukünftige Überlegungen zu erkunden und aufzudecken. Zu den zu berücksichtigenden Faktoren18 gehören:
- Die Anzahl der Cluster, die für den Datensatz praktisch oder logisch sind (bei gegebener Datensatzgröße, Clusterformen, Rauschen usw.)
- Statistiken, wie etwa Mittel-, Maximal- und Minimalwerte für jeden Cluster
- Die beste anzuwendende Unähnlichkeitsmetrik oder das beste anzuwendende Verknüpfungskriterium
- Die Auswirkungen von Ausreißern oder Ergebnisvariablen
- Irgendwelche spezifischen Domänen- oder Datensatzkenntnisse
Zu den weiteren Methoden zur Ermittlung der optimalen Clusteranzahl19 gehören:
- Die Ellbogenmethode, bei der Sie die Summe der Quadrate innerhalb von Clustern gegen die Anzahl der Cluster darstellen und den „Ellbogen“ (den Punkt, an dem die Darstellung abflacht) bestimmen.
- Lückenstatistik, bei der Sie die tatsächliche Summe der Quadrate innerhalb des Clusters mit der erwarteten Summe der Quadrate innerhalb des Clusters für eine Nullreferenzverteilung vergleichen und die größte Lücke ermitteln.
Mit Hilfe des hierarchischen Clustering gewinnen Data Scientists Erkenntnisse zur Struktur und zu den Beziehungen innerhalb von Datensätzen. Es kann in verschiedenen Anwendungsfallen eingesetzt werden.
Durch hierarchisches Clustering können Trends analysiert und Kundendaten segmentiert werden, zum Beispiel durch Gruppierung nach Produktauswahl, demografischen Merkmalen, Kaufverhalten, Risikoprofil oder Interaktion mit sozialen Medien.
Patientenkohorten für die klinische Forschung können in die Tausende gehen. Hierarchisches Clustering hilft dabei, gemischte Populationen in homogenere Gruppen zu kategorisieren20, z. B. anhand von diagnostischen Kriterien, physiologischen Reaktionen oder DNA-Mutationen. Es kann auch dazu verwendet werden, Arten nach biologischen Merkmalen zu gruppieren, um die evolutionäre Entwicklung zu verstehen.
Hierarchisches Clustering wird in bildbasierten Texterkennungsanwendungen verwendet, um handgeschriebene Zeichen nach ihrer Form zu gruppieren. Es wird auch zum Speichern und Abrufen von Informationen anhand bestimmter Kriterien oder zum Kategorisieren von Ergebnissen verwendet.
Sowohl Python als auch die Programmiersprache R sind in der Data Science weit verbreitet. Python ist flexibel und kann ein breites Spektrum an Aufgaben bewältigen. R wurde speziell für statistische Berechnungen entwickelt und bietet umfangreiche Optionen zur Visualisierung Ihrer hierarchischen Clustering-Analyse.
Python bietet die Funktion „AgglomerativeCluster21“ (siehe auch Beispiele für agglomeratives Clustering22 auf sklearn), und SciPy bietet eine Funktion zur Darstellung von Dendrogrammen23. Pakete wie dendextend24 erweitern die Dendrogramm-Funktionalität von R, verbessern die Sensitivitätsanalyse und ermöglichen es Ihnen, verschiedene Dendrogramme zu vergleichen und zu verarbeiten. Wenn Sie praktische Erfahrungen sammeln möchten, sehen Sie sich unsere Schritt-für-Schritt-Tutorials dazu an wie man hierarchisches Clustering in Python implementiert und wie man hierarchisches Clustering in R implementiert.
1 Murtagh, F., Legendre, P., „Ward’s Hierarchical Agglomerative Clustering Method: Which Algorithms Implement Ward’s Criterion?“, 2014, J Classif 31, 274–295, https://link.springer.com/article/10.1007/s00357-014-9161-z
2 Kaufman, L.; Rousseeuw, P. J., Finding Groups in Data: An Introduction to Cluster Analysis. Wiley. Chp 6. Divisive Analysis (Program DIANA) S. 253–279, https://onlinelibrary.wiley.com/doi/book/10.1002/9780470316801
3 Galili, T., „Introduction to dendextend“, The Comprehensive R Archive Network, 2023, https://cran.r-project.org/web/packages/dendextend/index.html
4 Vorlesungsunterlagen des Penn State Eberly College of Science, „Hierarchical Clustering“, https://online.stat.psu.edu/stat555/node/85/
5, 17 Maimon, O., Rokach, L., Data Mining and Knowledge Discovery Handbook, 2010 2. Ausgabe, Springer, https://link.springer.com/book/10.1007/978-0-387-09823-4
6 Sokal, R, Michener, C., „A statistical method for evaluating systematic relationships“, 1958, University of Kansas Science Bulletin, 38: 1409–1438, https://archive.org/details/cbarchive_33927_astatisticalmethodforevaluatin1902/page/n1/mode/2up
7 Ward, J. H., „Hierarchical Grouping to Optimize an Objective Function“, 1963, Journal of the American Statistical Association, 58 (301): 236–244, https://www.tandfonline.com/doi/abs/10.1080/01621459.1963.10500845.
8 Vorlesungsunterlagen des Penn State Eberly College of Science, „Applied Multivariate Statistical Analysis“, https://online.stat.psu.edu/stat505/lesson/14/14.7
9, 15 Shetty P. und Singh S., „Hierarchical Clustering: A Survey“, International Journal of Applied Research, Band 7 Ausgabe 4, Teil C, 2021, https://www.allresearchjournal.com/archives/?year=2021&vol=7&issue=4&part=C&ArticleId=8484
10 Macnaugton-Smith, P., Williams, W., Dale, M., et al., „Dissimilarity Analysis: a new Technique of Hierarchical Sub-division“, Nature 202, 1034–1035 (1964), https://www.nature.com/articles/2021034a0
12 Boehmke, B., Greenwell, B., Hands-On Machine Learning with R, Taylor und Francis, 2020, https://bradleyboehmke.github.io/HOML/
13 Cavalli-Sforza, L. L. und Edwards A. W. F., „Phylogenetic analysis: models and estimation procedures“, 1967, Evolution 21: 550–570 and Am. J. Hum. Genet. 19: 233–257, https://pmc.ncbi.nlm.nih.gov/articles/PMC1706274/
14 Sci-kit learn 1.3.2, 2.3 Clustering, https://scikit-learn.org/stable/modules/clustering.html
16 Vorlesungsunterlagen von MIT OpenCourseWare, 2017, https://ocw.mit.edu/courses/15-071-the-analytics-edge-spring-2017/pages/clustering/recommendations-worth-a-million-an-introduction-to-clustering/video-5-hierarchical-clustering/
18 Vorlesungsunterlagen der University of Washington, 2001, https://courses.cs.washington.edu/courses/csep546/04au/pdf-slides/10.pdf
19 Boehmke, B., University of Cincinnati Business Analytics R Programming Guide, https://uc-r.github.io/hc_clustering#algorithms
20 QCBS R Workshop-Reihe, https://r.qcbs.ca/workshop09/book-en/clustering.html
21 Zhongheng Zhang et al., „Hierarchical cluster analysis in clinical research with heterogeneous study population: highlighting its visualization with R“, Annals of Translational Medicine. Februar 2017; 5(4): 75, https://atm.amegroups.org/article/view/13789/14063
22, 23 Scit-kit learn 1.3.2 documentation, https://scikit-learn.org/stable/modules/generated/sklearn.cluster.AgglomerativeClustering.html
24 SciPy Manual v1.11.4, https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.dendrogram.html