Korzystanie z analizy głównych składników (PCA) do wyboru funkcji

54

Jestem nowy w wyborze funkcji i zastanawiałem się, w jaki sposób użyjesz PCA do przeprowadzenia wyboru funkcji. Czy PCA oblicza względny wynik dla każdej zmiennej wejściowej, której można użyć do odfiltrowania nieinformacyjnych zmiennych wejściowych? Zasadniczo chcę móc zamówić oryginalne funkcje w danych według wariancji lub ilości zawartych informacji.

Michael
źródło

Odpowiedzi:

75

Podstawową ideą przy użyciu PCA jako narzędzia do wyboru cech jest wybór zmiennych zgodnie z wielkością (od największej do najmniejszej wartości bezwzględnej) ich współczynników ( ładunków ). Możesz sobie przypomnieć, że PCA dąży do zastąpienia zmiennych (mniej lub bardziej skorelowanych) przez nieskorelowanych kombinacji liniowych (rzutów) zmiennych pierwotnych. Zignorujmy, jak wybrać optymalną wartość dla danego problemu. Te głównych składników są uszeregowane według ważności według ich wyjaśnionej wariancji, a każda zmienna przyczynia się w różnym stopniu do każdego składnika. Zastosowanie kryteriów największej wariancji byłoby podobne do ekstrakcji funkcjik < p k k j < p j ppk<pkk , w których główny składnik są używane jako nowe funkcje zamiast oryginalnych zmiennych. Możemy jednak zdecydować, aby zachować tylko pierwszy składnik i wybrać zmienne , które mają najwyższy współczynnik bezwzględny; liczba może być oparta na proporcji liczby zmiennych (np. zachowaj tylko górne 10% zmiennych ) lub stałej wartości granicznej (np. biorąc pod uwagę próg znormalizowanych współczynników). To podejście jest trochę podobne do operatora Lasso w regresji karnej (lub regresji PLS ). Jednak ani wartość , ani liczba komponentów do zachowania nie są oczywistymi wyborami.jot<pjotpjot

Problem z użyciem PCA polega na tym, że (1) pomiary ze wszystkich pierwotnych zmiennych są stosowane w rzutowaniu do przestrzeni o niższych wymiarach, (2) brane są pod uwagę tylko zależności liniowe oraz (3) metody oparte na PCA lub SVD, jak również jako metody przesiewowe jednowymiarowe (test t, korelacja itp.) nie biorą pod uwagę potencjalnej wielowymiarowej natury struktury danych (np. interakcji wyższego rzędu między zmiennymi).

W odniesieniu do punktu 1 zaproponowano kilka bardziej skomplikowanych metod przesiewowych, na przykład analizę głównych cech lub metodę etapową, taką jak ta stosowana do „ golenia genów ” w badaniach nad ekspresją genów. Również rzadkie PCA może być użyte do przeprowadzenia redukcji wymiarów i wyboru zmiennych na podstawie uzyskanych obciążeń zmiennych. Jeśli chodzi o punkt 2, można zastosować jądro PCA (używając sztuczki jądra ), jeśli trzeba osadzić relacje nieliniowe w przestrzeni o niższych wymiarach. Drzewa decyzyjne , a ściślej algorytm losowego lasu , są prawdopodobnie w stanie lepiej rozwiązać punkt 3. Ten ostatni pozwala uzyskać miary o różnym znaczeniu oparte na Gini lub permutacji .

Ostatni punkt: jeśli zamierzasz dokonać wyboru funkcji przed zastosowaniem modelu klasyfikacji lub regresji, pamiętaj o wzajemnym sprawdzeniu poprawności całego procesu (patrz §7.10.2 elementów uczenia statystycznego lub Ambroise i McLachlan, 2002 ).


Ponieważ wydaje się, że interesuje Cię rozwiązanie R, polecam przyjrzeć się pakietowi Caret , który zawiera wiele przydatnych funkcji do wstępnego przetwarzania danych i wyboru zmiennych w kontekście klasyfikacji lub regresji.

