2013-08-13 5 views
5

Ich möchte die Dimensionalität reduzieren, so dass die zurückgegebenen Dimensionen kreisförmig sind.Circular Dimensionality Reduction?

ex) Wenn ich 12d Daten zu 2d, normalisiert zwischen 0 und 1, dann möchte ich (0,0) als gleich (.1, .1) als (.9, .9).

Was ist mein Algorithmus? (Bonuspunkte für Python-Implementierung)

PCA gibt mir 2D-Ebene von Daten, während ich sphärische Oberfläche von Daten möchte.

Sinn machen? Einfach? Inhärente Probleme? Vielen Dank.

+4

Sie könnten eine selbstorganisierende Karte mit einer Kugel- oder Torus-Topologie verwenden. – Niki

Antwort

0

Ich denke, was Sie fragen, dreht sich alles um Transformation.

Circular

Ich will (0,0) als gleich in der Nähe sein (0,1, 0,1) als (0,9, 0,9).

PCA

Ihr Konzept der Normalisierung nehmen, was Sie tun können, ist zu die Werte im Intervall-Karte von [0.5, 1] zu [0.5, 0]

MDS

Wenn Sie ein verwenden möchten Distanzmetrik, könnten Sie zuerst die Entfernungen berechnen und dann dasselbe tun. Nehmen wir zum Beispiel die Korrelation, könnten Sie 1-abs(corr) tun. Da die Korrelation zwischen [-1, 1] liegt, ergeben positive und negative Korrelationen Werte nahe Null, während nicht korrelierte Daten Werte nahe eins ergeben. Nachdem Sie die Entfernungen berechnet haben, verwenden Sie MDS, um Ihre Projektion zu erhalten.

Raum

PCA gibt mir 2d Ebene von Daten, während ich kugelförmige Oberfläche von Daten wollen.

Da Sie eine sphärische Oberfläche möchten, können Sie direkt die 2-d-Ebene auf eine Kugel verwandeln, wie ich glaube. Eine spherical coordinate system mit einer konstanten Z würde das tun, oder?

Eine andere Frage ist dann: Ist das alles vernünftig?