Analiza składowych głównych (ang. Principle Component Analysis) jest podstawowym procesem redukcji wymiarowości w uczeniu maszynowym. Technika ta zawiera proste operacje na macierzach pochodzące ze statystyki i algebry liniowej. Powodem użycia tej metody jest obliczenie, przeanalizowanie oryginalnych danych i wygenerowanie projekcji w mniejszej liczbie wymiarów. Możesz również użyć tej techniki, aby znaleźć projekcję tej samej liczby. Ten artykuł pomoże Ci zrozumieć koncepcję Principal Component Analysis i jak przeprowadzić analizę w R i Pythonie.

Analiza składowych głównych

PCA lub Principle Component Analysis (Analiza Składowych Głównych) pomaga zmniejszyć wymiarowość dużych punktów danych do prostszych form. Ta właściwość PCA sprawia, że jest to metoda redukcji wymiarowości. Działa ona poprzez przekształcanie zmiennych w mniejsze poprzez eliminację głównych informacji z dużego zbioru.
Redukując zmienne w zbiorze danych, obniża się dokładność danych. Aby uprościć zbiór danych, musisz zaakceptować ryzyko niskiej dokładności.
Mniejsze zbiory danych pomogą Ci łatwo wizualizować i badać stan. W ten sposób algorytm uczenia maszynowego będzie analizował dane szybko i łatwo, zachowując ich istotność. W prostych słowach, PCA zredukuje zmienne i zachowa ważne informacje, aby łatwo przeanalizować dane.

Przykład analizy składowych głównych

– Przykład analizy składowych głównych w 2D

Koncepcję analizy składowych głównych można zrozumieć w dwóch wymiarach. Tymi wymiarami są wzrost i waga. Zbiór danych zostanie naniesiony na płaszczyznę jako punkty. Ale kiedy będziemy wyodrębniać różnice, PCA zidentyfikuje nowy układ współrzędnych. W tym układzie, każdy punkt będzie zawierał wartość x i y. Nie ma fizycznego znaczenia osi. Osie te są głównymi składowymi i kombinacjami wzrostu i wagi. W ten sposób, nawet pojedyncze osie będą miały wiele wariacji.

– Przykład analizy składowych głównych w 3D

Analiza Składowych Głównych staje się bardziej użyteczna, gdy ma trzy wymiary. W ten sposób można analizować dane pod różnymi kątami. Na przykład, po wykreśleniu danych w płaszczyźnie 3D, można je obejrzeć w 2D. Poprzez obracanie kąta kamery, można wizualizować dane z najlepszego punktu widzenia. Transformacja PCA zapewnia, że:
– W osi poziomej lub PC1 jest więcej wariacji.
– Na drugim miejscu pod względem ilości wariacji znajduje się oś pionowa lub PC2,
– najmniej wariacji jest na trzeciej osi lub PC3.
W ten sposób można łatwo zrezygnować z trzeciej osi. Dane w tej osi nie są tak ważne jak oś pozioma i oś pionowa na płaszczyźnie.

Analiza głównych składowych w R

Analizę składowych głównych można obliczyć w R za pomocą funkcji princomp() i prcomp(). Funkcje te pozwalają na łatwą i prostą analizę. Obie te funkcje różnią się w metodach obliczania PCA.

– Funkcja Prcomp() do obliczania PCA

Możesz wybrać tę metodę dla analizy składowych głównych w R, aby uzyskać dokładne dane liczbowe. Metoda oblicza PCA używając dekompozycji wartości pojedynczych macierzy danych. Nie będzie ona uwzględniać wartości własnej na macierzy kowariancji.

– Funkcja Princomp() do obliczania PCA

