Visualisierung hochdimensionaler Daten

11

Ich habe Stichproben von zwei Klassen, die Vektoren im hochdimensionalen Raum sind, und ich möchte sie in 2D oder 3D darstellen.

Ich kenne mich mit Techniken zur Reduzierung der Dimensionalität aus, aber ich brauche ein wirklich einfaches und benutzerfreundliches Tool (in Matlab, Python oder einer vorgefertigten EXE-Datei).

Ich frage mich auch, ob die Darstellung in 2D "sinnvoll" sein wird. (Zum Beispiel, wie sich zwei Klassen schneiden oder trennbar sein können).

mrgloom
quelle

Antworten:

8

Sie könnten tSNE ausprobieren. Es ist ziemlich einfach zu bedienen. Es funktioniert mit Octave zusätzlich zu Matlab und Python. Schauen Sie sich den Leitfaden an, um innerhalb einer Minute eine erste Handlung zu erhalten.

jpmuc
quelle
10

Ein vorgefertigtes Tool zur Visualisierung hochdimensionaler Daten ist ggobi . Sie können die Punkte einfärben, um Gruppen darzustellen, und haben dann einige Optionen, um die hohen Dimensionen auf eine zweidimensionale Darstellung zu reduzieren. Ein besonders schönes Werkzeug ist die 2D-Grand-Tour, bei der die Datenwolke im Wesentlichen in mehreren Dimensionen gedreht wird und eine Animation der 2D-Projektion der Drehung angezeigt wird. Sie können die Drehung verlangsamen oder anhalten, wenn Sie interessante Muster sehen.

Greg Snow
quelle
Ein sehr gutes Werkzeug, das auch mit R.
Yves
2

Der klassische Ansatz wäre die Verwendung von PCA ( Principal Component Analysis ), um eine lineare Dimensionsreduktion durchzuführen. Im Wesentlichen projiziert dies Ihre Daten auf einen Raum mit niedrigeren Dimensionen (im 2D-Fall ist dies einfach eine Ebene), wobei die Varianz der Daten so weit wie möglich erhalten bleibt.

Das Ausführen von PCA umfasst normalerweise das Ausführen eines einzelnen Befehls in den meisten Programmiersprachen, daher ist dies sehr einfach.

Sie sollten sich daran erinnern, dass Ihre Daten möglicherweise nicht in zwei oder drei Dimensionen genau dargestellt werden können. PCA gibt Ihnen automatisch eine quantitative Schätzung: Es gibt an, wie viel Prozent der Varianz von der resultierenden niedrigdimensionalen Darstellung erfasst werden. Dies gibt Ihnen ein Gefühl dafür, wie viele Informationen Sie verlieren, wenn Sie sich diese vereinfachte Visualisierung ansehen.

Bitweise
quelle
1

Die Wahrscheinlichkeit einer Klassenmitgliedschaft ist eine großartige Methode zur Reduzierung der Dimension. Die Wahrscheinlichkeit einer Mitgliedschaft in A gegen B liegt zwischen 0 und 1. Sie können eine grafische Darstellung derp(EIN|xich) vs. p(B.|xich) für alle Ihre Proben.

Betrachten Sie das folgende Beispiel für Anzeigeoptionen. http://www.mathworks.com/help/stats/gmdistribution.cluster.html

EngrStudent - Monica wieder einsetzen
quelle
1

Neben dem Vorschlag von @ juampa sollten Sie auch NeRV (Neighbor Retrieval Visualizer) ausprobieren , einen "prinzipiellen Ansatz zum Abrufen von Informationen zur nichtlinearen Dimensionsreduktion ", und SNE / t-SNE kann als Sonderfall von NeRV angesehen werden. Der Hauptpunkt von NeRV besteht darin, einen Kompromiss zwischen Rückruf und Präzision zwischen dem ursprünglichen Raum und der Anzeige zu minimieren . NeRV wird als in C ++ geschriebenes Befehlszeilentool bereitgestellt.

Ein Demobild von ihrer Website: Das linke Ergebnis betont mehr den Rückruf (weniger "Fehlschläge"), während das rechte mehr die Präzision (weniger "falsche Nachbarn") betont.

Geben Sie hier die Bildbeschreibung ein

Ziyuang
quelle
1

Wenn Sie keine Einwände gegen kommerzielle Software haben, können Sie die Software VisuMap ausprobieren, die Dutzende linearer und nichtlinearer Mapping-Algorithmen für hochdimensionale Daten implementiert, einschließlich Methoden wie PCA, LDA, SMACOF, tSNE, CCA, Sammon, Kohonen Map usw.

James LI
quelle