2013-04-27 6 views

risposta

23

PCA è un modo per scoprire quali caratteristiche sono importanti per descrivere al meglio la varianza in un set di dati. Viene spesso utilizzato per ridurre la dimensionalità di un set di dati di grandi dimensioni in modo che diventi più pratico applicare l'apprendimento automatico in cui i dati originali sono intrinsecamente dimensionali (ad esempio il riconoscimento dell'immagine).

Tuttavia, il PCA presenta delle limitazioni, poiché si basa su relazioni lineari tra elementi di funzionalità e spesso non è chiaro quali siano le relazioni prima di iniziare. Poiché inoltre "nasconde" gli elementi caratteristici che contribuiscono poco alla varianza dei dati, a volte può sradicare un piccolo ma significativo differenziatore che potrebbe influire sulle prestazioni di un modello di apprendimento automatico.

+1

Penso che una nota chiave qui sia che la PCA è una tecnica non supervisionata, mentre la selezione della funzione in genere (ma non sempre) si riferisce a problemi supervisionati. È possibile utilizzare PCA per descrivere un set di dati, che può rivelare alcune variabili importanti tramite elevati carichi assoluti su più PC, oppure lanciare componenti principali su un modello supervisionato per semplificare l'esecuzione del modello. In generale, tuttavia, PCA non è uno strumento di selezione delle funzionalità di per sé. –

5

È possibile eseguire la selezione delle funzioni con PCA.

analisi delle componenti principali (PCA) è una tecnica che

"utilizza una trasformazione ortogonale per convertire una serie di osservazioni di variabili possibilmente correlate in un insieme di valori di scorrelati variabili denominate componenti principali."

La domanda che PCA ci aiuta a rispondere fondamentalmente è questa: quali di questi parametri M spiegano una quantità significativa di variazione contenuta all'interno del set di dati? Il PCA aiuta essenzialmente ad applicare una regola 80-20 : un piccolo sottoinsieme di parametri (ad esempio il 20%) può spiegare l'80% o più della variazione nei dati?

(see here)

Ma ha alcuni difetti: è sensibile alla scala, e dà più peso ai dati con una maggiore ordine di grandezza. La normalizzazione dei dati non può essere sempre la soluzione, come spiegato qui:

http://www.simafore.com/blog/bid/105347/Feature-selection-with-mutual-information-Part-2-PCA-disadvantages

Ci sono altri modi per fare la selezione delle funzioni:

Un algoritmo di selezione funzione può essere visto come la combinazione di una ricerca tecnica per proporre nuovi sottoinsiemi di funzionalità, insieme a una misura di valutazione che assegna un punteggio ai diversi sottoinsiemi di funzionalità. L'algoritmo più semplice consiste nel testare ogni possibile sottoinsieme di funzionalità che trova quello che minimizza il tasso di errore. Questa è una ricerca esauriente dello spazio, , ed è computazionalmente intrattabile per tutti tranne il più piccolo set di funzionalità. La scelta della metrica di valutazione pesantemente influenza l'algoritmo ed è proprio queste metriche di valutazione che distingue tra le tre categorie principali di algoritmi di selezione delle funzioni : wrapper, filtri e metodi incorporati.

(see here)

In alcuni campi, estrazione di caratteristiche può suggerire obiettivi specifici: in elaborazione delle immagini, si consiglia di eseguire blob, il bordo o il rilevamento cresta.

+0

In che modo viene affrontata la questione della selezione delle funzionalità tramite PCA? PCA genera nuove funzionalità, non aiuta immediatamente a selezionare le funzionalità dallo spazio delle funzioni originale. La seconda parte della risposta riguarda la selezione delle funzionalità nei problemi supervisionati; non è chiaro se OP sta cercando questo. La PCA è una tecnica intrinsecamente non supervisionata e l'unica menzione alla selezione di funzionalità non supervisionate che vedo correlata ad essa è Analisi delle caratteristiche principali: http://venom.cs.utsa.edu/dmz/techrep/2007/CS-TR-2007-011 .pdf Ho chiesto come implementarlo in R su http://stackoverflow.com/q/32811659/1840471. –

1

Solo per aggiungere la risposta di @Roger Rowland. Nel contesto dell'apprendimento supervisionato (classificazione, regressione) mi piace pensare alla PCA come a un "trasformatore di funzionalità" piuttosto che a un selettore di funzionalità.

PCA si basa sull'estrazione degli assi su cui i dati mostrano la massima variabilità. Sebbene "estenda" i dati nella nuova base e possa essere di grande aiuto nell'apprendimento non supervisionato, non vi è alcuna garanzia che i nuovi assi siano coerenti con le caratteristiche discriminatorie in un problema supervisionato.

In parole semplici, non vi è alcuna garanzia che i componenti principali principali siano i più istruttivi quando si tratta di prevedere la variabile dipendente (ad esempio l'etichetta di classe).

This paper è una fonte utile. Un altro collegamento crossvalidated rilevante è here.

2

Giusto per aggiungere le ottime risposte sopra. La differenza è che PCA tenterà di ridurre la dimensionalità esplorando come una caratteristica dei dati è espressa in termini di altre caratteristiche (dipendenza lineare). La selezione della funzione, invece, prende in considerazione il bersaglio. Valuterà le tue variabili di input in termini di quanto siano utili per predire il valore target. Questo è vero per la selezione di funzionalità univariate. La selezione di funzionalità multi varia può anche fare qualcosa che può essere considerato una forma di PCA, nel senso che scarterà alcune delle caratteristiche nell'input. Ma non prendere questa analogia troppo lontano.