Clustering

Einführung in Clustering

Erläuterungen zum Clustering und seinen Anwendungsmöglichkeiten

Clustering oder Clusteranalyse ist eine Methode des nicht überwachten Lernens, die beim Machine Learning und bei der Datenanalyse eingesetzt wird und die Daten so organisiert, dass Datenpunkte in derselben Gruppe (Cluster) einander ähnlicher sind als denen in anderen Gruppen. Das Clustering trägt dazu bei, große und komplexe Datensätze sinnvoll zu nutzen, indem Muster und Trends aufgedeckt oder Vorhersagen für nicht gekennzeichnete Daten gemacht werden.

Die Funktionsweise beim Clustering

Das Clustering umfasst mehrere wichtige Schritte, darunter die Datenaufbereitung, die Definition eines Ähnlichkeitsmaßes, die Auswahl des richtigen Clustering-Algorithmus sowie die Evaluierung und Optimierung von Clustern.

Workflow-Diagramm mit den Clustering-Schritten: Datenaufbereitung, Definition des Ähnlichkeitsmaßes, Auswahl des Clustering-Algorithmus und Evaluierung von Clustern.

Die wichtigsten Schritte beim Clustering

Beim Clustering wird die Ähnlichkeit zwischen Datenpunkten gemessen und es werden jene Punkte gruppiert, die ein höheres Maß an Ähnlichkeit aufweisen als Daten in anderen Clustern. Das Konzept der „Ähnlichkeit“ variiert je nach Kontext und Daten und ist ein grundlegender Aspekt des nicht überwachten Lernens. Es können verschiedene Ähnlichkeitsmaße verwendet werden, z. B. euklidischer, probabilistischer, Kosinusabstand und Korrelation.

Das Clustering-Ergebnis wird in zwei Dimensionen angezeigt, wobei die Cluster durch unterschiedliche Farben dargestellt werden.

Streudiagramm der Daten, die mit der Funktion spectralcluster zu drei Clustern zusammengefasst wurden. (Siehe MATLAB Programmcode.)

Arten von Clustering-Algorithmen

Clustering-Algorithmen lassen sich dabei in zwei große Gruppen einteilen:

  • Hard Clustering: Wenn jeder Datenpunkt nur zu einem Cluster gehört, wie bei der beliebten k-means-Methode
  • Soft Clustering: Wenn jeder Datenpunkt zu mehr als einem Cluster gehören kann, wie z. B. bei Gaußschen Mischmodellen
Die <i>k</i>-means-Clusteranalyse zeigt diskrete Cluster von Datenpunkten mit einem Stern, der den Schwerpunkt darstellt.

k-means clustering, bei dem die Gruppen durch ihren Schwerpunkt – den Durchschnitt der einzelnen Mitglieder – dargestellt werden, der durch die Sterne abgebildet wird.

Das Gaußsche Mischmodell zeigt zwei Cluster von Datenpunkten mit isobaren Linien, die die Wahrscheinlichkeit der Cluster-Zugehörigkeit darstellen.

Ein Gaußsches Mischmodell, das Wahrscheinlichkeiten für die Zugehörigkeit zu einem Cluster zuweist und die Stärke der Assoziation mit verschiedenen Clustern darstellt.

Es gibt mehrere Clustering-Algorithmen, und jeder davon hat einen eigenen Ansatz zur Gruppierung von Daten. Diese Methoden unterscheiden sich erheblich in ihren Mechanismen und idealen Anwendungsfällen. Die häufigsten Arten von Clustering-Algorithmen, die beim Machine Learning verwendet werden, sind:

  • Beim hierarchischen Clustering wird eine mehrstufige Hierarchie von Clustern durch die Erstellung eines Cluster-Baums aufgebaut.
  • Beimk-means Clustering werden Daten auf Grundlage des Abstands zum Schwerpunkt eines Clusters in k verschiedene Cluster unterteilt.
  • Gaußsche Mischmodelle bilden Cluster als eine Mischung multivariater Normaldichtekomponenten.
  • Das dichtebasierte räumliche Clustering (DBSCAN) gruppiert Punkte, die nahe beieinanderliegen, in Bereichen mit hoher Dichte und behält Ausreißer in Regionen mit geringer Dichte im Auge. Es kann beliebige nicht konvexe Formen verarbeiten.
  • Selbstorganisierende Karten verwenden neuronale Netze, die die Topologie und Verteilung der Daten lernen.
  • Beim spektralen Clustering werden die Eingabedaten in eine grafische Darstellung umgewandelt, in der die Cluster besser voneinander getrennt sind als im ursprünglichen Merkmalsraum. Die Anzahl der Cluster kann durch Untersuchung der Eigenwerte des Graphen geschätzt werden.
  • Versteckte Markov-Modelle können zur Entdeckung von Mustern in Sequenzen, wie z. B. Genen und Proteinen in der Bioinformatik, verwendet werden.
  • Fuzzy c-means (FCM) gruppiert Daten in N Cluster, wobei jeder Datenpunkt des Datensatzes zu einem bestimmten Grad zu jedem Cluster gehört.

