PCA w Sklearn

PCA w Sklearn
PCA (analiza głównego składnika) jest algorytmem matematycznym, który przekształca obserwacje skorelowanych zmiennych w zestaw wartości zmiennych liniowo nieskorelowanych, znane jako składniki główne. PCA jest jednym z najpopularniejszych algorytmów redukcji wymiarów. Karl Pearson (Li, 1901) wynalazł PCA w 1901 r., Definiując to jako „identyfikując linie i płaszczyzny najbliższych systemów punktów w kosmosie”.

Omówimy szczegóły PCA i jego wdrożenie za pomocą Sklearn.

Co to jest PCA?

Analiza głównych składników (PCA) to metoda redukcji danych. Kiedy masz wiele miar dla każdego przypadku, ale niektóre z nich są ze sobą skorelowane, zastosowana jest metoda. Główne elementy wykorzystują korelację w celu zmniejszenia liczby zmiennych wymaganych do odpowiednio scharakteryzowania każdej sytuacji w zależności od wyników. Ale analiza głównych składników prawdopodobnie ujawni, że pomimo dziesięciu miar mierzono tylko trzy zmienne. Częściej mają sprint, skakanie i wyrzucając trzy cechy, a nie dziesięć cech. Główne komponenty dostarczałyby współczynników dla każdego z dziesięciu wyników, wskazując, jak bardzo każdy wynik trafia do nowego biegu, skoku i wyników. Trzy złożone wyniki powiedzą również, ile uwzględniono całkowitej zmienności. Praca z trzema zmiennymi jest łatwiejsza niż praca z 10, a jeśli stanowią one większość fluktuacji, przechwyciłeś wszystkie informacje z dziesięciu wyników na trzy.

Technika staje się znacznie bardziej przydatna, gdy masz setki pomiarów. Możemy jednak napotkać jeden problem: niektóre z naszych właściwości wejściowych są połączone. W zależności od siły stowarzyszenia może to wskazywać, że uwzględniamy dodatkowe wymiary w naszych danych wejściowych, gdy moglibyśmy uzyskać tę samą ilość informacji z mniejszą. PCA zapewnia systematyczną technikę określania, które kombinacje funkcji wydają się być bardziej odpowiedzialne za wariancję danych niż inne i zapewnia pewne zalecenia dotyczące zmniejszenia liczby wymiarów w naszym wejściu. Nie oznacza to, że PCA mówi nam, które cechy nie są konieczne; Pokazuje nam raczej, jak zintegrować funkcje z mniejszą podprzestrzenią bez utraty (dużo) informacji. Tradycyjnie zmniejszenie liczby wymiarów przed przekazaniem danych w algorytmy ML było przydatne, ponieważ skraca złożoność i czas przetwarzania. Powinienem jednak zauważyć, że PCA nie jest panaceum, ale fantastycznym narzędziem, gdy działa.

Przykład 1

Rozważ przypadek zestawu danych D, który zawiera dwuwymiarowe dane wzdłuż y = x linia. Dane te są reprezentowane w dwóch wymiarach, z X I y Punkt dla każdego punktu danych. Wektor byłby zidentyfikowany jako kierunek maksymalnej wariancji za pośrednictwem PCA, a wektor ten byłby używany jako nowa osi x. Możemy teraz reprezentować zestaw danych D tylko w jednym wymiarze. W rezultacie PCA jest techniką redukcji wymiarowości skupionej na zlokalizowaniu największych wektorów wariancji.

Przykład 2

Załóżmy, że Twoje dane znajdują się w linii w dwóch wymiarach. W takim przypadku PCA szybko rozpoznaje, że twoje X i Y są powiązane i opracowują nowy ortogonalny układ współrzędnych, aby zmaksymalizować wariancję pierwszej współrzędnej. W rezultacie drugi (pierwotny) komponent nie ma zdolności predykcyjnych i prawdopodobnie możesz go usunąć z modeli bez powodowania zbyt dużej ilości uszkodzeń. Udało ci się zaprojektować dwa wymiary w jednym bez utraty wielu informacji w tej metodzie. Chociaż możesz to zrobić wizualnie w dwóch wymiarach, może być trochę trudniejsze w N wymiar.

Funkcje PCA

Przekształcanie danych w porównywalną skalę. Niektóre funkcje w zestawie danych mogą być wyjątkowo wysokie (od 1 do 100). Natomiast inne są wyjątkowo niskie (0 do 1), co powoduje, że wysokie cechy mają większy wpływ na prognozy wyjściowe niż dane o niskich cechach.

Aby zidentyfikować korelacje między wszystkimi funkcjami, oblicz kowariancję danych.

Następnie znajdź wartości własne i wektory własne kowariancji. Następnie sortuj wektory własne poprzez zmniejszenie wartości własnych i wybierz K.

Aby przekształcić próbki w nową podprzestrzeń, użyj tej macierzy wektora własnego.

Można go użyć, aby dowiedzieć się, czy istnieją jakiekolwiek korelacje między twoimi zmiennymi. Jeśli masz zmienne 3-wymiarowe i ich najlepiej dopasowana 2-wymiarowa płaszczyzna dokładnie je przechwytuje, wartości w trzecim wymiarze prawdopodobnie będą funkcją liniową pierwszych dwóch, plus lub minus trochę szumu Gaussa.

Zamiast przesyłać N-wymiarowe punkty danych, możesz użyć PCA do komunikowania współrzędnych M-Dimensional w najlepszej podprzestrzeni, jeśli chcesz przekazać dane (plus równanie podprzestrzenne). Można go również używać do kompresji danych. Jeśli dopasowanie jest idealne, nie stracisz żadnych informacji; Jeśli jest blisko, stracisz trochę.

Ponieważ wiele algorytmów uczenia maszynowego działa najlepiej, gdy każda zmienna dodaje nowe informacje, jest często używana w uczeniu maszynowym, aby znaleźć i usuwać zbędne zmienne w Twoim zestawie danych.

Nie zawsze znajduje się rzeczywistą, nieliniową duplikację. Jeśli interpretujesz statystycznie PCA, musisz przyjąć pewne założenia dotyczące podstawowych relacji między zmiennymi / ich szumem. Mimo to jest to bardzo cenne narzędzie, nawet jeśli niektóre założenia nie są idealne.

Wdrażanie PCA w Sklearn

importować Numpy jako NP
ze Sklearn.Rozkład importu PCA
X = np.tablica ([[1, 2], [2, 1], [3, 2], [2, 3], [4, 5], [5, 4]]))
PCA = PCA (n_components = 2)
PCA.Fit (x)
Drukuj (PCA.wyjaśniono_variance_ratio_)
Drukuj (PCA.singular_values_)

Wyjście
[0.86153846 0.13846154]
[4.3204938 1.73205081]

Wniosek

W tym artykule omówiono analizę głównych komponentów i jej wdrożenie za pomocą Sklearn. Sklearn to popularna biblioteka Python używana do opracowywania modeli uczenia maszynowego. PCA zmniejsza klątwę wymiarowości, kierując dane o wysokiej wymiaru do niższych wymiarów bez utraty wielu informacji. PCA można wdrożyć za pomocą Sklearn z „Sklearn.klasa rozkładu.