Können Sie verschiedene Clustering-Methoden in einem Datensatz ohne fundamentale Wahrheit durch Kreuzvalidierung vergleichen?

12

Derzeit versuche ich, einen Textdokumentdatensatz zu analysieren, der keine fundamentale Wahrheit enthält. Mir wurde gesagt, dass Sie die k-fache Kreuzvalidierung verwenden können, um verschiedene Clustering-Methoden zu vergleichen. Die Beispiele, die ich in der Vergangenheit gesehen habe, verwenden jedoch eine Grundwahrheit. Gibt es eine Möglichkeit, k-fach Mittel für diesen Datensatz zu verwenden, um meine Ergebnisse zu überprüfen?

mtber75
quelle

Antworten:

12

Die einzige mir bekannte Anwendung der Kreuzvalidierung für das Clustering ist die folgende:

  1. Teilen Sie die Probe in ein 4-teiliges Trainingsset und ein 1-teiliges Testset auf.

  2. Wenden Sie Ihre Clustering-Methode auf den Trainingssatz an.

  3. Wenden Sie es auch auf das Test-Set an.

  4. Verwenden Sie die Ergebnisse aus Schritt 2, um jede Beobachtung im Testsatz einem Trainingssatz-Cluster zuzuordnen (z. B. den nächstgelegenen Schwerpunkt für k-Mittelwerte).

  5. Zählen Sie im Testsatz für jeden Cluster aus Schritt 3 die Anzahl der Beobachtungspaare in dem Cluster, in dem sich auch jedes Paar gemäß Schritt 4 in demselben Cluster befindet (um das von @cbeleites angesprochene Problem der Clusteridentifizierung zu vermeiden). Teilen Sie durch die Anzahl der Paare in jedem Cluster, um einen Anteil zu erhalten. Der niedrigste Anteil über alle Cluster ist das Maß dafür, wie gut die Methode die Clustermitgliedschaft für neue Stichproben vorhersagt.

  6. Wiederholen Sie den Vorgang ab Schritt 1 mit verschiedenen Teilen in Trainings- und Testsets, um das Fünffache zu erzielen.

Tibshirani & Walther (2005), "Cluster Validation by Prediction Strength", Journal of Computational and Graphical Statistics , 14 , 3.

Scortchi - Wiedereinsetzung von Monica
quelle
Können Sie näher erläutern, was ein Beobachtungspaar ist (und warum wir überhaupt Beobachtungspaare verwenden)? Wie können wir außerdem definieren, was ein "gleicher Cluster" im Trainingssatz im Vergleich zum Testsatz ist? Ich habe mir den Artikel angesehen, aber keine Ahnung.
Tanguy
1
@Tanguy: Sie betrachten alle Paare - wenn die Beobachtungen A, B und C sind, sind die Paare {A, B}, {A, C} und {B, C} - und Sie versuchen nicht zu definieren " das gleiche Cluster "über Zug- und Testsätze, die unterschiedliche Beobachtungen enthalten. Sie vergleichen vielmehr die beiden Clustering-Lösungen, die auf das Test-Set angewendet wurden (eine aus dem Trainings-Set und eine aus dem Test-Set selbst), indem Sie prüfen, wie oft sie übereinstimmen, um die Mitglieder eines jeden Paares zu vereinen oder zu trennen.
Scortchi
ok, dann werden die beiden matrizen von beobachtungspaaren, eine auf dem zugset, eine auf dem testset, mit einem ähnlichkeitsmaß verglichen?
Tanguy
@Tanguy: Nein, Sie berücksichtigen nur Beobachtungspaare im Test-Set.
Scortchi
Entschuldigung, ich war nicht klar genug. Man sollte alle Beobachtungspaare des Testsatzes nehmen, aus denen eine mit 0 und 1 gefüllte Matrix aufgebaut werden kann (0, wenn Beobachtungspaare nicht im selben Cluster liegen, 1, wenn sie es tun). Es werden zwei Matrizen berechnet, da wir Beobachtungspaare für die Cluster betrachten, die aus dem Trainingssatz und aus dem Testsatz erhalten wurden. Die Ähnlichkeit dieser beiden Matrizen wird dann mit einer Metrik gemessen. Hab ich recht?
Tanguy
7