Clustering für nicht überwachtes Lernen

Das nicht überwachte Lernen ist ein Machine-Learning-Algorithmus, der verwendet wird, um ohne menschliches Zutun Rückschlüsse aus unbeschrifteten Daten zu ziehen. Das Clustering ist dabei die am weitesten verbreitete Methode zum nicht überwachten Lernen. Hierbei werden Clustering-Algorithmen eingesetzt, um Daten zu untersuchen und verborgene Muster oder Gruppierungen in den Daten zu finden, ohne dass die Gruppenbezeichnungen vorher bekannt sind. Mithilfe dieser Gruppen und Muster lassen sich durch Clustering wertvolle Erkenntnisse aus unbeschrifteten Daten gewinnen und die ihnen innewohnenden Strukturen aufdecken.

Das Originalfoto zeigt einen hellbraunen Hund auf einem schwarz-weiß gefliesten Boden. Durch Clustering trennt das bearbeitete Bild den Hund vom Boden.

Verwendung von Clustering zur Bildsegmentierung, um den gemusterten Hintergrund auf dem Fußboden zu separieren.

Die Bedeutung des Clustering

Clustering spielt eine Schlüsselrolle im Bereich der Künstlichen Intelligenz. In verschiedenen Bereichen leistet sie einen wichtigen Beitrag, indem sie wertvolle Einblicke in die Daten bietet und Muster und Beziehungen aufdeckt, die nicht sofort offensichtlich sind. Bei unbeschrifteten Daten, bei denen die eigentliche Beziehung zwischen den Datenpunkten nicht erkennbar, aber dennoch erforderlich ist, um nützliche Erkenntnisse zu gewinnen, hilft das Clustering bei der Aufdeckung dieser Verbindungen und der Einteilung der unbeschrifteten Daten in sinnvolle Gruppen.

Durch die Gruppierung ähnlicher Elemente reduziert das Clustering die Komplexität der Daten, sodass man sich vielmehr auf das Verhalten der Gruppen konzentrieren kann und nicht von einzelnen Datenpunkten überfordert wird. Auf diese Weise kann das Clustering für die explorative Datenanalyse und das halbüberwachte Lernen verwendet werden. Bei Letzterem wird das Clustering als Vorverarbeitungsschritt vor dem überwachten Lernen verwendet, um die von einem Machine-Learning-Modell zu verarbeitende Datenmenge zu reduzieren und die prädiktive Modellierung zu verbessern.

Clustering wird auch häufig in Anwendungen wie der Anomalieerkennung, Bildsegmentierung und Mustererkennung eingesetzt. Genauer gesagt kann Clustering in folgenden Bereichen angewendet werden, um Muster und Sequenzen zu erkennen:

  • Cluster können die Daten anstelle des Rohsignals in Datenkomprimierungsverfahren darstellen.
  • Cluster kennzeichnen Bildregionen und LiDAR-Punktwolken in Segmentierungsalgorithmen.
  • Clustering dient der Identifizierung von Ausreißern oder Anomalien innerhalb eines Datensatzes.
  • In der medizinischen Bildgebung können Clustering-Algorithmen verwendet werden, um Bilder in relevante Regionen aufzuteilen, z. B. zur Unterscheidung zwischen gesundem Gewebe und Tumoren oder zur Segmentierung des Gehirns in weiße Substanz, graue Substanz und Liquor cerebrospinalis.
  • In geografischen Informationssystemen (GIS) wird das Clustering zur Analyse von Satellitenbildern oder Luftaufnahmen verwendet, um die Zersiedelung oder Flächennutzungsmuster zu ermitteln oder um Veränderungen in urbanen Gebieten im Laufe der Zeit zu überwachen.
  • Das genetische Clustering und die Sequenzanalyse werden in der Bioinformatik eingesetzt.
Originalbild des mit Hämatoxylin und Eosin in Violett-Tönen gefärbten Gewebes und verarbeitetes Bild des in drei Klassen segmentierten Gewebes.

