2013-04-27 10 views

Odpowiedz

23

PCA to sposób na sprawdzenie, które funkcje są ważne dla najlepszego opisu wariancji w zbiorze danych. Jest to najczęściej używane do zmniejszania wymiarów dużego zestawu danych, tak że praktyczne staje się zastosowanie uczenia maszynowego, w którym oryginalne dane są z natury wysokiej rozdzielczości (na przykład rozpoznawanie obrazu).

PCA ma jednak ograniczenia, ponieważ opiera się na liniowych zależnościach między elementami elementów i często nie jest jasne, jakie są relacje przed rozpoczęciem. Ponieważ również "ukrywa" elementy cech, które w niewielkim stopniu wpływają na wariancję danych, może czasami wyeliminować niewielkie, ale znaczące wyróżniki, które mogłyby wpłynąć na wydajność modelu uczenia maszynowego.

+1

Myślę, że kluczową kwestią jest to, że PCA jest techniką bez nadzoru, podczas gdy wybór cech zazwyczaj (ale nie zawsze) dotyczy nadzorowanych problemów. Za pomocą PCA można opisać zestaw danych - który może wskazywać pewne zmienne za ważne przez wysokie obciążenia absolutne na kilku komputerach - lub rzutować główne komponenty w nadzorowanym modelu, aby ułatwić działanie modelu. Generalnie jednak PCA nie jest narzędziem do selekcji cech. –

5

Możesz wybrać funkcję za pomocą PCA.

analizy składowych głównych (PCA) jest techniką

„używa prostopadły transformacji do konwersji zestawu obserwacji zmiennych ewentualnie skorelowanych do zbioru wartości nieskorelowanych zmiennych zwanych główne elementy.”

Pytanie, na które PCA pomaga nam zasadniczo odpowiedzieć, brzmi: Które z tych parametrów M wyjaśniają znaczącą ilość zmienności zawartą w zbiorze danych? PCA zasadniczo pomaga zastosować zasadę 80-20 : czy mały podzbiór parametrów (np. 20%) wyjaśnia 80% lub więcej odmiany danych?

(see here)

Ale to ma pewne wady: jest wrażliwa na skalę i daje większą wagę do danych z wyższego rzędu. normalizacja danych nie zawsze może być rozwiązaniem, jak wyjaśniono tutaj:

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

Istnieją inne sposoby wykonywania wybór cecha:

algorytm selekcji cech może być postrzegana jako kombinacji wyszukiwania technika proponowania nowych podzestawów funkcji wraz z pomiarem oceny , który ocenia różne podzestawy funkcji. Najprostszym algorytmem jest przetestowanie każdego możliwego podzestawu funkcji, który minimalizuje współczynnik błędów. Jest to wyczerpujące poszukiwanie przestrzeni i jest obliczeniowo trudny dla wszystkich, z wyjątkiem najmniejszych zestawów funkcji. Wybór metryki oceny silnie wpływa na algorytm, a to właśnie te dane szacunkowe, które pozwalają na odróżnienie trzech głównych kategorii algorytmów wyboru funkcji: wrappery, filtry i metody osadzone, są następujące: .

(see here)

W niektórych dziedzinach, ekstrakcja funkcja może sugerować konkretne cele: przy przetwarzaniu obrazu, możesz wykonać blob, krawędzi lub wykrywanie Ridge.

+0

W jaki sposób odnosi się to do wyboru funkcji za pośrednictwem PCA? PCA generuje nowe funkcje, nie od razu pomaga w wyborze funkcji z oryginalnej przestrzeni funkcji. Druga część odpowiedzi dotyczy wyboru funkcji w nadzorowanych problemach; nie jest jasne, czy OP tego szuka. PCA jest z natury bezobsługową techniką, a jedyną wzmianką o nienadzorowanym wyborze opcji, którą widzę, jest analiza podstawowych cech: http://venom.cs.utsa.edu/dmz/techrep/2007/CS-TR-2007-011 .pdf Zapytałem się, jak zaimplementować to w R na http://stackoverflow.com/q/32811659/1840471. –

1

Wystarczy dodać do odpowiedzi przez @Roger Rowland. W kontekście nadzorowanego uczenia się (klasyfikacja, regresja) lubię myśleć o PCA jako "transformatorze funkcji", a nie selektorze cech.

PCA opiera się na ekstrakcji osi, dla których dane wykazują największą zmienność. Chociaż dane te "rozchodzą się" w nowej bazie i mogą być bardzo pomocne w uczeniu się bez nadzoru, nie ma gwarancji, że nowe osie są spójne z dyskryminującymi cechami nadzorowanego problemu.

Mówiąc prościej, nie ma żadnej gwarancji, że najważniejsze komponenty główne mają najwięcej informacji, jeśli chodzi o przewidywanie zmiennej zależnej (np. Etykiety klasy).

This paper jest użytecznym źródłem. Innym powiązanym krzyżem krzyżowym jest here.

2

Wystarczy dodać do bardzo dobrych odpowiedzi powyżej. Różnica polega na tym, że PCA spróbuje zmniejszyć wymiarowość poprzez zbadanie, w jaki sposób jedna cecha danych jest wyrażana w kategoriach innych cech (zależność liniowa). Wybór funkcji zamiast tego uwzględnia cel. Zoptymalizuje twoje zmienne wejściowe pod kątem ich przydatności do przewidywania wartości docelowej. Dotyczy to jednorodnego wyboru funkcji. Wiele różnych funkcji wyboru może również zrobić coś, co można uznać za formę PCA, w tym sensie, że odrzuci niektóre funkcje na wejściu. Ale nie bierz tej analogii za daleko.