chl
źródło
1
Jest tu wiele dobrych informacji, ale jestem zaskoczony, że nie ma wzmianki o EFA. Uważam, że analiza czynnikowa jest odpowiednia do wyboru cech / redukcji wymiarów, a PCA jest tak naprawdę odpowiednia tylko do ponownego reprezentowania danych, tak że zmienne są nieskorelowane. Chyba się nie zgadzasz?
Gung - Przywróć Monikę
3
np
Jest to z pewnością trudny, dopracowany problem. Ponieważ wiesz o tym znacznie więcej niż ja, zainteresowałem się twoją opinią. +1, btw.
Gung - Przywróć Monikę
2
Dwa komentarze. Po pierwsze, wspominasz kPCA jako jedno z możliwych rozwiązań w punkcie 2. Ale jak można użyć kPCA do wyboru cech, gdy wektory własne / ładunki nie są tam dostępne? Jest dodatkowe pytanie na ten temat i argumentowałem tam, że nie może . Po drugie, twój akapit przed ostatnim akapitem może znacznie się poprawić, jeśli wspomniałeś LASSO, jako preferowany (?) Sposób wyboru funkcji w regresji. Wątek ten jest bardzo popularny i wiele pytań jest zamkniętych, ponieważ są duplikatami, dlatego ważne jest, aby Twoja odpowiedź była jak najlepsza!
ameba mówi Przywróć Monikę
@chl, dziękuję za twoją pouczającą odpowiedź. Mówisz o „zdecyduj się zachować tylko pierwszy składnik”. Dlaczego tylko pierwszy składnik? Za pomocą jednego komponentu łatwo jest uszeregować cechy / zmienne. Jak zrobiłbyś to z wieloma komponentami, powiedzmy 3? Jak uszeregować zmienne między komponentami? Przypuszczam, że można przejść przez każdy główny składnik i wybrać funkcję o największym obciążeniu z tego głównego składnika, z zestawu funkcji, które nie zostały jeszcze wybrane. Można je ponownie wybrać według liczby (j) lub progu znormalizowanych współczynników. Czy sie zgadzasz?
Sother
6

Biorąc pod uwagę zestaw N cech, analiza PCA da (1) liniową kombinację cech o największej wariancji (pierwszy komponent PCA), (2) kombinację liniową o największej wariancji w podprzestrzeni prostopadłej do pierwszego komponentu PCA itp. (pod warunkiem, że współczynniki kombinacji tworzą wektor z normą jednostkową) To, czy kombinacja liniowa z maksymalną wariancją jest „dobrą” cechą, naprawdę zależy od tego, co próbujesz przewidzieć. Z tego powodu powiedziałbym, że bycie komponentem PCA i bycie „dobrymi” cechami to (ogólnie) dwa niezwiązane ze sobą pojęcia.

mepuzza
źródło
(-1) Nie rozumiem, w jaki sposób odpowiada to oryginalne pytanie.
ameba mówi Przywróć Monikę
-1

Nie można zamówić funkcji według ich wariancji, ponieważ wariancja stosowana w PCA jest w zasadzie wielowymiarową jednostką. Możesz zamówić elementy tylko poprzez rzutowanie wariancji na określony kierunek (który zwykle jest pierwszym głównym komputonem). Innymi słowy, to, czy cecha ma większą wariancję niż inny, zależy od tego, jak wybierzesz kierunek projekcji.

James LI
źródło
2
Nie rozumiem: każda oryginalna cecha ma pewną wariancję, więc na pewno można „zamówić cechy według ich wariancji”. Co więcej, nie rozumiem, jak można je uporządkować „przez rzutowanie wariancji na określony kierunek”. Co przez to rozumiesz?
ameba mówi Przywróć Monikę
Rzeczywiście można użyć wariancji do zamawiania funkcji, tylko że ma to coś wspólnego z PCA, która traktuje wszystkie funkcje razem.
James LI,
O rzutowaniu: Jeśli masz n obiektów, wektor kierunku jest tylko wektorem jednostkowym w przestrzeni n-wymiarowej; rzut wektorów m instancji jest iloczynem skali wektora instancji z tym wektorem jednostkowym, co daje wektor amwymiarowy. A wariancja tego wektora m-wymiarowego polega na tym „rzutowaniu” wariancji zestawu danych na wybrany kierunek.
James LI,
1
-1. Myślę, że każde z trzech zdań w twojej odpowiedzi jest albo błędne, albo tak niejasne, że wprowadza w błąd. Zgadzam się ze wszystkim, co napisałeś w komentarzach, ale nie mam pojęcia, jak twoja odpowiedź może być interpretowana w ten sposób. „Nie można zamówić funkcji według ich wariancji” - ?? „Funkcje można zamawiać tylko poprzez projekcję wariancji w określonym kierunku” - ?? „czy funkcja ma większą wariancję ... zależy ...” - ?? Wszystko to jest złe.
ameba mówi Przywróć Monikę
2
Nie wiedziałem, że to pytanie zostało zadane tak dawno temu; i zgadzam się z większością tych odpowiedzi. Chodzi mi o to: PCA nie jest odpowiedni do wyboru funkcji. Po prostu nikt tutaj nie chce powiedzieć tego bezpośrednio.
James LI