W ramach pracy na uniwersytecie muszę przeprowadzić wstępne przetwarzanie danych na dość dużym, wielowymiarowym (> 10) surowym zbiorze danych. Nie jestem statystykiem w żadnym znaczeniu tego słowa, więc jestem trochę zdezorientowany, co się dzieje. Z góry przepraszam za to, co jest prawdopodobnie śmiesznie prostym pytaniem - moja głowa wiruje po spojrzeniu na różne odpowiedzi i próbie przebrnięcia przez statystyki.
Przeczytałem to:
- PCA pozwala mi zmniejszyć wymiarowość moich danych
- Odbywa się to poprzez łączenie / usuwanie atrybutów / wymiarów, które są bardzo skorelowane (a zatem są trochę niepotrzebne)
- Czyni to, znajdując wektory własne w danych kowariancji (dzięki fajnemu samouczkowi, którego się nauczyłem)
Który jest świetny.
Jednak naprawdę trudno mi zobaczyć, jak mogę to zastosować praktycznie do moich danych. Na przykład ( nie jest to zestaw danych, którego będę używał, ale próba przyzwoitego przykładu, z którym ludzie mogą pracować), gdybym miał zestaw danych z czymś takim jak ...
PersonID Sex Age Range Hours Studied Hours Spent on TV Test Score Coursework Score
1 1 2 5 7 60 75
2 1 3 8 2 70 85
3 2 2 6 6 50 77
... ... ... ... ... ... ...
Nie jestem pewien, jak interpretowałbym jakiekolwiek wyniki.
Większość samouczków, które widziałem online, daje mi bardzo matematyczny obraz PCA. Przeprowadziłem kilka badań i podążałem za nimi - ale wciąż nie jestem do końca pewien, co to oznacza dla mnie, który po prostu próbuje wydobyć jakieś znaczenie z tego zbioru danych, które mam przed sobą.
Po prostu wykonanie PCA na moich danych (przy użyciu pakietu statystyk) wyrzuca macierz liczb NxN (gdzie N jest liczbą oryginalnych wymiarów), która jest dla mnie całkowicie grecka.
Jak mogę zrobić PCA i wziąć to, co otrzymam, w sposób, który mogę następnie wyrazić prostym językiem angielskim pod względem oryginalnych wymiarów?
Odpowiedzi:
Strony 13–20 zamieszczonego przez ciebie samouczka zawierają bardzo intuicyjne geometryczne wyjaśnienie, w jaki sposób PCA służy do zmniejszania wymiarów.
Wspomniana macierz 13x13 jest prawdopodobnie macierzą „ładowania” lub „rotacji” (domyślam się, że twoje oryginalne dane miały 13 zmiennych?), Które można interpretować na jeden z dwóch (równoważnych) sposobów:
(Wartości bezwzględne) kolumn macierzy ładowania opisują, w jakim stopniu każda zmienna proporcjonalnie „przyczynia się” do każdego komponentu.
Macierz rotacji obraca dane na podstawie określonej przez macierz rotacji. Jeśli więc masz dane 2D i pomnożysz dane przez macierz obrotu, nowa oś X będzie pierwszym głównym składnikiem, a nowa oś Y będzie drugim głównym składnikiem.
EDYCJA: To pytanie jest często zadawane, więc przedstawię szczegółowe wizualne wyjaśnienie tego, co się dzieje, gdy używamy PCA do redukcji wymiarów.
Rozważ próbkę 50 punktów wygenerowanych z y = x + szum. Pierwszy główny składnik będzie leżał wzdłuż linii y = x, a drugi składnik będzie leżał wzdłuż linii y = -x, jak pokazano poniżej.
Współczynnik proporcji trochę to popsuł, ale uwierz mi na słowo, że komponenty są ortogonalne. Zastosowanie PCA spowoduje obrót naszych danych, dzięki czemu komponenty staną się osiami xiy:
Dane przed transformacją są okręgami, dane po nich są krzyżami. W tym konkretnym przykładzie dane nie zostały obrócone tak bardzo, jak zostały odwrócone wzdłuż linii y = -2x, ale moglibyśmy równie łatwo odwrócić oś y, aby zrobić to naprawdę obrót bez utraty ogólności, jak opisano tutaj .
Większość wariancji, tj. Informacji w danych, rozłożona jest wzdłuż pierwszego głównego składnika (który jest reprezentowany przez oś x po przekształceniu danych). Druga część (obecnie oś y) ma niewielką wariancję, ale możemy ją całkowicie upuścić bez znaczącej utraty informacji . Aby więc zwinąć to z dwóch wymiarów do 1, pozwalamy rzutowaniu danych na pierwszy główny składnik całkowicie opisywać nasze dane.
Możemy częściowo odzyskać nasze oryginalne dane, obracając je (ok, rzutując) z powrotem na oryginalne osie.
Ciemnoniebieskie punkty to „odzyskane” dane, natomiast puste punkty to dane oryginalne. Jak widać, straciliśmy część informacji z oryginalnych danych, w szczególności wariancję w kierunku drugiego głównego komponentu. Ale dla wielu celów ten skompresowany opis (wykorzystujący rzut wzdłuż pierwszego głównego komponentu) może odpowiadać naszym potrzebom.
Oto kod, którego użyłem do wygenerowania tego przykładu na wypadek, gdybyś chciał go sam odtworzyć. Jeśli zmniejszysz wariancję komponentu szumu w drugiej linii, ilość danych utraconych przez transformację PCA również się zmniejszy, ponieważ dane zbiegną się w pierwszy główny komponent:
źródło
prcomp
gdzie macierz ładunków jest tylko macierzą, której kolumny są wektorami wektorowymi. Myślę, że jesteś niepotrzebnie techniczny, aw większości przypadków uważam, że te terminy są używane zamiennie.Powiedziałbym, że twoje pytanie jest kwalifikowanym pytaniem nie tylko w,
cross validated
ale także wstack overflow
, w którym dowiesz się, jak zaimplementować redukcję wymiarów w R (... itd.), Aby skutecznie pomóc Ci zidentyfikować, która kolumna / zmienna przyczynia się lepiej do wariancji cały zestaw danych.PCA (Principal Component Analysis) ma taką samą funkcjonalność jak SVD (Singular Value Decomposition) i są w rzeczywistości dokładnie tym samym procesem po zastosowaniu
scale
/ transformacji z do zestawu danych.Oto niektóre zasoby, z którymi możesz przejść w ciągu pół godziny, aby lepiej zrozumieć.
Nie jestem w stanie podać jaskrawego rozwiązania do kodowania, które pomogłoby ci zrozumieć, jak wdrożyć svd i co robi każdy składnik, ale ludzie są niesamowici, oto kilka bardzo pouczających postów, których użyłem, aby nadrobić zaległości w aplikacji SVD, nawet jeśli umie ręcznie obliczyć problem SVD 3by3 .. :)
źródło
W PCA chcesz opisać dane w mniejszej liczbie zmiennych. Możesz uzyskać te same informacje w mniejszej liczbie zmiennych niż we wszystkich zmiennych. Na przykład godziny studiowane i wynik testu mogą być skorelowane i nie musimy uwzględniać obu tych wartości.
W twoim przykładzie powiedzmy, że Twoim celem jest zmierzenie, jak „dobry” jest uczeń / osoba. Patrząc na wszystkie te zmienne, może być mylące, aby zobaczyć, jak to zrobić. PCA pozwala nam wyraźnie zobaczyć, którzy studenci są dobrzy / źli.
Jeśli pierwszy główny składnik wyjaśnia większość odmian danych, to wszystko, czego potrzebujemy. Znalazłbyś korelację między tym składnikiem a wszystkimi zmiennymi. „Duże” korelacje oznaczają ważne zmienne. Na przykład pierwszy składnik może być silnie skorelowany z badanymi godzinami i wynikiem testu. Tak wysokie wartości pierwszego składnika wskazują na wysokie wartości czasu badania i wyniku testu.
źródło