Ich versuche zu verstehen, wie Sie die Kreuzvalidierung auf Clustering-Methoden wie das k-means anwenden würden, da die neuen kommenden Daten den Schwerpunkt und sogar die Clustering-Verteilungen auf Ihrer vorhandenen ändern werden.

In Bezug auf die unbeaufsichtigte Validierung beim Clustering müssen Sie möglicherweise die Stabilität Ihrer Algorithmen mit unterschiedlichen Clusternummern für die erneut abgetasteten Daten quantifizieren.

Die Grundidee der Clusterstabilität ist in der folgenden Abbildung dargestellt:

Bildbeschreibung hier eingeben

Sie können beobachten, dass mit der Clustering-Nummer 2 oder 5 mindestens zwei unterschiedliche Clustering-Ergebnisse vorliegen (siehe die Strichlinien in den Abbildungen), aber mit der Clustering-Nummer 4 ist das Ergebnis relativ stabil.

Clusterstabilität: Ein Überblick von Ulrike von Luxburg könnte hilfreich sein.

lennon310
quelle
7

k

Zur Erleichterung der Erklärung und Klarheit würde ich das Clustering bootstrappen.

Im Allgemeinen können Sie solche neu abgetasteten Cluster verwenden, um die Stabilität Ihrer Lösung zu messen: Ändert sich diese kaum oder vollständig?

Auch wenn Sie keine fundamentale Wahrheit haben, können Sie das Clustering, das sich aus verschiedenen Läufen derselben Methode ergibt (Resampling), oder die Ergebnisse verschiedener Clustering-Algorithmen vergleichen, indem Sie beispielsweise Folgendes tabellieren:

km1 <- kmeans (iris [, 1:4], 3)
km2 <- kmeans (iris [, 1:4], 3)
table (km1$cluster, km2$cluster)

#      1  2  3
#   1 96  0  0
#   2  0  0 33
#   3  0 21  0

Da die Cluster nominal sind, kann sich ihre Reihenfolge beliebig ändern. Das bedeutet aber, dass Sie die Reihenfolge ändern dürfen, damit die Cluster übereinstimmen. Dann zählen die diagonalen * Elemente Fälle, die demselben Cluster zugewiesen sind, und die nicht diagonalen Elemente zeigen, wie sich die Zuweisungen geändert haben:

table (km1$cluster, km2$cluster)[c (1, 3, 2), ]

#      1  2  3
#   1 96  0  0
#   3  0 21  0
#   2  0  0 33

Ich würde sagen, dass das Resampling gut ist, um festzustellen, wie stabil Ihr Clustering innerhalb der einzelnen Methoden ist. Ohne das macht es nicht allzu viel Sinn, die Ergebnisse mit anderen Methoden zu vergleichen.

i,ich


Sie mischen nicht k-fach Kreuzvalidierung und k-Mittelwert-Clustering, oder?

cbeleites unterstützt Monica
quelle
0

Kürzlich wurde eine Bi-Cross-Validierungsmethode veröffentlicht, mit der die Anzahl der Cluster ermittelt werden kann .

und jemand versucht , mit Sci-Kit lernen zu implementieren hier .

Obwohl ihr Erfolg etwas begrenzt ist. Wie aus den Veröffentlichungen hervorgeht, funktioniert diese Methode nicht gut, wenn die Clusterzentren stark korreliert sind, was bei großen Clustern in niedrigdimensionalen Systemen vorkommen kann. (z.B7 Cluster in 2D funktioniert nicht gut.)

mathew gunther
quelle