Unter Clusteranalyse versteht man verschiedene automatische Verfahren der [wiki:Datenanalyse] zur Ermittlung von Gruppen (Cluster) zusammengehöriger Objekte aus einer Grundmenge von numerisch beschriebenen Objekten. Die Objekte können beispielsweise Datensätze von Messwerten oder Bildpunkte sein, in denen geordnete Ansammlungen oder Hierarchien gefunden werden sollen.
Verfahren der Clusteranalyse lassen sich zur automatischen [wiki:Klassifikation], zur Erkennung von Mustern in der Bildverarbeitung und zum [wiki:Data-Mining] einsetzen.
Die zu untersuchenden Objekte werden bei der Clusteranalyse oft in Form von Vektoren als Punkte in einem Vektorraum zusammengefasst. Die Anzahl der Komponenten der Datenvektoren bildet die Dimension des Vektorraumes. Ein Cluster ist eine Anhäufung von Punkten mit geringerem Abstand zu Punkten des gleichen Clusters als zu Nachbarn anderer Cluster bzw. eine Gruppen von Punkten, die untereinander oder in Bezug auf einen berechneten Schwerpunkt eine minimale Abstandssumme haben. Dazu ist die Wahl eines Distanzmaßes erforderlich. In anderen Fällen sind die Abstände (bzw. umgekehrt die Ähnlichkeiten) der Objekte untereinander direkt bekannt und müssen nicht aus der Darstellung im Vektorraum ermittelt werden.
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 Organismus unter anderem ihre Gensequenzen verglichen werden.
Siehe auch: [wiki:Kladistik]
Daten-clustering Algorithmen können hierarchisch oder partitionierend sein, wobei man erstere noch in agglomerierende (bottom-up) oder unterteilende (top-down) Algorithmen unterteilt. Weiterhin unterscheidet man zwischen überwachten (supervised) und nicht-überwachten (unsupervised) Algorithmen.
Je nach Algorithmus muss eine [wiki:Distanzfunktion] zur Bestimmung des Abstands zweier Elemente (<math>d(a,b)</math>, zum Beispiel die [wiki:Euklidische Distanz]) und/oder eine Methode zur Berechnung des Mittelpunktes oder Centroiden eines Clusters (<math>\bar a</math>, zum Beispiel der [wiki:Mittelwert]) bekannt sein. Anstatt einer Distanzfunktion arbeiten einige Algorithmen auch mit einer Ähnlichkeitsfunktion.
Grundsätzlich lassen sich anhäufende Verfahren (agglomerative clustering) und teilende Verfahren (divisive clustering) unterscheiden. Bei den anhäufenden Verfahren, die in der Praxis häufiger eingesetzt werden, werden schrittweise einzelne Objekte zu Clustern und diese zu größeren Gruppen zusammengefasst, während bei den teilenden Verfahren größere Gruppen schrittweise immer feiner unterteilt werden. Die bei der hierarchischen Clusterung entstehende Baumstruktur wird in der Regel mit einem Dendrogram visualisiert.
Beim anhäufenden Clustern wird zunächst jedes Objekt als ein eigener Cluster mit einem Element aufgefasst. Nun werden in jedem Schritt die jeweils einander nächsten Cluster zu einem Cluster zusammengefasst. Das Verfahren kann beendet werden, wenn alle Cluster eine bestimmte Distanz zueinander überschreiten oder wenn eine genügend kleine Zahl von Clustern ermittelt worden ist. Aus verschiedenen Methoden zur Bestimmung des Abstands zweier Cluster ergeben sich verschiedene Verfahren. Dabei muss eine Distanzfunktion <math>d</math> für den Abstand zwei einzelner Elemente gegeben sein.
Für den Abstand zweier Cluster <math>A</math> und <math>B</math> lassen sich unter Anderem folgende Abstände verwenden:
<math>\frac{d(\bar a, \bar b)}{1/|A|+1/|B|}</math>
Weitere Methoden: Density Linkage, Uniform-Kernel, Wong's Hybrid, EML, Flexible-Beta, McQuitty's Similarity Analysis, Median,
Beim k-means Algorithmus ist eine gewünschte Anzahl <math>k</math> von Clustern und eine Funktion zur Bestimmung des Mittelpunktes eines Clusters bekannt. Der Algorithmus läuft folgendermaßen ab:
Die Idee des EM Algorithmus basiert auf dem Clustern nach k-means. Grundvoraussetzung ist hier, dass alle Objekte als Vektoren der Dimension n dargestellt werden können. "n" kann beliebig gewählt werden. Weiterhin muß eine Funktion bekannt sein, nach der der Mittelwert zweier solcher Vektoren berechnet werden kann. Wie bei k-means wird zu Beginn des Clustervorgangs eine beliebige, domänenspezifische Anzahl von Clustern vorgegeben, in die die Objekte eingeteilt werden sollen. Jeder dieser Cluster hat einen Mittelpunkt: Einen Vektor der Dimension n.
Der Clusteralgorithmus selbst durchläuft zwei Schritte:
1) Estimation
Bestimme für jedes Objekt nach einer Wahrscheinlichkeitsverteilung Deiner Wahl (beliebt ist hier z.B. die Normalverteilung), mit welcher Wahrscheinlichkeit es zu jedem der Cluster gehört und speichere diese Wahrscheinlichkeiten für alle Objekte und Cluster.
2) Maximisation
Bestimme anhand der ermittelten Zuordnungswahrscheinlichkeiten die Parameter neu, die die Cluster bestimmen (z.B. die Mittelwertvektoren).
Die Iteration wird abgebrochen, wenn entweder die Änderung der Likelyhood der Daten gegeben die Cluster unter einen vorgegebenen Schwellwert sinkt, oder die ebenfalls vorgegebene maximale Anzahl von Iterationen erreicht ist.
Im Gegensatz zu k-means wird damit eine "weiche" Clusterzuordnung erreicht: Mit einer gewissen Wahrscheinlichkeit gehört jedes Objekt zu jedem Cluster. Jedes Objekt beeinflußt so die Parameter jedes Clusters entsprechend dieser Wahrscheinlichkeit. Der Erfolg des Algorithmus hängt stark von der gewählten Wahrscheinlichkeitsverteilung ab.
Literatur: A. Dempster, N. Laird, and D. Rubin. Maximum likelehood from incomplete data via the EM algorithm. Journal of the Royal Statistical Society B 39, 1977.
Zwei Exterme bei der Clusterung in Netzwerken bilden die Einteilung in [wiki:Zusammenhangskomponente] (Single Link) und in [wiki:Clique (Graphentheorie)].
Eine andere Möglichkeit unüberwachten Lernens bieten [wiki:Self-Organizing Maps].
[wiki:Künstliche Intelligenz], [wiki:Statistik], [wiki:Information-Retrieval], [wiki:Clusterkoeffizient]
