Cosa può indurre PCA a peggiorare i risultati di un classificatore?


27

Ho un classificatore su cui sto eseguendo la convalida incrociata, insieme a un centinaio di funzionalità su cui sto facendo la selezione in avanti per trovare combinazioni ottimali di funzionalità. Inoltre paragone questo con l'esecuzione degli stessi esperimenti con PCA, in cui prendo le potenziali funzionalità, applico SVD, trasformo i segnali originali nel nuovo spazio di coordinate e utilizzo le principali funzioni nel mio processo di selezione diretta.k

La mia intuizione era che PCA avrebbe migliorato i risultati, in quanto i segnali sarebbero stati più "informativi" rispetto alle caratteristiche originali. La mia ingenua comprensione del PCA mi sta mettendo nei guai? Qualcuno può suggerire alcuni dei motivi comuni per cui PCA può migliorare i risultati in alcune situazioni, ma peggiorarli in altre?


La tua domanda può essere riassunta in questo modo? "Cosa c'è di meglio - costruire classificatori basati sulle variabili originali o su alcuni componenti principali estratti da quelli?"
ttnphns,

1
Vorrei dire di più sulla falsariga di "Esistono situazioni in cui è meglio usare le variabili originali rispetto ad alcuni componenti principali estratti da quelli?"
Dolan Antenucci,

1
Esistono molte tecniche di classificazione. Se per esempio prendo un'analisi discriminante, ti consiglio di leggere questo post (incluso il mio commento lì).
ttnphns,

1
Cosa intendi con "risultati di un classificatore"? Se la proporzione è classificata correttamente, si tratta di una regola di punteggio impropria discontinua, ovvero un punteggio di precisione ottimizzato da un modello fasullo. Per iniziare, suggerirei di utilizzare una regola di punteggio di precisione adeguata.
Frank Harrell,

1
Un po 'in ritardo per la festa, ma: la prima cosa che ricontrollerei è che i risultati della convalida della selezione diretta siano stati effettivamente ottenuti con casi indipendenti. Altrimenti, probabilmente saresti soggetto a un grande pregiudizio ottimistico.
cbeleites supporta Monica il

Risposte:


29

Si consideri un caso semplice, tratto da un articolo formidabile e sottovalutato "Una nota sull'uso dei componenti principali nella regressione" .

Supponiamo di avere solo due funzioni (ridimensionate e sottratte), denotale e x 2 con correlazione positiva uguale a 0,5, allineata in X e una terza variabile di risposta Y che desideri classificare. Supponiamo che la classificazione di Y sia completamente determinata dal segno di x 1 - x 2 .x1x2XYYx1x2

L'esecuzione di PCA su comporta le nuove funzionalità (ordinate per varianza) [ x 1 + x 2 , x 1 - x 2 ] , poiché Var ( x 1 + x 2 ) = 1 + 1 + 2 ρ > Var ( x 1 - x 2 ) = 2 - 2 ρX[x1+x2,x1x2]Var(x1+x2)=1+1+2ρ>Var(x1x2)=22ρ. Pertanto, se riduci la tua dimensione a 1, ovvero il primo componente principale, stai gettando via la soluzione esatta alla tua classificazione!

Il problema si verifica perché PCA è agnostico per . Sfortunatamente, non si può nemmeno includere Y nel PCA poiché ciò comporterà la perdita di dati.YY


La perdita di dati si verifica quando la matrice viene costruita utilizzando i predittori di destinazione in questione, quindi qualsiasi previsione fuori campione sarà impossibile.X

Ad esempio: nelle serie temporali finanziarie, tentare di prevedere la chiusura europea di fine giornata, che si verifica alle 11:00 EST, utilizzando la chiusura americana di fine giornata, alle 16:00 EST, è una perdita di dati dalla chiusura americana , che si verificano ore dopo, hanno incorporato i prezzi delle chiusure europee.


2
che cos'è la "perdita di dati"?
user603

@Wayne costoso troppo haha
Cam.Davidson.Pilon

