Mam duży zestaw danych i chcę przeprowadzić redukcję wymiarów.
Teraz wszędzie czytam, że mogę do tego użyć PCA. Jednak nadal nie wydaje mi się, co robić po obliczeniu / wykonaniu PCA. W R można to łatwo zrobić za pomocą polecenia princomp
.
Ale co zrobić po obliczeniu PCA? Jeśli zdecydowałem, że chcę użyć pierwszych głównych składników, w jaki sposób dokładnie zredukować zestaw danych?
Odpowiedzi:
Uważam, że to, o co pytasz, dotyczy obcinania danych przy użyciu mniejszej liczby głównych komponentów (PC). Myślę, że w przypadku takich operacji funkcja ta
prcomp
jest bardziej ilustracyjna, ponieważ łatwiej jest zwizualizować mnożenie macierzy zastosowane w rekonstrukcji.Po pierwsze, podaj syntetyczny zestaw danych,
Xt
wykonujesz PCA (zazwyczaj wyśrodkowujesz próbki w celu opisania komputerów związanych z macierzą kowariancji:W wynikach lub
prcomp
możesz zobaczyć PC (res$x
), wartości własne (res$sdev
) podające informacje o wielkości każdego PC i ładunkach (res$rotation
).Kwadrat wartości własnych daje wariancję wyjaśnioną przez każdy komputer:
Wreszcie możesz utworzyć skróconą wersję swoich danych, używając tylko wiodących (ważnych) komputerów:
Widać, że wynikiem jest nieco gładsza matryca danych, z filtrowanymi funkcjami małej skali:
A oto bardzo podstawowe podejście, które możesz wykonać poza funkcją prcomp:
Teraz decyzja, które komputery zachować, to osobne pytanie - które interesowało mnie już dawno temu . Mam nadzieję, że to pomaga.
źródło
prcomp
robi to za Ciebie. Spójrz nares$center
ires$scale
. IMHO korzysta z nich mniej podatnie na błędy (brak przypadkowej różnicy w wyśrodkowaniu, nieskalowaniu lub nie między jawnym połączeniemscale
aprcomp
połączeniem).what to do after calculating the PCA
lubhow do I reduce my dataset exactly
? Biorąc pod uwagę, że OP przeprowadził PCA na swojej próbce, jego pytanie dotyczy tego, co z tym zrobić i co faktycznie dzieje się z tymi podpróbkami; nie jak zrobić PCA.E <- eigen(cov(Sample)); A<- scale(scale=F, Sample) %*% E$vectors
Równie dobrze moglibyśmy zaproponować zrobienie, aby uzyskać jeszcze jeden sposób na uzyskanie wyników (co właściwie robi Princompstats:::princomp.default
).Te inne odpowiedzi są bardzo dobre i szczegółowe, ale zastanawiam się, czy rzeczywiście zadajesz o wiele bardziej podstawowe pytanie: co robisz, gdy masz komputery?
Każdy komputer staje się po prostu nową zmienną. Powiedzmy, że PC1 stanowi 60% całkowitej odmiany, a PC2 stanowi 30%. Ponieważ stanowi to 90% całkowitej uwzględnionej zmiany, możesz po prostu wziąć te dwie nowe zmienne (PC) jako uproszczoną wersję oryginalnych zmiennych. Oznacza to dopasowanie ich do modeli, jeśli jesteś tym zainteresowany. Kiedy przychodzi czas na interpretację wyników, robisz to w kontekście oryginalnych zmiennych, które są skorelowane z każdym komputerem.
Przepraszam, jeśli nie doceniłem zakresu pytania!
źródło
Praktycznie z PCA używasz projekcji komputerów („wyników”) jako danych zastępczych dla oryginalnej próbki. Wykonujesz całą analizę wyników, a następnie rekonstruujesz oryginalną próbkę z powrotem za pomocą komputerów PC, aby dowiedzieć się, co się wydarzyło na twojej pierwotnej przestrzeni (to w zasadzie główna regresja składników ). Oczywiście, jeśli jesteś w stanie zinterpretować swoje wektory własne („ładunki”), to znajdujesz się w jeszcze lepszej sytuacji: możesz opisać, co dzieje się z twoją próbką w trybie zmienności przedstawionym przez to ładowanie, wnioskując bezpośrednio o tym ładowaniu i w ogóle nie zależy na odbudowie. :)
Ogólnie rzecz biorąc, co „po obliczeniu PCA” zależy od celu analizy. PCA zapewnia tylko liniowo niezależną podpróbkę danych, która jest optymalna według kryterium rekonstrukcji RSS. Możesz użyć go do klasyfikacji, regresji, lub obu, lub, jak wspomniałem, możesz chcieć rozpoznać znaczące ortogonalne tryby zmian w twojej próbce.
Komentarz : Myślę, że najlepszym naiwnym sposobem decydowania o liczbie składników do zachowania jest oparcie szacunku na pewnym progu zmienności próbki, który chciałbyś zachować w próbce o zmniejszonej wymiarowości, a nie tylko na pewnej dowolnej liczbie, np. 3, 100, 200. Jak wyjaśniono w user4959, można sprawdzić zmienność skumulowaną, sprawdzając odpowiednie pole listy pod
$loadings
polem w utworzonym obiekcie listyprincomp
.źródło
pls
drogą nie wspomniałem o pakiecieprincomp {stats}
). Istnieje wyraźna zaleta używania% spermy. wariancja w stosunku do jednego dowolnego numeru: znasz jakość swojej rekonstrukcji. Jeśli chcesz po prostu przyciemnić. redukcja doAfter doing the PCA then you may select the first two components and plot.. You can see the variation of the components using a scree plot in R. Also using summary function with loadings=T you can fins the variation of features with the components.
You can also look at this http://www.statmethods.net/advstats/factor.html and http://statmath.wu.ac.at/~hornik/QFS1/principal_component-vignette.pdf
Try to think what you want. You can interpret lots of things from PCA analysis.
Best Abhik
źródło