2012-04-07 8 views
5

Ich habe Tausende von Datenpunkten und jeder Datenpunkt hat 50 Dimensionen. Ich würde gerne die Spärlichkeit der Daten mit Java sehen. Gibt es irgendwelche Java-Pakete/Methoden, um solche hochdimensionalen Daten zu plotten?Zeichnen von hochdimensionalen Daten in Java

+0

Unabhängig von der Sprache, wie erwarten Sie, dass Sie 50-dimensionale Daten visualisieren möchten? –

+2

Wie viele Dimensionen können Sie gleichzeitig wahrnehmen? –

+0

Ich möchte in 2-D sehen, ja, aber was ich frage ist, gibt es irgendwelche Werkzeuge, die Dimensionsreduktion tun können und es in 2D plotten, so dass ich die Beziehung zwischen verschiedenen Datenpunkten sehen kann. – thetna

Antwort

1

Was Sie suchen müssen, ist multidimensional scaling. Es verringert im Wesentlichen die Dimensionalität des Datenraums und versucht, die Abstände beizubehalten.

Sie nehmen also ein MDS-Paket, reduzieren Sie Ihre Daten auf 2D (oder 3D) und zeichnen Sie sie mit 2D/3D-Grafik-Bibliothek (Swing, Jogl).

Es funktioniert oder nicht, abhängig von der Anzahl der Datenpunkte und den Raum, in dem sie sich befinden. Für 50 Dimensionen können Sie Pech haben, aber es kommt darauf an.

Eine schnelle Google für Java-Implementierung hat mich this

in R ein Paket Es gibt zu, so dass Sie das verwenden können.

+0

Ich möchte diese Punkte plotten und sehen, wie sie zusammenhängen. Welche Datenpunkte sind verwandt und welche Datenpunkte sind nicht ähnlich. Wenn nicht ähnlich, wie weit sind sie. – thetna

+0

das ist genau was mds tut. Es nimmt Ihre Punkte und reduziert die Dimensionalität, so dass Sie sie mit jeder Grafikbibliothek Ihrer Wahl plotten können. – soulcheck

+0

ich meine, Punkte im 2D-Raum zu haben, können Sie sie sogar mit Swing plotten – soulcheck