Clustering als Dimensionsreduktion


10

Ich lese ein Buch "Maschinelles Lernen mit Funken" von Nick Pentreath und auf Seite 224-225 diskutiert der Autor über die Verwendung von K-Mitteln als Form der Dimensionsreduktion.

Ich habe diese Art der Dimensionsreduktion noch nie gesehen. Hat sie einen Namen oder / und ist sie für bestimmte Datenformen nützlich ?

Ich zitiere das Buch, das den Algorithmus beschreibt:

Angenommen, wir gruppieren unsere hochdimensionalen Merkmalsvektoren mithilfe eines K-Mittel-Clustering-Modells mit k Clustern. Das Ergebnis ist eine Menge von k Clusterzentren.

Wir können jeden unserer ursprünglichen Datenpunkte in Bezug darauf darstellen, wie weit er von jedem dieser Clusterzentren entfernt ist. Das heißt, wir können die Entfernung eines Datenpunkts zu jedem Clusterzentrum berechnen. Das Ergebnis ist ein Satz von k Abständen für jeden Datenpunkt.

Diese k Abstände können einen neuen Vektor der Dimension k bilden. Wir können jetzt unsere Originaldaten als neuen Vektor mit niedrigerer Dimension relativ zur ursprünglichen Feature-Dimension darstellen.

Der Autor schlägt eine Gaußsche Distanz vor.

Mit 2 Clustern für zweidimensionale Daten habe ich Folgendes:

K-bedeutet:

K-Mittel mit 2 Clustern

Anwendung des Algorithmus mit Norm 2:

Norm 2

Anwenden des Algorithmus mit einem Gaußschen Abstand (Anwenden von dnorm (abs (z)):

Gauß

R-Code für die vorherigen Bilder:

set.seed(1)
N1 = 1000
N2 = 500
z1 = rnorm(N1) + 1i * rnorm(N1)
z2 = rnorm(N2, 2, 0.5) + 1i * rnorm(N2, 2, 2)
z = c(z1, z2)

cl = kmeans(cbind(Re(z), Im(z)), centers = 2)

plot(z, col = cl$cluster)

z_center = function(k, cl) {
  return(cl$centers[k,1] + 1i * cl$centers[k,2])
}

xlab = "distance to cluster center 1"
ylab = "distance to cluster center 2"

out_dist = cbind(abs(z - z_center(1, cl)), abs(z - z_center(2, cl)))
plot(out_dist, col = cl$cluster, xlab = xlab, ylab = ylab)
abline(a=0, b=1, col = "blue")

out_dist = cbind(dnorm(abs(z - z_center(1, cl))), dnorm(abs(z - z_center(2, cl))))
plot(out_dist, col = cl$cluster, xlab = xlab, ylab = ylab)
abline(a=0, b=1, col = "blue")

1
Beachten Sie, dass in Ihrem Beispiel keine Dimensionsreduzierung stattfindet, da Ihre Daten zunächst zweidimensional waren und Sie sie auf zwei neue Dimensionen abbilden (die Abstände zu jedem Ihrer beiden Cluster). Um die Dimensionalität Ihrer Daten zu verringern, müssen Sie weniger Cluster als die Anzahl der ursprünglichen Dimensionen in den Daten verwenden.
Ruben van Bergen

Ja, ich habe das alles in 2D gemacht, um das ursprüngliche Bild zeichnen zu können und allen die Umformung zu ermöglichen. In diesem Fall handelt es sich also nicht um eine Verringerung der Dimensionalität. Die Ausgabeform ist ähnlich für Daten, die in 3D und mit 2 Clustern ähnlich abgetastet wurden.
ahstat

4
Ich mag die Tatsache, dass Sie die Entfernung zu Clusterzentren betonen. Zu viele Datenanalysten diskretisieren die Daten und verlieren Informationen, indem sie Daten in "unterschiedliche" Cluster gruppieren.
Frank Harrell

Antworten:


6

Ich denke, dies ist die von Park, Jeon und Rosen beschriebene "Centroid-Methode" (oder die eng verwandte "CentroidQR" -Methode) . Aus der Zusammenfassung von Moon-Gu Jeons These :

Unsere Centroid-Methode projiziert volldimensionale Daten auf den Schwerpunktraum ihrer Klassen, was eine enorme Dimensionsreduzierung bewirkt, die Anzahl der Dimensionen auf die Anzahl der Klassen reduziert und gleichzeitig die ursprüngliche Klassenstruktur verbessert. Eine seiner interessanten Eigenschaften ist, dass selbst bei Verwendung von zwei verschiedenen Ähnlichkeitsmaßen die Ergebnisse der Klassifizierung für den gesamten und den vom Schwerpunkt gebildeten reduzierten Dimensionsraum identisch sind, wenn die Schwerpunkt-basierte Klassifizierung angewendet wird. Die zweite Methode, CentroidQR genannt, ist eine Variante unserer Centroid-Methode, die als Projektionsraum k Spalten der orthogonalen Matrix Q aus der QR-Zerlegung der Schwerpunktmatrix verwendet.

Es scheint auch der "Mehrfachgruppen" -Methode aus der Faktoranalyse zu entsprechen .


3

Lesen Sie die gesamte Literatur zur Pivot-basierten Indizierung .

Mit k-Mitteln gewinnen Sie jedoch wenig. Normalerweise können Sie nur zufällige Punkte als Drehpunkte verwenden. Wenn Sie genug wählen, werden sie nicht alle ähnlich sein.


Können Sie bitte erläutern, warum "Sie mit k-means wenig gewinnen"? Vielen Dank
Tagar

Weil die Ergebnisse nicht besser zu sein scheinen als bei zufälligen Pivots.
Hat aufgehört - Anony-Mousse

Vielen Dank! Können Sie bitte Ihre Antwort mit einem Link zur "Pivot-basierten Indizierung" aktualisieren? Ich gehe davon aus, dass dies dasselbe ist wie "Zufällige Punkte als Drehpunkte verwenden". Ich habe versucht zu googeln, bin mir aber nicht sicher, ob das, was ich bekomme, in direktem Zusammenhang mit diesem in Q.
Tagar

2

Es gibt verschiedene Möglichkeiten, Clustering als Dimensionsreduzierung zu verwenden. Für das K-Mittel können Sie die Punkte auch (orthogonal) auf den von den Zentren erzeugten Vektorraum (oder affinen Raum) projizieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.