Ta metoda używa eigen na kowariancji lub macierzy korelacji. Ta metoda działa przez zgodność z wynikiem S-PLUS.
– pilots.pca<-prcomp(pilots[,2:7])
– pilots.pca
– ## Odchylenia standardowe (1, …, p=6):
– • ## [1] 41.497499 29.637102 20.035932 16.157875 11.353640 7.097781
– • ##
– ## Obrót (n x k) = (6 x 6):
– ## PC1 PC2 PC3 PC4
– ## Intelligence 0.21165160 -0.38949336 0.88819049 -0.03082062
– ## Form.Relations -0.03883125 -0.06379320 0.09571590 0.19128493
– ## Dynamometr 0.08012946 0.06602004 0.08145863 0.12854488
– ## Dotting 0.77552673 0.60795970 0.08071120 -0.08125631
– ## Sensory.Motor.Coordination -0.09593926 -0.01046493 0.01494473 -0.96813856
– ## Perservation 0.58019734 -0.68566916 -0.43426141 -0.04518327
– ## PC5 PC6
– ## Inteligencja -0.04760343 -0.10677164
– # Form.Relations -0.14793191 0.96269790
– ## Dynamometr 0.97505667 0.12379748
– ## Dotting -0.10891968 0.06295166
– ## Sensory.Motor.Coordination 0.10919120 0.20309559
– ## Perswazja 0.03644629 0.03572141
Możesz również wygenerować dane wyjściowe dotyczące proporcji wariancji za pomocą metody prcomp() podsumowującej, które składowe wyjaśniają.
– summary(pilots.pca)
– ## Znaczenie składowych:
– ## PC1 PC2 PC3 PC4 PC5 PC6
– ## Odchylenie standardowe 41.4975 29.6371 20.0359 16.15788 11.35364 7.09778
– ## Proporcja wariancji 0.5003 0.2552 0.1166 0.07585 0.03745 0.01464
– ## Proporcja skumulowana 0.5003 0.7554 0.8721 0.94792 0.98536 1.00000

Analiza głównych składowych w Pythonie

Możesz użyć biblioteki scikit-learn, aby obliczyć Principal Component Analysis zbioru danych.Takie podejście jest korzystne, ponieważ można zastosować nowe dane powtarzalnie, aby znaleźć projekcję łatwo po obliczeniu projekcji. Podczas tworzenia klasy jako parametr określisz liczbę składowych.
Klasa ta będzie pierwszym dopasowaniem zbioru danych. Użyjesz funkcji fit(), rzeczywistego lub innego zbioru danych i wybierzesz wymiar, aby znaleźć funkcję transform(). Możesz uzyskać dostęp do głównych składowych i wartości własnych w analizie głównych składowych za pomocą components_attributes i explained_variance. W poniższym przykładzie, najpierw tworzysz instancję używając klasy. Następnie, dopasowujemy dane do macierzy 3×2. To da ci dostęp do wektorów i wartości projekcji. Wreszcie, możesz przekształcić rzeczywiste dane.
– from numpy import array
– from numpy import mean
– from numpy import cov
– from numpy.linalg import eig
– # definiujemy macierz
– A = array([[4, 5], [6, 7], [8, 9]])
– print(A)
– # oblicz średnią z każdej kolumny
– M = mean(A.T, axis=1)
– print(M)
– # wyśrodkuj kolumny odejmując średnie z kolumn
– C = A – M
– print(C)
– # oblicz macierz kowariancji wyśrodkowanej macierzy
– V = cov(C.T)
– print(V)
– # eigendekompozycja macierzy kowariancji
– values, vectors = eig(V)
– print(vectors)
– print(values)
– # dane projektu
– P = vectors.T.dot(C.T)
– print(P.T)
Poprzez uruchomienie przykładowych danych na macierzy 3×2, znajdziemy główne składowe i ich wartości. Następnie znajdziemy projekcje rzeczywistej macierzy. Używając tej metody, zidentyfikujemy mniejszą zmiennoprzecinkową i osiągniemy te same składowe główne, projekcje i wartości singularne.
– • [[4 5]
– • [6 7]
– • [8 9]][6. 7.]
– • [[-2. -2.]
– • [ 0. 0.]
– • [ 2. 2.]]
– • [[4. 4.]
– • [4. 4.]]
– • [[ 0.70710678 -0.70710678]
– • [ 0.70710678 0.70710678]]
– • [8. 0.]
– • [[-2.82842712 0. ]
– • [ 0. 0. ]
– • [ 2.82842712 0. ]]

Wnioski

Możesz użyć dowolnego języka programowania, takiego jak Python, R, C++, itp., aby zakodować cały proces i znaleźć aplikacje Principal Component Analysis. Ponadto, można również wykorzystać biblioteki od różnych autorów i uruchomić dane. Jeśli złożoność problemu nie jest bardzo wysoka, powinieneś użyć techniki hard-code zamiast bibliotek. W ten sposób możesz przeanalizować back-end, aby łatwo zrozumieć problemy. Kiedy używasz analizy głównych składowych w R, możesz użyć bibliotek takich jak prcomp, princomp, HSAUR i inne. Pomaga to w bezpośrednim korzystaniu z aplikacji.