Dimensionalitätsreduktionstechnik zur Maximierung der Trennung bekannter Cluster?


8

Nehmen wir also an, ich habe eine Reihe von Datenpunkten in R ^ n, wobei n ziemlich groß ist (wie 50). Ich weiß, dass diese Daten in drei Cluster unterteilt sind und ich weiß, zu welchem ​​Cluster jeder Datenpunkt gehört. Alles, was ich tun möchte, ist, diese Cluster in 2D so zu visualisieren, dass die visuelle Trennung zwischen Clustern, die ich sehe, maximiert wird, mit dem Ziel zu beweisen, dass die Cluster basierend auf der Position des Datenpunkts in R leicht trennbar sind ^ n allein.

Die Art und Weise, wie ich dies bisher gemacht habe, besteht darin, eine PCA-Transformation für die Datenpunkte durchzuführen und dann zufällig PC-Paare zu visualisieren, bis ich einen finde, bei dem die Cluster ziemlich sauber getrennt zu sein scheinen. Dieser Ansatz scheint jedoch ziemlich ad hoc zu sein, und es scheint eine einfache Möglichkeit zu geben, eine Rotation der Daten im PCA-Stil zu finden, die anstelle der Maximierung der Gesamtvarianz die Trennung zwischen den Clustern maximiert.

Gibt es eine Standardtechnik, die dies tut? Wenn nicht, irgendwelche Ideen, wie man eine solche Transformation schafft?


Sie könnten an Projection Pursuit interessiert sein . (Verfügbar in der GGobi- Software.)
chl

Antworten:


6

"Eine Rotation der Daten im PCA-Stil, die anstelle der Maximierung der Gesamtvarianz die Trennung zwischen den Clustern maximiert." Die Diskriminanzanalyse ist genau eine solche Technik. Eine Hauptkomponente maximiert die Varianz entlang. Eine Diskriminanzfunktion maximiert das Verhältnis zwischen Cluster-Varianz / Pool-innerhalb-Cluster-Varianz.


Die Diskriminanzanalyse wird nicht kanonisch als etwas dargestellt, das eine 2D-Einbettung der Daten ergibt. Welche 2D-Einbettung schlagen Sie vor, um beispielsweise aus Fisher's LDA zu extrahieren?
eric_kernfeld

@eric_kernfeld, man zeichnet die Daten leicht im Raum der Diskriminanzfunktionen. Es ist auch einfach, die Funktionen als zusätzliche Achsen innerhalb des Raums der ursprünglichen Variablen anzuzeigen, wie hier und hier gezeigt .
ttnphns

8

Mir fallen zwei Methoden ein, an denen Sie interessiert sein könnten. Die erste nutzt bekannte Cluster und wird von Goldberger et al . Als " Analyse von Nachbarschaftskomponenten" bezeichnet .

EIN::R.nR.2

NCA zum Datensatz für Wein, Gesichter und Ziffern

EIN::R.nR.2R.2

Für letztere gibt es Matlab-Code, den Sie unter dem angegebenen Link finden. Hier ist eine Visualisierung des MNIST-Datensatzes:

tSNE auf MNIST


3

Vielleicht möchten Sie sich dieses Papier ansehen:

G. Sanguinetti, Dimensionsreduktion von Clustered-Datensätzen, IEEE Trans. Musteranalyse und Maschinenintelligenz (PAMI) 30 (3), 535-540 (2008) (www)

Ich habe einige Demonstrationen davon gesehen, die eine unbeaufsichtigte Version der linearen Diskriminanzanalyse beschreiben, und es scheint ein sehr nützliches Werkzeug zu sein, das in einer Toolbox enthalten ist.

Wenn Sie bereits wissen, zu welchen Klassen jede Stichprobe gehört, dann möchten Sie (wie ttnphns vorschlägt) eine lineare Diskriminanzanalyse. Andrew Webbs Buch über statistische Mustererkennung ist ein gutes Nachschlagewerk für diese Art von Dingen.


0

Der Artikel "Ein einheitlicher Ansatz für PCA, PLS, MLR und CCA" (von M. Borga et al.) Enthält eine kompakte Beschreibung verschiedener Arten linearer Projektionsmethoden, einschließlich PCA und LDA.


0

Partial Least Squares machen, was Sie wollen. Die "pls" -Bibliothek in R ist das, was ich traditionell verwendet habe. Hier ist ein Beispiel, das 3 Gruppen mit 50 Punkten erstellt, diese zu einem Datenrahmen mit Gruppenbeschriftungen zusammenfügt und PLS darauf ausführt:

library(MASS)
library(pls)

pts1 = mvrnorm(50,c(3,0,3),diag(c(1,1,1)))
pts2 = mvrnorm(50,c(-3,0,3),diag(c(1,1,1)))
pts3 = mvrnorm(50,c(3,3,-3),diag(c(1,1,1)))
pts = as.data.frame(rbind(pts1,pts2,pts3))

pts$labels = c(rep(1,50),rep(2,50),rep(3,50))

plsresult = plsr(labels~.,ncomp=2,data=pts)
plot(plsresult$scores,col=pts$labels)

Warum nicht in diesem Fall die PLS-Diskriminanzanalyse verwenden?
Chl
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.