Eigenmaps PCA, ICA e Laplacian


11

Domanda

Sono molto interessato al metodo Eigenmaps Laplaciano. Attualmente lo sto usando per ridurre le dimensioni dei miei set di dati medici.

Tuttavia, ho riscontrato un problema utilizzando il metodo.

Ad esempio, ho alcuni dati (segnali spettri) e posso usare PCA (o ICA) per ottenere alcuni PC (o IC). Il problema è come ottenere componenti con dimensioni ridotte simili dei dati originali usando LE?

Secondo il metodo delle eigenmaps lappacee, dobbiamo risolvere il problema degli autovalori generalizzati, che è

Ly=λDy

Qui è l'autovettore. Se tracciamo per esempio i primi 3 autovettori (la soluzione secondo 3 autovalori), i risultati non sono interpretabili.y

Tuttavia, quando tracciamo i primi 3 PC e i primi 3 circuiti integrati, i risultati sembrano sempre rappresentare chiaramente (visivamente) i dati originali .x

Suppongo che il motivo sia perché la matrice è definita dalla matrice del peso (matrice di adiacenza ) e i dati sono stati adattati con il kernel di calore per creare , che utilizza una funzione esponenziale. La mia domanda è: come recuperare i componenti ridotti di (non l'autovettore della matrice )?LWxWxyL


Dati

Il mio set di dati è limitato e non è facile dimostrare il problema. Qui ho creato un problema con i giocattoli per mostrare cosa intendevo e cosa volevo chiedere.

Si prega di vedere l'immagine,

In primo luogo, creo alcune onde sinusoidali A, B, C mostrate in curve rosse (prima colonna della figura). A, B e C hanno 1000 campioni, in altre parole, salvati in vettori 1x1000.

In secondo luogo, ho mescolato le fonti A, B, C usando combinazioni lineari create casualmente, ad es. , in cui sono valori casuali. Il segnale misto è in uno spazio dimensionale molto elevato, ad es. , 1517 è uno spazio tridimensionale scelto casualmente. Mostro solo le prime tre file del segnale M in curve verdi (seconda colonna della figura).M=r1A+r2B+r3Cr1,r2,r3MMR1517×1000

Successivamente, eseguo PCA, ICA e eigenmaps Laplacian per ottenere i risultati della riduzione dimensionale. Ho scelto di usare 3 PC, 3 IC e 3 LE per fare un confronto equo (le curve blu mostrate rispettivamente come 3a, 4a e ultima colonna della figura).

Dai risultati di PCA e ICA (terza, quarta colonna della figura), possiamo vedere che possiamo interpretare i risultati come una riduzione della dimensione, cioè, per i risultati ICA, possiamo recuperare il segnale misto di (Non sono sicuro che possiamo ottenere anche con risultati PCA ma il risultato mi sembra giusto).M=b1IC1+b2IC2+b3IC3M=a1PC1+a2PC2+a3PC3

Tuttavia, per favore guarda i risultati di LE, riesco a malapena a interpretare i risultati (ultima colonna della figura). Sembra qualcosa di "sbagliato" con i componenti ridotti. Inoltre, voglio menzionare che alla fine la trama dell'ultima colonna è l'autovettore nella formulayLy=λDy

La gente ha più idee?

La Figura 1 che utilizza 12 vicini più vicini e sigma nel kernel di riscaldamento è 0,5: Colonne da sinistra a destra: segnale originale, segnale misto, PC, CI, LE

La Figura 2 che utilizza 1000 vicini più vicini e sigma nel kernel di riscaldamento è 0,5: Colonne da sinistra a destra: segnale originale, segnale misto, PC, CI, LE

Sourcecode: codice Matlab con pacchetto richiesto


2
Cosa intendi con componenti ridotti di x? Intendi dire un incorporamento a bassa dimensione di x?
ascoltate il

Sembra interessante. Potresti dare una descrizione più dettagliata di che aspetto hanno i tuoi dati?
Placidia,

Risposte:


4

La risposta alla tua domanda è data dalla mappatura in fondo a pagina 6 dell'originale Laplaciano Eigenmaps carta :

xi(f1(i),,fm(i))

Ad esempio, l'incorporamento di un punto in, diciamo, i primi 2 "componenti" è dato da dove e sono gli autovettori corrispondenti ai due autovalori non zero più piccoli dal problema degli autovalori generalizzati .x5(f1(5),f2(5))f1f2Lf=λDf

Si noti che, diversamente dalla PCA, non è semplice ottenere un incorporamento fuori campione. In altre parole, è possibile ottenere l'incorporamento di un punto che era già stato considerato durante il calcolo di , ma non (facilmente) se si tratta di un nuovo punto. Se sei interessato a fare quest'ultimo, consulta questo documento .L


Sono un po 'confuso su ciò che stai considerando come variabili. Da quanto ho capito, la tua matrice composta da 1517 campioni da uno spazio di 1000 dimensioni. Quando esegui PCA (o ICA) su questa matrice, sei in grado di recuperare abbastanza bene le modalità di variazione sottostanti: ad esempio, nella colonna 3 nelle tue figure, la riga 1,2,3 corrisponde alle basi C, A, B rispettivamente. Questo ha senso. Tuttavia, nel codice, quando si esegue LEM, si chiama la funzione su ( ), che non è coerente con quanto sopra. MMTmixedSignal'
Shantanu,

Quindi, per prima cosa, nella matrice , quali sono le variabili e quali sono le tue osservazioni? In secondo luogo, dalla tua analisi sembra che non stai solo cercando l'incorporamento di usando LEM, ma anche l'equivalente degli autovettori come in PCA, giusto? Non puoi fare questo LEM, almeno non facilmente. Leggi questo documento per capire il perché. MM
Shantanu,

Se tutto ciò che stai cercando è l'incorporamento, questo è facilmente fornito dalla mappatura . Cerca la mia risposta per i dettagli. Nel tuo codice, cambia la riga 47 e usa invece la sua trasposizione; il risultato ti darà quindi l'incorporamento tridimensionale dei tuoi 1517 punti. xi(f1(i),,fm(i))mixedSignalmappedX
Shantanu,

PS: Sopra, intendevo "Non puoi farlo usando LEM, almeno non facilmente".
Shantanu,


1

A differenza della PCA, le autovapi lappocardiche usano gli autovettori generalizzati corrispondenti agli autovalori più piccoli. Salta il vettore eigen con il valore di eigen più piccolo (potrebbe essere zero) e utilizza i vettori di eigen corrispondenti ai successivi pochi valori di eigen più piccoli. PCA è una varianza massima che preserva l'incorporamento usando la matrice kernel / gram. L'automappa lapaciana si pone più come un problema di minimizzazione rispetto al laplacian grafico combinatorio (fare riferimento a articoli di Trosset).


Chiunque sia interessato, per favore, dai di nuovo un'occhiata alla mia domanda. Ho messo alcuni esempi. Grazie mille.
Samo Jerom,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.