Clustering-Algorithmen

Sehen wir uns kurz verschiedene Arten von Clustering-Algorithmen an und wann Sie jeden Typ auswählen sollten.

Bei der Auswahl eines Clustering-Algorithmus sollten Sie überlegen, ob der Algorithmus auf Ihr Dataset skaliert werden soll. Datasets im maschinellen Lernen können Millionen von Beispielen enthalten, aber nicht alle Clustering-Algorithmen werden effizient skaliert. Viele Clustering-Algorithmen berechnen die Ähnlichkeit zwischen allen Beispielpaaren. Dies bedeutet, dass ihre Laufzeit mit dem Quadrat der Anzahl von Beispielen \(n\)ansteigt, die als \(O(n^2)\) Komplexitätsnotation bezeichnet wird. \(O(n^2)\) Algorithmen sind nicht praktikabel, wenn die Anzahl der Beispiele in Millionen ist. In diesem Kurs konzentrieren wir uns auf den k-Means-Algorithmus, der \(O(n)\)so konzipiert ist, dass er linear mit \(n\)skaliert.

Clustering-Typen

Es gibt mehrere Ansätze für das Clustering. Eine umfassende Liste finden Sie unter Eine umfassende Umfrage zu Clustering-Algorithmen. Xu, D. Tian, Y. Ann. Daten Sci. (2015) 2: 165. Jeder Ansatz eignet sich am besten für eine bestimmte Datenverteilung. Im Folgenden werden vier gängige Ansätze erläutert, bei denen der Schwerpunkt auf dem Schwerpunkt auf Schwerpunkten liegt und mit k-Means gearbeitet wird.

Centroid-basiertes Clustering

Beim Schwerpunkt-Clustering werden die Daten im Gegensatz zu den unten definierten Clustern in nicht hierarchische Cluster gruppiert. k-means ist der am häufigsten verwendete Schwerpunkt-Schwerpunkt-Clustering-Algorithmus. Centroid-basierte Algorithmen sind effizient, reagieren jedoch empfindlich auf Anfangsbedingungen und Ausreißer. In diesem Kurs konzentrieren wir uns auf den k-Means-Algorithmus, da dieser ein effizienter, effektiver und einfacher Clustering-Algorithmus ist.

Beispiele, die mithilfe von Schwerpunktclustern in Clustern gruppiert werden.
           Die Linien zeigen Grenzen zwischen Clustern an.
Abbildung 1: Beispiel für clusterbasiertes Clustering

Dichtebasiertes Clustering

Dichtebasiertes Clustering verbindet Bereiche mit hoher Beispieldichte zu Clustern. Das ermöglicht beliebig verteilte Verteilungen, solange dichte Bereiche verbunden werden können. Diese Algorithmen haben Schwierigkeiten mit Daten mit unterschiedlicher Dichte und hohen Abmessungen. Außerdem weisen diese Algorithmen den Clustern standardmäßig keine Ausreißer zu.

Beispiele, die mithilfe von dichtebasiertem Clustering in zwei Cluster gruppiert werden. Die Cluster sind nicht linear getrennt.
Abbildung 2: Beispiel für ein dichtebasiertes Clustering

Verteilungsbasiertes Clustering

Bei diesem Clustering-Ansatz wird davon ausgegangen, dass Daten aus Distributionen wie Gaußschen Distributionen bestehen. In Abbildung 3 werden die Daten vom Algorithmus auf drei Gaußsche Verteilungen verteilt. Mit zunehmender Entfernung vom Mittelpunkt der Verteilung verringert sich die Wahrscheinlichkeit, dass ein Punkt zur Verteilung gehört. Die Bänder zeigen diese Verringerung der Wahrscheinlichkeit. Wenn Sie die Art der Datenverteilung nicht kennen, sollten Sie einen anderen Algorithmus verwenden.

Beispiele für clusterbasiertes Clustering. Die Schattierung der Beispiele in jedem Cluster zeigt, wie die Cluster den Verteilungen zugeordnet werden.
Abbildung 3: Beispiel für verteilungsbasiertes Clustering.

Hierarchisches Clustering

Beim hierarchischen Clustering wird eine Baumstruktur erstellt. Das hierarchische Clustering eignet sich überraschend für hierarchische Daten wie Taxonomien. Ein Beispiel finden Sie unter Vergleich der 61 sequenzierten Escherichia coli Genomes von Oksana Lukjancenko, Trudy Wassenaar und Dave Ussery. Ein weiterer Vorteil besteht darin, dass eine beliebige Anzahl von Clustern durch Ausschneiden des Baums auf der richtigen Ebene ausgewählt werden kann.

Tiere, die mithilfe einer hierarchischen Baumstruktur geclustert wurden.
Abbildung 4: Beispiel für eine hierarchische Anordnung von Tieren.