Links: Originalbild eines mit Hämatoxylin und Eosin gefärbten Gewebes. Rechts: MATLAB wies dem Bild drei Cluster zu, die eine Segmentierung des Gewebes in drei Klassen ermöglichten.

Clustering mit MATLAB

Mit MATLAB® und der Statistics and Machine Learning Toolbox™ können Sie Muster und Merkmale identifizieren, indem Sie Clustering-Methoden Ihrer Wahl anwenden und Ihre Daten in Gruppen oder Cluster unterteilen. Mithilfe der Image Processing Toolbox™ können Sie ein Clustering für Bilddaten durchführen.

Datenaufbereitung

Um genaue und effiziente Clustering-Ergebnisse zu erzielen, ist es unerlässlich, die Daten vorzuverarbeiten und fehlende Werte und Ausreißer zu behandeln. Sie können die Daten bereinigen und vorverarbeiten, indem Sie die integrierten Funktionen programmatisch oder interaktiv mithilfe der Data Cleaner-App verwenden.

Clustering-Algorithmen

MATLAB unterstützt alle gängigen Clustering-Algorithmen, die Sie mit integrierten Funktionen wie der kmeans-Funktion anwenden können. Sie können den Live Editor Task Cluster Data verwenden, um interaktiv k-means und hierarchisches Clustering durchzuführen. Mithilfe des Task können Sie automatisch MATLAB Programmcode für Ihr Live-Skript generieren.

In Simulink lässt sich mit dem Block KNN Search auch ein Clustering mit den nächsten Nachbarn durchführen. Der Block akzeptiert einen Abfragepunkt und liefert die k nächsten Punkte in den Beobachtungsdaten mithilfe eines Suchobjekts für die nächsten Nachbarn.

Ein 2D-Diagramm, das die Messungen der Blütenblattbreite und -länge für drei Irisarten zeigt, und ein Diagramm, das die drei sich ergebenden Cluster mithilfe des GMM-Clusters darstellt.

Links: MATLAB-Streudiagramm von Blütenblattmessungen mehrerer Exemplare von drei Irisarten. Rechts: Die Blütenblattmessungen wurden mithilfe des Gaußschen Mischmodells (GMM) in drei Cluster unterteilt. (Siehe das Beispiel für Statistik und Machine Learning.)

Visualisierung und Auswertung von Clustering-Ergebnissen

Wenn die Daten keine natürlichen Unterteilungen enthalten, die auf eine angemessene Anzahl von Clustern hindeuten, können Sie verschiedene Bewertungskriterien wie beispielsweise Lücke oder Silhouette verwenden, um festzustellen, wie genau die Daten in eine bestimmte Anzahl von Clustern passen. Sie können die Cluster auch visualisieren, um die Clustering-Ergebnisse zu überprüfen. So können Sie beispielsweise ein Dendrogramm zur Visualisierung von Clustern verwenden.

Alle Punkte in den beiden Clustern weisen hohe Silhouettenwerte auf (0,8 oder mehr), was bedeutet, dass die Cluster klar voneinander getrennt sind.

Ein mit der Funktion silhouette erstelltes MATLAB-Diagramm, das zeigt, dass die Daten in zwei gleich große Cluster aufgeteilt sind. (Siehe MATLAB Programmcode.)

Clustering für Bilder

Sie können eine Bildsegmentierung (mit der Funktion imsegkmeans) und eine Volumensegmentierung (mit der Funktion imsegkmeans3) an Bildern durchführen, indem Sie Pixelregionen anhand von Ähnlichkeiten in Farbe oder Form clustern. Sie können ein segmentiertes, beschriftetes Bild mithilfe eines bestimmten Clustering-Algorithmus erstellen. In der medizinischen Bildgebung lassen sich beispielsweise Pixel in einem Bild oder Voxel eines 3D-Volumens erkennen und beschriften, die einen Tumor im Gehirn eines Patienten oder in anderen Organen darstellen. Durch den Einsatz von MATLAB-Tools haben Sie die Möglichkeit, Bilder für eine Vielzahl von Anwendungen zu verarbeiten und zu analysieren – von der Diagnose von Erkrankungen bis zur Klassifizierung der Flächennutzung.

Vier Schwarz-Weiß-Bilder: das Testbild, das segmentierte Bild, die Tumorerkennung und das beschriftete Bild.

Erkennung von Hirntumoren auf MR-Bildern mithilfe von Fuzzy c-means Clustering in MATLAB. (Siehe Beispiel der Fuzzy Logic Toolbox.)