Unter Clusteranalysen (Clustering-Algorithmen, gelegentlich auch: Ballungsanalyse) versteht man Verfahren zur Entdeckung von Ähnlichkeitsstrukturen in (meist relativ großen) Datenbeständen. Die so gefundenen Gruppen von „ähnlichen“ Objekten werden als Cluster bezeichnet, die Gruppenzuordnung als Clustering. Die gefundenen Ähnlichkeitsgruppen können graphentheoretisch, hierarchisch, partitionierend oder optimierend sein. Die Clusteranalyse ist eine wichtige Disziplin des Data-Mining, des Analyseschritts des Knowledge-Discovery-in-Databases Prozesses. Bei der Clusteranalyse ist das Ziel, neue Gruppen in den Daten zu identifizieren (im Gegensatz zur Klassifikation, bei der Daten bestehenden Klassen zugeordnet werden). Man spricht von einem „uninformierten Verfahren“, da es nicht auf Klassen-Vorwissen angewiesen ist. Diese neuen Gruppen können anschließend beispielsweise zur automatisierten Klassifizierung, zur Erkennung von Mustern in der Bildverarbeitung oder zur Marktsegmentierung eingesetzt werden (oder in beliebigen anderen Verfahren, die auf ein derartiges Vorwissen angewiesen sind).
Die zahlreichen Algorithmen unterscheiden sich vor allem in ihrem Ähnlichkeits- und Gruppenbegriff, ihrem Cluster-Modell, ihrem algorithmischen Vorgehen (und damit ihrer Komplexität) und der Toleranz gegenüber Störungen in den Daten. Ob das von einem solchen Algorithmus generierte „Wissen“ nützlich ist, kann jedoch in der Regel nur ein Experte beurteilen. Ein Clustering-Algorithmus kann unter Umständen vorhandenes Wissen reproduzieren (beispielsweise Personendaten in die bekannten Gruppen „männlich“ und „weiblich“ unterteilen) oder auch für den Anwendungszweck nicht hilfreiche Gruppen generieren. Die gefundenen Gruppen lassen sich oft auch nicht verbal beschreiben (z. B. „männliche Personen“), gemeinsame Eigenschaften werden in der Regel erst durch eine nachträgliche Analyse identifiziert. Bei der Anwendung von Clusteranalyse ist es daher oft notwendig, verschiedene Verfahren und verschiedene Parameter zu probieren, die Daten vorzuverarbeiten und beispielsweise Attribute auszuwählen oder wegzulassen.
Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres sollte auf der Diskussionsseite angegeben sein. Bitte hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Angewendet auf einen Datensatz von Fahrzeugen könnte ein Clustering-Algorithmus (und eine nachträgliche Analyse der gefundenen Gruppen) beispielsweise folgende Struktur liefern:
Dabei ist Folgendes zu beachten:
Historisch gesehen stammt das Verfahren aus der Taxonomie in der Biologie, wo über eine Clusterung von verwandten Arten eine Ordnung der Lebewesen ermittelt wird. Allerdings wurden dort ursprünglich keine automatischen Berechnungsverfahren eingesetzt. Inzwischen können zur Bestimmung der Verwandtschaft von Organismen unter anderem ihre Gensequenzen verglichen werden (Siehe auch: Kladistik). Später wurde das Verfahren für die Zusammenhangsanalyse in die Sozialwissenschaften eingeführt, weil es sich wegen des in den Gesellschaftswissenschaften in der Regel niedrigen Skalenniveaus der Daten in diesen Disziplinen besonders eignet.[1] Die Eigenschaften der zu untersuchenden Objekte werden mathematisch als Zufallsvariablen aufgefasst. Sie werden in der Regel in Form von Vektoren als Punkte in einem Vektorraum dargestellt, deren Dimensionen die Eigenschaftsausprägungen des Objekts bilden. Bereiche, in denen sich Punkte anhäufen (Punktwolke), werden Cluster genannt. Bei Streudiagrammen dienen die Abstände der Punkte zueinander oder die Varianz innerhalb eines Clusters als sogenannte Proximitätsmaße, welche die Ähnlichkeit bzw. Unterschiedlichkeit zwischen den Objekten zum Ausdruck bringen. Ein Cluster kann auch als eine Gruppe von Objekten definiert werden, die in Bezug auf einen berechneten Schwerpunkt eine minimale Abstandssumme haben. Dazu ist die Wahl eines Distanzmaßes erforderlich. In bestimmten Fällen sind die Abstände (bzw. umgekehrt die Ähnlichkeiten) der Objekte untereinander direkt bekannt, so dass sie nicht aus der Darstellung im Vektorraum ermittelt werden müssen. Grundsätzliche VorgehensweiseIn einer Gesamtmenge/-gruppe mit unterschiedlichen Objekten werden die Objekte, die sich ähnlich sind, zu Gruppen (Clustern) zusammengefasst. Als Beispiel sei folgende Musikanalyse gegeben. Die Werte ergeben sich aus dem Anteil der Musikstücke, die der Nutzer pro Monat online kauft.
In diesem Beispiel würde man die Personen intuitiv in zwei Gruppen einteilen. Gruppe1 besteht aus Person 1&2 und Gruppe 2 besteht aus Person 3. Das würden auch die meisten Clusteralgorithmen machen. Dieses Beispiel ist lediglich aufgrund der gewählten Werte so eindeutig, spätestens mit näher zusammenliegenden Werten und mehr Variablen (hier Musikrichtungen) und Objekten (hier Personen) ist leicht vorstellbar, dass die Einteilung in Gruppen nicht mehr so trivial ist. Etwas genauer und abstrakter ausgedrückt: Die Objekte einer heterogenen (beschrieben durch unterschiedliche Werte ihrer Variablen) Gesamtmenge werden mit Hilfe der Clusteranalyse zu Teilgruppen (Clustern/Segmenten) zusammengefasst, die in sich möglichst homogen (die Unterschiede der Variablen möglichst gering) sind. In unserem Musikbeispiel kann die Gruppe aller Musikhörer (eine sehr heterogene Gruppe) in die Gruppen der Jazzhörer, Rockhörer, Pophörer etc. (jeweils relativ homogen) unterteilt werden bzw. werden die Hörer mit ähnlichen Präferenzen zu der entsprechende Gruppe zusammengefasst. Eine Clusteranalyse (z. B. bei der Marktsegmentierung) erfolgt dabei in folgenden Schritten: Schritte zur Clusterbildung:
Weitere Schritte der Clusteranalyse:
Unterschiedliche Proximitätsmaße/SkalenDie Skalen bezeichnen den Wertebereich, den die betrachtete(n) Variable(n) des Objektes annehmen kann/können. Je nachdem welche Art von Skala vorliegt, muss man ein passendes Proximitätsmaß verwenden. Es gibt drei Hauptkategorien von Skalen:
Formen der Gruppenbildung (Gruppenzugehörigkeit)→ Hauptartikel: Cluster (Datenanalyse) Es sind drei unterschiedliche Formen der Gruppenbildung (Gruppenzugehörigkeit) möglich. Bei den überlappenden Gruppen kann ein Objekt mehreren Gruppen zugeordnet werden, bei den nicht überlappenden Gruppen hingegen wird jedes Objekt nur einer einzelnen Gruppe (Segment, Cluster) zugeordnet. In den Fuzzy-Gruppen gehört ein Element jeder Gruppe mit einem bestimmten Grad des Zutreffens an.
Man unterscheidet zwischen „harten“ und „weichen“ Clustering-Algorithmen. Harte Methoden (z. B. k-means, Spektrales Clustering, Kernbasierte Hauptkomponentenanalyse (kernel principal component analysis, kurz: kernel PCA)) ordnen jeden Datenpunkt genau einem Cluster zu, wohingegen bei weichen Methoden (z. B. EM-Algorithmus mit Gaußschen Mischmodellen (gaussian mixture models, kurz: GMMs)) jedem Datenpunkt für jeden Cluster ein Grad zugeordnet wird, mit der dieser Datenpunkt in diesem Cluster zugeordnet werden kann. Weiche Methoden sind insbesondere dann nützlich, wenn die Datenpunkte relativ homogen im Raum verteilt sind und die Cluster nur als Regionen mit erhöhter Datenpunktdichte in Erscheinung treten, d. h., wenn es z. B. fließende Übergänge zwischen den Clustern oder Hintergrundrauschen gibt (harte Methoden sind in diesem Fall unbrauchbar). Unterscheidung der ClusterverfahrenClusterverfahren lassen sich in graphentheoretische, hierarchische, partitionierende und optimierende Verfahren sowie in weitere Unterverfahren einteilen.
Diese Klassifikation bedarf einer Überarbeitung. Näheres sollte auf der Diskussionsseite angegeben sein. Bitte hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung.
Zu beachten ist, dass man noch diverse weitere Verfahren und Algorithmen unterscheiden kann, unter anderem überwachte (supervised) und nicht-überwachte (unsupervised) Algorithmen oder modellbasierte Algorithmen, bei denen eine Annahme über die zugrundeliegende Verteilung der Daten gemacht wird (z. B. Gaussian mixture model). Es sind eine Vielzahl von Clustering-Verfahren in den unterschiedlichsten Anwendungsgebieten entwickelt worden. Man kann folgende Verfahrenstypen unterscheiden:
Die ersten beiden Verfahrenstypen sind die klassischen Clusterverfahren, während die anderen Verfahren eher neueren Datums sind. Partitionierende ClusterverfahrenPartitionierende Clusteranalyse
K-means teilt die Daten in Voronoi-Zellen, und nimmt an, dass die Cluster etwa gleich groß sind (hier nicht gerechtfertigt)
K-means kann dichtebasierte Cluster nicht gut trennen
Normalverteilte Cluster können von EM-Clustering gut erkannt werden
Nicht konvexe Cluster werden auch vom EM-Algorithmus nicht gut erkannt Die Gemeinsamkeit der partitionierenden Verfahren ist, dass zunächst die Zahl der Cluster k {\displaystyle k} festgelegt werden muss (Nachteil). Dann werden k {\displaystyle k} Clusterzentren bestimmt und diese iterativ solange verschoben, bis sich die Zuordnung der Beobachtungen zu den k {\displaystyle k} Clusterzentren nicht mehr verändert, wobei eine vorgegebene Fehlerfunktion minimiert wird. Ein Vorteil ist, dass Objekte während der Verschiebung der Clusterzentren ihre Clusterzugehörigkeit wechseln können. k-Means-Algorithmus Die Clusterzentren werden zufällig festgelegt und die Summe der quadrierten euklidischen Abstände der Objekte zu ihrem nächsten Clusterzentrum wird minimiert. Das Update der Clusterzentren geschieht durch Mittelwertbildung aller Objekte in einem Cluster. k-Means++[2] Als Clusterzentren werden auch zufällig Objekte so ausgewählt, so dass sie etwa uniform im Raum der Objekte verteilt sind. Dies führt zu einem schnelleren Algorithmus. k-Median-Algorithmus Hier wird die Summe der Manhattan-Distanzen der Objekte zu ihrem nächsten Clusterzentrum minimiert. Das Update der Clusterzentren geschieht durch die Berechnung des Medians aller Objekte in einem Cluster. Ausreißer in den Daten haben dadurch weniger Einfluss. k-Medoids oder Partitioning Around Medoids (PAM)[3] Die Clusterzentren sind hier immer Objekte. Durch Verschiebung von Clusterzentren auf ein benachbartes Objekt wird die Summe der Distanzen zum nächstgelegenen Clusterzentrum minimiert. Im Gegensatz zum k-Means-Verfahren werden nur die Distanzen zwischen den Objekten benötigt und nicht die Koordinaten der Objekte.Fuzzy-c-Means-Algorithmus[4] Für jedes Objekt wird ein Zugehörigkeitsgrad zu einem Cluster berechnet, oft aus dem reellwertigen Intervall [0,1] (Zugehörigkeitsgrad=1: Objekt gehört vollständig zu einem Cluster, Zugehörigkeitsgrad=0: Objekt gehört nicht zu dem Cluster). Dabei gilt: je weiter ein Objekt vom Clusterzentrum entfernt ist, desto kleiner ist auch sein Zugehörigkeitsgrad zu diesem Cluster. Wie im k-Median-Verfahren werden die Clusterzentren dann verschoben, jedoch haben weit entfernte Objekte (kleiner Zugehörigkeitsgrad) einen geringen Einfluss auf die Verschiebung als nahe Objekte. Damit wird auch eine weiche Clusterzuordnung erreicht: Jedes Objekt gehört zu jedem Cluster mit einem entsprechenden Zugehörigkeitsgrad. EM-Clustering[5] Die Cluster werden als k {\displaystyle k} multivariate Normalverteilungen modelliert. Mit Hilfe des EM-Algorithmus werden die unbekannten Parameter ( μ i , Σ i {\displaystyle \mu _{i},\Sigma _{i}} mit i = 1 , … , k {\displaystyle i=1,\ldots ,k} ) der Normalverteilungen iterativ geschätzt. Im Gegensatz zu k-Means wird damit eine weiche Clusterzuordnung erreicht: Mit einer gewissen Wahrscheinlichkeit gehört jedes Objekt zu jedem Cluster und jedes Objekt beeinflusst so die Parameter jeden Clusters. Affinity-Propagation[6] Affinity-Propagation (AP) ist ein deterministischer Message-Passing-Algorithmus, welcher automatisch eine Anzahl Clusterzentren findet. Als Ähnlichkeitsfunktion kann je nach Art der Daten z. B. die negative euklidische Distanz verwendet werden. Abstände der Objekte zu ihrem nächsten Clusterzentrum werden minimiert. Das Update der Clusterzentren geschieht durch Berechnung der Responsibility und Availability aller Objekte gegeneinander, sowie deren Summe, wobei ein zusätzlicher Dämpfungsfaktor numerische Instabilitäten vermeiden soll. Die Anzahl der Cluster wird automatisch ermittelt, das Ergebnis hängt aber von den manuell gesetzten Werten für Dämpfung und Selbstähnlichkeit der einzelnen Datenpunkte ab, sodass damit die ermittelte Anzahl der Cluster nicht die optimale sein muss.Hierarchische Clusterverfahren→ Hauptartikel: Hierarchische Clusteranalyse Hierarchische Clusteranalyse
Single Linkage auf normalverteilten Daten. Durch den Single-Link-Effekt trennen sich die beiden größten Cluster erst bei insgesamt 35 Clustern.
Single Linkage mit dichtebasierten Clustern. Zusätzlich zu den zwei Clustern werden noch 18 weitere einelementige Cluster gefunden. Als hierarchische Clusteranalyse bezeichnet man eine bestimmte Familie von distanzbasierten Verfahren zur Clusteranalyse. Cluster bestehen hierbei aus Objekten, die zueinander eine geringere Distanz (oder umgekehrt: höhere Ähnlichkeit) aufweisen als zu den Objekten anderer Cluster. Dabei wird eine Hierarchie von Clustern aufgebaut: auf der einen Seite ein Cluster, der alle Objekte enthält, und auf der anderen Seite so viele Cluster, wie man Objekte hat, d. h., jedes Cluster enthält genau ein Objekt. Man unterscheidet zwei wichtige Typen von Verfahren:
Für beide Verfahren gilt: einmal gebildete Cluster können nicht mehr verändert oder einzelne Objekte getauscht werden. Es wird die Struktur entweder stets nur verfeinert („divisiv“) oder nur verallgemeinert („agglomerativ“), so dass eine strikte Cluster-Hierarchie entsteht. An der entstandenen Hierarchie kann man nicht mehr erkennen, wie sie berechnet wurde. Dichtebasierte VerfahrenBeispiele für dichtebasiertes Clustering
Dichte-basiertes clustering mit DBSCAN
Da DBSCAN nur einen Dichte-Schwellwert verwendet, kann es benachbarte Cluster nicht immer gut trennen
OPTICS ist eine DBSCAN-Variante, die besser mit Dichtevariationen umgehen kann Bei dichtebasiertem Clustering werden Cluster als Objekte in einem d-dimensionalen Raum betrachtet, welche dicht beieinander liegen, getrennt durch Gebiete mit geringerer Dichte. DBSCAN[13] (Density-Based Spatial Clustering of Applications with Noise) Objekte, die in einem vorgegebenen Abstand ϵ {\displaystyle \epsilon } mindestens k {\displaystyle k} weitere Objekte haben, sind Kernobjekte. Zwei Kernobjekte, deren Distanz kleiner als ϵ {\displaystyle \epsilon } ist, gehören dabei zum selben Cluster. Nicht-Kern-Objekte, die nahe einem Cluster liegen, werden diesem als Randobjekte hinzugefügt. Objekte, die weder Kernobjekte noch Randobjekte sind, sind Rauschobjekte. OPTICS[14] (Ordering Points To Identify the Clustering Structure) Der Algorithmus erweitert DBSCAN, so dass auch verschieden dichte Cluster erkannt werden. Die Wahl des Parameters ϵ {\displaystyle \epsilon } ist nicht mehr so ausschlaggebend um die Clusterstruktur der Objekte zu finden.Maximum-Margin-Clustering[15] Es werden (leere) Bereiche im Raum der Objekte gesucht, die zwischen zwei Clustern liegen. Daraus werden Clustergrenzen bestimmt und damit auch die Cluster. Die Technik ist eng angebunden an Support-Vektor-Maschinen.Gitterbasierte VerfahrenBei gitterbasierten Clusterverfahren wird der Datenraum unabhängig von den Daten in endlich viele Zellen aufgeteilt. Der größte Vorteil dieses Ansatzes ist die geringe asymptotische Komplexität im Niedrigdimensionalen, da die Laufzeit von der Anzahl der Gitterzellen abhängt. Mit steigender Anzahl der Dimensionen wächst jedoch die Zahl der Gitterzellen exponentiell. Vertreter sind STING und CLIQUE. Zudem können Gitter zur Beschleunigung anderer Algorithmen eingesetzt werden, bspw. zur Approximation von k-means oder zur Berechnung von DBSCAN (GriDBSCAN).
Kombinierte VerfahrenIn der Praxis werden oft auch Kombinationen von Verfahren benutzt. Ein Beispiel ist es erst eine hierarchische Clusteranalyse durchzuführen, um eine geeignete Clusterzahl zu bestimmen, und danach noch ein k-Means Clustering, um das Resultat des Clusterings zu verbessern. Oft lässt sich in speziellen Situation zusätzliche Information ausnutzen, so dass z. B. die Dimension oder die Anzahl der zu clusternden Objekte reduziert wird. Spektrales Clustering[18][19] Die zu clusterenden Objekte können auch als Knoten eines Graphs aufgefasst werden und die gewichteten Kanten geben Distanz oder Unähnlichkeit wieder. Die Laplace-Matrix, eine spezielle Transformierte der Adjazenzmatrix (Matrix der Ähnlichkeit zwischen allen n {\displaystyle n} Objekten), hat bei k {\displaystyle k} Zusammenhangskomponenten (Clustern) den Eigenwert Null mit der Vielfachheit k {\displaystyle k} . Daher untersucht man die k {\displaystyle k} kleinsten Eigenwerte der Laplace-Matrix und den zugehörigen k {\displaystyle k} -dimensionalen Eigenraum ( k ≪ n {\displaystyle k\ll n} ). Statt in einem hochdimensionalen Raum wird nun in dem niedrigdimensionalen Eigenraum, z. B. mit dem k-Means-Verfahren, geclustert. Multiview-Clustering[20] Hierbei wird davon ausgegangen, dass man mehrere Distanz- oder Ähnlichkeitsmatrizen (sog. views) der Objekte generieren kann. Ein Beispiel sind Webseiten als zu clusternde Objekte: eine Distanzmatrix kann auf Basis der gemeinsam verwendeten Worte berechnet werden, eine zweite Distanzmatrix auf Basis der Verlinkung. Dann wird ein Clustering (oder ein Clustering-Schritt) mit der einen Distanzmatrix durchgeführt und das Ergebnis als Input für ein Clustering (oder ein Clustering-Schritt) mit der anderen Distanzmatrix benutzt. Dies wird wiederholt, bis sich die Clusterzugehörigkeit der Objekte stabilisiert. Balanced iterative reducing and clustering using hierarchies (BIRCH) Für (sehr) große Datensätze wird zunächst ein Preclustering durchgeführt. Die so gewonnenen Cluster (nicht mehr die Objekte) werden dann z. B. mit einer hierarchischen Clusteranalyse weitergeclustert. Dies ist die Basis des eigens für SPSS entwickelten und dort eingesetzten Two-Step clusterings.Biclustering→ Hauptartikel: Biclustering Biclustering, Co-Clustering oder Two-Mode Clustering ist eine Technik, die das gleichzeitige Clustering von Zeilen und Spalten einer Matrix ermöglicht. Zahlreiche Biclustering-Algorithmen wurden für die Bioinformatik entwickelt, darunter: Block Clustering, CTWC (Coupled Two-Way Clustering), ITWC (Interrelated Two-Way Clustering), δ-Bicluster, δ-pCluster, δ-Pattern, FLOC, OPC, Plaid Model, OPSMs (Order-preserving Submatrices), Gibbs, SAMBA (Statistical-Algorithmic Method for Bicluster Analysis), Robust Biclustering Algorithm (RoBA), Crossing Minimization, cMonkey, PRMs, DCC, LEB (Localize and Extract Biclusters), QUBIC (QUalitative BIClustering), BCCA (Bi-Correlation Clustering Algorithm) und FABIA (Factor Analysis for Bicluster Acquisition). Auch in anderen Anwendungsgebieten werden Biclustering-Algorithmen vorgeschlagen und eingesetzt. Dort sind sie unter den Bezeichnungen Co-Clustering, Bidimensional Clustering sowie Subspace Clustering zu finden. Die Ergebnisse eines jeden Cluster-Verfahrens müssen wie bei allen Verfahren des maschinellen Lernens einer Evaluation unterzogen werden. Die Güte einer fertig berechneten Einteilung der Datenpunkte in Gruppen kann anhand verschiedener Metriken eingeschätzt werden. Die Auswahl einer geeigneten Metrik muss immer im Hinblick auf die verwendeten Daten, die vorgegebene Fragestellung sowie die gewählte Clustering-Methode erfolgen. Zu den in der Praxis häufig verwendeten Evaluations-Kennzahlen gehört der 1987 von Peter J.Rousseeuw vorgestellte Silhouettenkoeffizient. Dieser berechnet pro Datenpunkt einen Wert, der angibt wie gut die Zuordnung zur gewählten Gruppe im Vergleich zu allen deren Gruppen erfolgt ist.[21] Mit einer Laufzeitkomplexität von O(n²) ist der Silhouettenkoeffizient aber langsamer als viele Clusterverfahren, und kann so nicht auf großen Daten verwendet werden. Der Silhouettenkoeffizient ist dabei ein Verfahren, welches ohne externe Informationen zur Evaluation auskommt. Diese internen Validitätsmetriken haben den Vorteil, dass kein Wissen über die korrekte Zuordnung vorhanden sein muss, um das Ergebnis zu bewerten. Neben internen Kennzahlen wird in der Wissenschaft zwischen externen und relativen Metriken unterschieden.[22]
|