Se nel kernel PCA scelgo un kernel lineare , il risultato sarà diverso dal normale PCA lineare ? Le soluzioni sono fondamentalmente diverse o esiste qualche relazione ben definita?
Se nel kernel PCA scelgo un kernel lineare , il risultato sarà diverso dal normale PCA lineare ? Le soluzioni sono fondamentalmente diverse o esiste qualche relazione ben definita?
Risposte:
Riepilogo: kernel PCA con kernel lineare è esattamente equivalente al PCA standard.
Sia la matrice di dati centrata di dimensione con variabili in colonne e punti dati in righe. Quindi la matrice di covarianza è data da , i suoi autovettori sono assi principali e gli autovalori sono varianze PC. Allo stesso tempo, si può considerare la cosiddetta matrice Gram della dimensioneÈ facile vedere che ha gli stessi autovalori (cioè varianze di PC) fino al fattore n-1 , e i suoi autovettori sono componenti principali ridimensionati in base alla norma unitaria. N × P D N D × P X ⊤ X / ( n - 1 ) X X ⊤ N × N n - 1
Questo era un PCA standard. Ora, nel kernel PCA consideriamo alcune funzioni che mappano ogni dato puntando a un altro spazio vettoriale che di solito ha una maggiore dimensionalità , forse anche infinito. L'idea del kernel PCA è quella di eseguire il PCA standard in questo nuovo spazio.
Poiché la dimensionalità di questo nuovo spazio è molto ampia (o infinita), è difficile o impossibile calcolare una matrice di covarianza. Tuttavia, possiamo applicare il secondo approccio alla PCA delineato sopra. In effetti, la matrice Gram sarà ancora della stessa dimensione N \ volte gestibile . Gli elementi di questa matrice sono dati da , che chiameremo funzione del kernel . Questo è ciò che è noto come il trucco del kernel : in realtà non è mai necessario calcolare , ma solo . Gli autovettori di questa matrice Gram saranno i componenti principali nello spazio target, quelli a cui siamo interessati.
La risposta alla tua domanda ora diventa ovvia. Se , la matrice Gram del kernel si riduce a che è uguale alla matrice Gram standard e quindi i componenti principali non cambieranno.X X ⊤
Un riferimento molto leggibile è Scholkopf B, Smola A e Müller KR, analisi dei componenti principali del kernel, 1999 , e nota che, ad esempio, nella Figura 1 si riferiscono esplicitamente al PCA standard come quello che utilizza il prodotto dot come funzione del kernel:
Oltre alla bella risposta dell'ameba, esiste un modo ancora più semplice di vedere l'equivalenza. Ancora una volta è la matrice di dati di dimensioni N × D con variabili in colonne e punti di dati in righe. Serie PCA corrisponde alla frequenza di un valore singolare decomposizione della matrice con i componenti principali di . La decomposizione del valore singolare del kernel lineare ha gli stessi vettori singolari sinistri e quindi gli stessi componenti principali.N X = U Σ V ⊤ U X X X ⊤ = U Σ 2 U ⊤
Mi sembra che un KPCA con kernel lineare dovrebbe essere lo stesso del semplice PCA.
La matrice di covarianza da cui otterrai gli autovalori è la stessa:
Puoi controllare con maggiori dettagli qui .