Riepilogo: PCA può essere eseguito prima di LDA per regolarizzare il problema ed evitare un eccesso di adattamento.
Ricordiamo che le proiezioni LDA sono calcolate tramite la composizione geografica di , dove e sono all'interno e tra le matrici di covarianza tra classi. Se ci sono meno di punti dati (dove è la dimensionalità del tuo spazio, cioè il numero di caratteristiche / variabili), allora sarà singolare e quindi non può essere invertito. In questo caso semplicemente non c'è modo di eseguire direttamente LDA, ma se si applica prima PCA, funzionerà. @Aaron ha fatto questa osservazione nei commenti alla sua risposta, e sono d'accordo con quello (ma non sono d'accordo con la sua risposta in generale, come vedrai ora).Σ−1WΣBΣWΣBNNΣW
Tuttavia, questa è solo una parte del problema. Il quadro più ampio è che LDA tende facilmente a sovrautilizzare i dati. Si noti che la matrice di covarianza all'interno della classe viene invertita nei calcoli LDA; per le matrici ad alta dimensione, l'inversione è un'operazione molto delicata che può essere eseguita in modo affidabile solo se la stima di è davvero buona. Ma in alte dimensioni , è davvero difficile ottenere una stima precisa di , e in pratica è spesso costretto ad avere molto più di punti di dati per iniziare sperando che la stima è buono. AltrimentiΣWN≫1ΣWNΣW sarà quasi singolare (ovvero alcuni degli autovalori saranno molto bassi), e ciò comporterà un eccesso di adattamento, ovvero una separazione di classe quasi perfetta sui dati di allenamento con prestazioni casuali sui dati di test.
Per affrontare questo problema, è necessario regolarizzare il problema. Un modo per farlo è utilizzare PCA per ridurre prima la dimensionalità. Ci sono altri, probabilmente migliori, ad esempio il metodo LDA (rLDA) regolarizzato che utilizza semplicemente con piccolo invece di (questo è chiamato stimatore del restringimento ), ma fare prima PCA è concettualmente l'approccio più semplice e spesso funziona bene.(1−λ)ΣW+λIλΣW
Illustrazione
Ecco un'illustrazione del problema di adattamento eccessivo. Ho generato 60 campioni per classe in 3 classi dalla distribuzione gaussiana standard (zero medio, varianza unitaria) in spazi di 10, 50, 100 e 150 dimensioni e ho applicato LDA per proiettare i dati in 2D:
Nota come cresce la dimensionalità, le classi diventano sempre più separate, mentre in realtà non c'è differenza tra le classi.
Possiamo vedere come il PCA aiuta a prevenire l'eccessivo adattamento se rendiamo le classi leggermente separate. Ho aggiunto 1 alla prima coordinata della prima classe, 2 alla prima coordinata della seconda classe e 3 alla prima coordinata della terza classe. Ora sono leggermente separati, vedi la sottotrama in alto a sinistra:
L'adattamento eccessivo (riga superiore) è ancora evidente. Ma se preprocedo i dati con PCA, mantenendo sempre 10 dimensioni (riga inferiore), il sovradimensionamento scompare mentre le classi rimangono quasi ottimamente separate.
PS. Per evitare fraintendimenti: non sto affermando che PCA + LDA sia una buona strategia di regolarizzazione (al contrario, consiglierei di usare rLDA), sto semplicemente dimostrando che si tratta di una possibile strategia.
Aggiornare. Argomento molto simile è stato precedentemente discusso nei seguenti thread con risposte interessanti e complete fornite da @cbeleites:
Vedi anche questa domanda con alcune buone risposte:
best practice
. PCA e LDA, come tecniche di riduzione della dimensionalità, sono molto diverse. A volte le persone fanno PCA prima di LDA, ma ha i suoi rischi di buttare via (con i PC scartati) importanti dimensioni discriminatorie. La domanda che poni è stata effettivamente posta in qualche forma più volte su questo sito. Cerca "PCA LDA" per leggere ciò che le persone gli hanno detto.