2013-08-13 19 views
5

Desidero ridurre la dimensione in modo che le dimensioni restituite siano circolari.Riduzione della dimensionalità circolare?

ex) Se riduco i dati 12d a 2d, normalizzati tra 0 e 1, allora voglio che (0,0) sia altrettanto vicino a (.1, .1) come (.9, .9).

Qual è il mio algoritmo? (punti bonus per l'implementazione Python)

PCA mi dà un piano 2D di dati, mentre voglio una superficie sferica di dati.

Ha senso? Semplice? Problemi intrinseci? Grazie.

+4

È possibile utilizzare una mappa auto-organizzante con una topologia a sfera o toro. – Niki

risposta

0

Penso che quello che chiedi sia tutto sulla trasformazione.

circolare

voglio (0,0) per essere altrettanto vicino al (0,1, 0,1) come (0,9, 0,9).

PCA

Prendendo il vostro approccio di normalizzazione quello che si potrebbe fare è quello di mappa i valori nell'intervallo da [0.5, 1] a [0.5, 0]

MDS

Se si desidera utilizzare un metrica di distanza, potresti prima calcolare le distanze e poi fare lo stesso. Ad esempio, prendendo la correlazione, potresti fare 1-abs(corr). Poiché la correlazione è compresa tra [-1, 1], le correlazioni positive e negative daranno valori prossimi allo zero, mentre i dati non correlati daranno valori vicini a uno. Quindi, dopo aver calcolato le distanze, usi MDS per ottenere la tua proiezione.

Spazio

PCA mi dà piano 2D dei dati, mentre io voglio superficie sferica dei dati.

Dal momento che si vuole una sferica superficie È possibile trasformare direttamente il piano di 2-D ad una sfera come penso. A spherical coordinate system con una costante Z farebbe questo, vero?

Un'altra domanda è quindi: è tutto ciò una cosa ragionevole da fare?

Problemi correlati