Co może spowodować pogorszenie wyników klasyfikatora przez PCA?


27

Mam klasyfikator, na którym przeprowadzam walidację krzyżową, wraz z około setką funkcji, które wybieram do przodu, aby znaleźć optymalne kombinacje funkcji. Porównuję to również z przeprowadzaniem tych samych eksperymentów z PCA, w których biorę potencjalne cechy, stosuję SVD, przekształcam oryginalne sygnały w nową przestrzeń współrzędnych i używam najlepszych funkcji w moim procesie selekcji do przodu.k

Moją intuicją było to, że PCA poprawi wyniki, ponieważ sygnały będą bardziej „informacyjne” niż oryginalne funkcje. Czy moje naiwne rozumienie PCA prowadzi mnie do kłopotów? Czy ktoś może zasugerować niektóre z najczęstszych powodów, dla których PCA może poprawić wyniki w niektórych sytuacjach, a pogorszyć je w innych?


Czy twoje pytanie można streścić w ten sposób ?: „Co jest lepsze - budować klasyfikatory w oparciu o oryginalne zmienne lub kilka głównych składników z nich wyodrębnionych?”
ttnphns

1
Powiedziałbym więcej w stylu: „Czy zdarzają się sytuacje, w których lepiej jest użyć oryginalnych zmiennych, niż kilku podstawowych składników z nich wyodrębnionych?”
Dolan Antenucci

1
Istnieje wiele technik klasyfikacji. Jeśli na przykład weźmiesz analizę dyskryminacyjną, polecam przeczytanie tego postu (w tym mojego własnego komentarza).
ttnphns

1
Co rozumiesz przez „wyniki klasyfikatora”? Jeśli jest prawidłowo sklasyfikowany proporcjonalnie, jest to nieciągła niewłaściwa reguła punktacji, tj. Wynik dokładności zoptymalizowany przez fałszywy model. Na początek sugerowałbym zastosowanie właściwej reguły punktacji dokładności.
Frank Harrell

1
Trochę za późno na imprezę, ale: pierwszą rzeczą, którą dokładnie sprawdzę, jest to, że wyniki walidacji selekcji do przodu zostały faktycznie uzyskane w niezależnych przypadkach. W przeciwnym razie prawdopodobnie spotkałbyś się z dużym optymizmem.
cbeleites obsługuje Monikę

Odpowiedzi:


29

Rozważ prosty przypadek, wzięty ze wspaniałego i niedocenianego artykułu „Uwaga na temat stosowania głównych składników w regresji” .

Załóżmy, że masz tylko dwie (skalowane i pozbawione znaczenia) cechy, oznacz je i z dodatnią korelacją równą 0,5, wyrównaną w i trzecią zmienną odpowiedzi którą chcesz sklasyfikować. Załóżmy, że klasyfikacja jest w pełni określona znakiem .x 2 X Y Y x 1 - x 2x1x2XYYx1x2

Wykonanie PCA na daje nowe (uporządkowane według wariancji) funkcje , ponieważ . Dlatego, jeśli zredukujesz swój wymiar do 1, tj. Pierwszego głównego komponentu, odrzucasz dokładne rozwiązanie swojej klasyfikacji![ x 1 + x 2 , x 1 - x 2 ] 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ρ

Problem pojawia się, ponieważ PCA jest agnostykiem do . Niestety nie można również uwzględnić w PCA, ponieważ spowoduje to wyciek danych.YYY


Wyciek danych ma miejsce, gdy twoja macierz jest konstruowana przy użyciu omawianych predyktorów docelowych, dlatego wszelkie przewidywania poza próbą będą niemożliwe.X

Na przykład: w finansowych szeregach czasowych próba przewidzenia europejskiego zamknięcia na koniec dnia, które nastąpi o 11:00 EST, przy użyciu amerykańskich zamknięć na koniec dnia, o 16:00 EST, to wyciek danych od czasu zamknięcia amerykańskiego , które nastąpiły kilka godzin później, uwzględniły ceny europejskich zamknięć.