(-1) per causare confusione: (1) PCA non è supervisionato, quindi non includerà mai Y nella claculazione della trasformazione. La corrispondente tecnica supervisionata è PLS, che utilizza sia X che Y. (2) La perdita di dati (come in: test con dati statisticamente dipendenti) non segue di per sé l'utilizzo di un metodo supervisionato. Al contrario: accadrà con PCA esattamente come con PLS se non si obbedisce alla regola che dalla prima fase di analisi che utilizza più di un caso (ad esempio centratura, ridimensionamento, proiezione PCA / PLS) su tutti i calcoli devono deve essere eseguito solo sui dati di allenamento (ovvero è necessario che ...
cbeleites supporta Monica il

... ricalcolato per ciascuno dei modelli surrogati. I risultati di questi calcoli possono quindi essere applicati ai dati del test, ovvero sottrarre il centro ottenuto dai dati di allenamento, ruotare mediante la rotazione ottenuta da PCA sui casi di addestramento, ecc.
cbeleites supporta Monica il

Per quanto riguarda l'esempio: le serie temporali sono particolarmente difficili, poiché ciò che costituisce un caso indipendente dipenderà molto dall'applicazione. Vedi ad esempio stats.stackexchange.com/questions/76376/…
cbeleites supporta Monica il

23

C'è una semplice spiegazione geometrica. Prova il seguente esempio in R e ricorda che il primo componente principale massimizza la varianza.

library(ggplot2)

n <- 400
z <- matrix(rnorm(n * 2), nrow = n, ncol = 2)
y <- sample(c(-1,1), size = n, replace = TRUE)

# PCA helps
df.good <- data.frame(
    y = as.factor(y), 
    x = z + tcrossprod(y, c(10, 0))
)
qplot(x.1, x.2, data = df.good, color = y) + coord_equal()

# PCA hurts
df.bad <- data.frame(
    y = as.factor(y), 
    x = z %*% diag(c(10, 1), 2, 2) + tcrossprod(y, c(0, 8))
)
qplot(x.1, x.2, data = df.bad, color = y) + coord_equal()

Aiuti PCA PCA aiuta

La direzione della varianza massima è orizzontale e le classi sono separate orizzontalmente.

PCA fa male PCA fa male

La direzione della varianza massima è orizzontale, ma le classi sono separate verticalmente


... e nell'esempio 2, l'analogo supervisionato, PLS sarebbe effettivamente di aiuto.
cbeleites supporta Monica il


3

Vedo che la domanda ha già una risposta accettata, ma volevo condividere questo documento che parla dell'utilizzo di PCA per la trasformazione delle funzionalità prima della classificazione .

Il messaggio da portare a casa (che viene visualizzato magnificamente nella risposta di @ vqv) è:

L'analisi dei componenti principali (PCA) si basa sull'estrazione degli assi su cui i dati mostrano la massima variabilità. Sebbene la PCA “diffonda” 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 di classificazione (supervisionato).

Per coloro che sono interessati, se si guarda alla Sezione 4. Risultati sperimentali , confrontano le accuratezze della classificazione con 1) i featuers originali, 2) PCA ha trasformato le funzionalità e 3) la combinazione di entrambi, che era qualcosa di nuovo per me.

La mia conclusione:

Le trasformazioni di funzionalità basate su PCA consentono di sintetizzare le informazioni da un gran numero di funzionalità in un numero limitato di componenti, ovvero combinazioni lineari delle caratteristiche originali. Tuttavia, i componenti principali sono spesso difficili da interpretare (non intuitivi) e poiché i risultati empirici in questo documento indicano che di solito non migliorano le prestazioni di classificazione.

PS: Noto che uno dei limiti del documento che avrebbe potuto essere elencato era il fatto che gli autori limitavano la valutazione delle prestazioni dei classificatori solo alla "competenza", che può essere un indicatore di prestazioni molto distorto.


3

X1,X2,X3yX3=y

yX3

X1X2X3y

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.