Skręcanie chmury, aż rozproszenie pokrywa się z osiami
Analiza głównych składowych (PCA) szuka obrotu zbioru danych, który sprawia, że jego struktura jest najprościej opisywana. Weź pod uwagę rozrzut punktów w dwóch lub więcej współzależnych wymiarach – wzrost i waga, lub natężenia pikseli twarzy – i prawie zawsze istnieje kierunek, w którym punkty są najbardziej rozrzucone. PCA znajduje ten kierunek najpierw, a następnie kolejny, najbardziej rozrzutowy kierunek prostopadły do niego, i tak dalej, tworząc nowy zestaw osi zwanymi głównymi składowymi, które są ze sobą niezależne przez konstrukcję.
Kluczowym jest tutaj macierz kowariancji danych. Dla danych wycentrowanych (średnia odjęta z każdej wymiaru), macierz kowariancji C = (1/n) XᵀX podsum incident, jak każda para wymiarów zmienia się razem. Jej diagonale zawiera wariancję każdego oryginalnego wymiaru; jej wpisy poza diagonali zawierają kowariancje, które powodują, że chmura danych jest pochylona, a nie wyśrodkowana na osiach.
Własne wektory to osie, wartości własne to wariancja
PCA jest, matematycznie, rozkładem na wartości własne macierzy kowariancji. Każdy wektor własny C wskazuje wzdłuż jednego głównych składowego i jego powiązane wartości własne odpowiadają dokładnie wariancji danych projekcji na ten kierunek.
C v_i = λ_i v_i v_i — i-ty wektor własny (kierunek składowej głównej, długość jednostkowa) λ_i — i-ta wartość własna (wyjaśniona wariancja wzdłuż tego kierunku) Sortowanie wartości własnych od największej do najmniejszej układa składowe od najbardziej do najmniej wyjaśniających. Pierwszy główny składnik wskazuje w kierunku maksymalnej wariancji; drugi jest kierunkiem maksymalnej pozostałej wariancji pod warunkiem, że jest on prostopadły do pierwszego i tak dalej, aż do momentu, w którym każdy kolejny składnik pochłania jakakolwiek wariancję, którą nie mogły wychwycić poprzednie.
The principal components are ordered by the magnitude of their eigenvalues.
C v_i = λ_i v_i v_i — i-th eigenvector (principal component direction, unit length) λ_i — i-th eigenvalue (variance explained along that direction)
Spadanie wymiarów bez utraty zbyt wielu informacji
Ponieważ wartości własne wskazują dokładnie, jaką zmienność niesie każdy osiec, PCA daje spójny sposób kompresji danych: zachowaj najlepsze k komponentów i odrzuć pozostałe, a przytrzymasz się podziału (wartość własna 1 + ... + wartość własna k) / (wartość własna 1 + ... + wartość własna d) całkowitej zmienności. Zbiór danych z korelujących cech powinien mieć większość swojej zmienności skoncentrowaną w pierwszych dwóch lub trzech komponentach – dlatego wykresy PCA dla danych o wysokiej wymiarowości (wyrażenia genów, fragmenty obrazów, odpowiedzi ankiet) często przedstawiają sensowne 2D lub 3D obraz, mimo że oryginalne dane miały dziesiątki wymiarów.
W praktyce oblicza się to albo bezpośrednio przez rozkład wartości własnych macierzy kowariancji, albo – bardziej stabilnie numerycznie dla danych rzeczywistych – poprzez rozkład wartości osobliwych (SVD) macierzy znormalizowanej X = UΣVᵀ, gdzie kolumny V są głównymi składowymi a singularne wartości w Σ to pierwiastki kwadratowe z wartości własnych. SVD unika bezpośredniego obliczania XᵀX, co ma znaczenie, ponieważ mnożenie macierzy tego typu może wzmocnić błędy zmiennoprzecinkowe.
Co PCA nie robi
PCA jedynie znajduje liniowe kombinacje oryginalnych cech, więc nie może rozwinąć zakrzywłego rozmaitości – chmura w kształcie szwajcarskiego różu pozostaje splątana bez względu na to, jak ją obracasz, a metody nieliniowe takie jak t-SNE lub UMAP istnieją dokładnie po to, aby poradzić sobie z tym przypadkiem. Jest również wrażliwa na skalę: cecha zmierzona w kilometrach dominuje nad cechą zmierzoną w milimetrach wyłącznie ze względu na jednostki, chyba że najpierw doprowadzisz każdą wymiar do jednostkowej wariancji.
PCA maksymalizuje wariancję, a niekoniecznie interpretowalność lub separację klas – kierunek z ogromną wariancją może nadal być bezużyteczny do rozróżnienia dwóch kategorii, co jest powodem istnienia alternatyw nadzorowanych takich jak Analiza Własna Liniowa dla zadań klasyfikacyjnych.
Frequently asked questions
Jakie jest różnica między PCA a korelacją?
Korelacja mierzy liniową zależność między dwoma poszczególnymi zmiennymi. PCA analizuje wszystkie zmienne razem poprzez macierz kowariancji i znajduje wspólne kierunki (składowe główną) które wyjaśniają największą całkowitą wariancję w całym zbiorze danych, co jest innym, wyższego rzędu pytaniem niż jakakolwiek pojedyncza korelacja parami.
Ile składowych głównych powinienem zachować?
Często stosowaną zasadą jest zachowanie wystarczającej liczby komponentów, aby wyjaśnić określoną frakcję całkowitej wariancji, często 90-95%. Obrazowanie wartości własnych w kolejności malejącej (wykres scree) i poszukiwanie punktu, w którym wygładzają się — 'lokcia' — jest standardową heurystyką; komponenty po tym punkcie dodają niewiele wyjaśniającej mocy.
Czy PCA wymaga, aby dane były normalnie rozłożone?
Nie. PCA jest czysto geometryczną operacją na macierzy kowariancji i nie wymaga żadnych założeń dotyczących rozkładu, aby działać. Normalność ma znaczenie tylko wtedy, gdy chcesz przypisać testy statystyczne do komponentów lub opierasz się na interpretacjach opartych na gaussowskim modelu danych po projekcji.
Wypróbuj na żywo
Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz PCA i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.
▶ Otwórz symulację PCA