Effiziente k-means-Auswertung mit silhouette score in sklearn

Ich bin mit k-means-clustering auf ~1 Mio Artikel (jeweils dargestellt als ~100-feature-Vektor). Ich habe das clustering für verschiedene k, und möchten nun eine Bewertung der unterschiedlichen Ergebnisse, die mit der silhouette Partitur umgesetzt sklearn. Versuch es mit keine Stichprobe scheint undurchführbar und nimmt eine unverhältnismäßig lange Zeit, also ich nehme an, ich muss an die Probenahme, d.h.:

metrics.silhouette_score(feature_matrix, cluster_labels, metric='euclidean',sample_size=???)

Ich nicht haben ein gutes Gespür dafür, was eine angemessene sampling-Ansatz ist jedoch. Gibt es eine Faustregel, welche Größe Probe zu verwenden, angesichts der Größe meiner matrix? Ist es besser, nehmen Sie die größte Probe, meine Analyse-Maschine verarbeiten kann, oder den Durchschnitt von mehr kleinere Proben?

Bitte ich, im großen Teil, weil meine erste Prüfung (mit sample_size=10000) hat einige wirklich sehr unintuitive Ergebnisse.

Ich bin auch offen für alternative, skalierbare Auswertung von Metriken.


Bearbeiten, zu visualisieren das Problem: Der plot zeigt für unterschiedliche Stichprobengrößen, die silhouette der Partitur als eine Funktion der Anzahl der Cluster Effiziente k-means-Auswertung mit silhouette score in sklearn

Was nicht komisch ist, dass die Erhöhung der Stichprobengröße scheint, um Lärm zu reduzieren. Was seltsam ist, da ich 1 Millionen, sehr heterogenen Vektoren, in denen 2 oder 3 ist der "beste" Anzahl der Cluster. In anderen Worten, was unintuitiv ist, dass ich finden würde eine mehr oder weniger monotone Abnahmen in der silhouette Partitur, wie erhöhe ich die Anzahl der Cluster.

  • Definieren unintuitive Ergebnisse, und versuchen Sie es erneut ausführen, der test mehrmals mit verschiedenen sample-Größen.
  • Ausführen von code zu generieren, eine Klärung der plot. Bearbeiten und posten so schnell wie möglich.
  • Diese silhouette erzielt werden, ziemlich gering ist. Daten mit einer starken cluster-Struktur geben Sie der silhouette erreicht souverän über 0,7 oder so. Haben Sie versucht, mit Hilfe der Gap-Statistik die Schätzung der richtigen Anzahl von Clustern? Eine andere Möglichkeit ist, dass einige der 100 features sind das hinzufügen von Rauschen und verstecken Clustern. Sie könnten versuchen, die PCA, um loszuwerden, einige der Lärm.
  • Ich habe auch ähnliches problem gestoßen. Wenn ich erhöhte die Anzahl der cluster, die silhouette score berechnet, indem sklearn.metrics.silhouette_score sank monoton, und ich will nicht herausfinden, warum das passiert ist
  • haben Sie jemals herauszufinden, was Los war mit sklearn.Metriken.silhouette_score? Ich habe das gleiche problem, der monoton abnehmenden Werten mit größeren k.
  • noch nicht, aber ich lese ein Papier diskutiert die wichtigsten internen Validierung von Kennzahlen finden Sie unter Verständnis der Internen Clustering-Überprüfung-Maßnahmen und ersetzt silhouette score mit SDbw, die gezeigt wurde, um die am meisten robuste index in diesem Papier
  • Alle Dinge gleich sind, die silhouette der Gäste wird abnehmen, wenn Sie erhöhen die Anzahl der Cluster, oder erhöhen Sie die Anzahl der Merkmale, die als Anker für das Modell. Eine andere Sache, zum im Verstand zu halten ist, genau wie die Korrelation erzielt, vom realen Leben Anwendung Sicht, was darauf hindeutet, dass 0,7 und oben sind die besten erzielt, ist nicht realistisch.

InformationsquelleAutor moustachio | 2014-05-15
Schreibe einen Kommentar