2
co to jest „wyciek danych”?
user603 20.03.2013

@Wayne zbyt kosztowny haha
Cam.Davidson.Pilon

(-1) za spowodowanie zamieszania: (1) PCA nie jest nadzorowane, więc nigdy nie uwzględni Y w klauzuli transformacji. Odpowiednią nadzorowaną techniką jest PLS, która wykorzystuje zarówno X, jak i Y. (2) Wyciek danych (jak w przypadku: testowania z danymi zależnymi statystycznie) nie wynika per se ze stosowania nadzorowanej metody. Wręcz przeciwnie: wystąpi w przypadku PCA tak samo jak w przypadku PLS, jeśli nie zastosujesz się do zasady, że od pierwszego etapu analizy, który wykorzystuje więcej niż jeden przypadek (np. Centrowanie, skalowanie, projekcja PCA / PLS) we wszystkich obliczeniach musi należy wykonać tylko na danych treningowych (tj. trzeba być ...
cbeleites obsługuje Monikę

... przeliczone dla każdego z modeli zastępczych. Wyniki tych obliczeń można następnie zastosować do danych testowych, tj. Odjąć centrum uzyskane z danych treningowych, obrócić o obrót uzyskany przez PCA w przypadkach treningowych itp.
cbeleites obsługuje Monikę

Na przykład: szeregi czasowe są szczególnie trudne, ponieważ to, co stanowi niezależny przypadek, będzie bardzo zależeć od zastosowania. Zobacz np. Stats.stackexchange.com/questions/76376/…
cbeleites obsługuje Monikę

23

Istnieje proste geometryczne wyjaśnienie. Wypróbuj następujący przykład w R i przypomnij sobie, że pierwszy główny składnik maksymalizuje wariancję.

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()

PCA pomaga PCA pomaga

Kierunek maksymalnej wariancji jest poziomy, a klasy są rozdzielone poziomo.

PCA boli PCA boli

Kierunek maksymalnej wariancji jest poziomy, ale klasy są rozdzielone w pionie


... a w przykładzie 2 nadzorowany analogon PLS faktycznie pomógłby.
cbeleites obsługuje Monikę


3

Widzę, że pytanie ma już zaakceptowaną odpowiedź, ale chciałem udostępnić ten artykuł, który mówi o użyciu PCA do transformacji funkcji przed klasyfikacją .

Komunikat zwrotny (pięknie wizualizowany w odpowiedzi @ vqv) brzmi:

Podstawowa analiza składowa (PCA) polega na wyodrębnieniu osi, na których dane wykazują największą zmienność. Chociaż PCA „rozprowadza” dane w nowej podstawie i może być bardzo pomocne w uczeniu się bez nadzoru, nie ma gwarancji, że nowe osie są zgodne z cechami dyskryminacyjnymi (nadzorowanego) problemu klasyfikacji.

Dla zainteresowanych, jeśli spojrzysz na sekcję 4. Wyniki eksperymentalne , porównują one dokładności klasyfikacji z 1) oryginalnymi cechami, 2) cechami przekształconymi PCA i 3) kombinacją obu, co było dla mnie nowością.

Mój wniosek:

Transformacje funkcji oparte na PCA pozwalają na podsumowanie informacji z dużej liczby funkcji na ograniczoną liczbę komponentów, tj. Liniowe kombinacje oryginalnych cech. Jednak główne elementy są często trudne do interpretacji (nie intuicyjne), a ponieważ wyniki empiryczne w tym dokumencie wskazują, że zwykle nie poprawiają wyników klasyfikacji.

PS: Zwracam uwagę, że jednym z ograniczeń artykułu, który mógł zostać wymieniony, był fakt, że autorzy ograniczyli ocenę wyników klasyfikatorów tylko do „akumulacji”, co może być bardzo tendencyjnym wskaźnikiem wydajności.


3

x1,x2,x3yx3=y

yx3

x1x2x3y

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.