Ile wymiarów należy zmniejszyć, wykonując PCA?

13

Jak wybrać K na PCA? K to liczba wymiarów do rzutowania. Jedynym wymogiem jest, aby nie stracić zbyt dużo informacji. Rozumiem, że to zależy od danych, ale szukam prostego ogólnego przeglądu tego, jakie cechy należy wziąć pod uwagę przy wyborze K.

pr338
źródło
Zależy od dopuszczalnej utraty danych, a także od zgłoszenia problemu!
Dawny33
Zgadzam się z dwiema odpowiedziami poniżej. Czy wiesz jednak, że istnieje prosty sposób kwantyfikacji utraty informacji, tj. Użycie przekątnej SVD macierzy kowariancji?
yuqian,

Odpowiedzi:

14

Po wykonaniu algorytmu PCA otrzymujesz główne składniki posortowane według ilości przechowywanych informacji. Jeśli zachowasz cały zestaw, informacje nie zostaną utracone. Usuwając je jeden po drugim i rzutując je z powrotem na oryginalne miejsce, możesz obliczyć utratę informacji. Możesz wykreślić tę utratę informacji w stosunku do liczby usuniętych głównych składników i sprawdzić, czy stanowi ona „łokieć” tam, gdzie ma to sens. Wiele z tego zależy jednak od przypadku użycia.

Jan van der Vegt
źródło
(+1) Tak, to takie proste :)
Dawny33
3

Zwykle sprawdzam procent informacji przechowywanych przez wartość K. Powiedzmy, że z 8 pól, 2 z nich zawierają 90% informacji. Wtedy nie ma sensu włączać pozostałych 6 lub 5 pól. Jeśli znasz mnistyczne dane, z 768 danych wejściowych użyłem tylko 250, co podniosło moją dokładność z 83 do 96%. Faktem jest, że większa wymiarowość stwarza więcej problemów. Więc odetnij je. Zwykle biorę tylko K, który ma tylko 90% informacji, i to działa dla mnie.

Amanuel Negash
źródło
Cześć .. Mam podobny problem, w którym chciałbym użyć x% informacji i nie jestem pewien, jak to zrobić? Mam zamiar użyć do tego IPCA. Mogę zostawić n_components = None, ale jak mam następnie zdecydować, jakie funkcje mają x% danych?
Arsenal Fanatic