Dużo czytałem o PCA, w tym różne tutoriale i pytania (takie jak ten , ten , ten i ten ).
Geometryczny problem, który PCA próbuje zoptymalizować, jest dla mnie jasny: PCA próbuje znaleźć pierwszy główny składnik, minimalizując błąd rekonstrukcji (projekcji), który jednocześnie maksymalizuje wariancję rzutowanych danych.
Kiedy po raz pierwszy to przeczytałem, od razu pomyślałem o regresji liniowej; w razie potrzeby możesz to rozwiązać za pomocą opadania gradientu.
Jednak wtedy mój umysł był oszołomiony, gdy przeczytałem, że problem optymalizacji rozwiązano za pomocą algebry liniowej i znalezienia wektorów własnych i wartości własnych. Po prostu nie rozumiem, jak to zastosowanie algebry liniowej wchodzi w grę.
Moje pytanie brzmi zatem: w jaki sposób PCA może zmienić problem optymalizacji geometrycznej w problem algebry liniowej? Czy ktoś może podać intuicyjne wyjaśnienie?
Nie szukam odpowiedzi takiej jak ta, która mówi: „Kiedy rozwiążesz matematyczny problem PCA, kończy się to równoważeniem znalezienia wartości własnych i wektorów własnych macierzy kowariancji”. Wyjaśnij, dlaczego wektory własne okazują się głównymi składnikami i dlaczego wartości własne okazują się wariancją rzutowanych na nie danych
Nawiasem mówiąc, jestem inżynierem oprogramowania, a nie matematykiem.
Uwaga: powyższy rysunek został pobrany i zmodyfikowany w tym samouczku PCA .
źródło
optimization problem
Tak, sądzę, że problem PCA można rozwiązać za pomocą (iteracyjnych, zbieżnych) metod optymalizacji. Ale skoro ma matematyczne rozwiązanie zamknięte, dlaczego nie zastosować tego prostszego, wydajnego rozwiązania?provide an intuitive explanation
. Zastanawiam się, dlaczego intuicyjna i jasna odpowiedź ameby, z którą się połączyłem, nie będzie ci odpowiadać. Pytasz_why_ eigenvectors come out to be the principal components...
dlaczego Zgodnie z definicją! Wektory własne to główne kierunki chmury danych.Odpowiedzi:
Opis problemu
Zgadza się. Wyjaśniam związek między tymi dwoma sformułowaniami w mojej odpowiedzi tutaj (bez matematyki) lub tutaj (z matematyki).
(Na wszelki wypadek, gdy nie jest to jasne: jeśli jest wyśrodkowaną macierzą danych, to rzut jest podawany przez a jego wariancja to ).X Xw 1n−1(Xw)⊤⋅Xw=w⊤⋅(1n−1X⊤X)⋅w=w⊤Cw
Z drugiej strony wektorem własnym jest z definicji dowolny wektor taki, że .C v Cv=λv
Okazuje się, że pierwszy główny kierunek jest nadawany przez wektor własny o największej wartości własnej. To nietrywialne i zaskakujące stwierdzenie.
Dowody
Jeśli otworzysz jakąkolwiek książkę lub samouczek na temat PCA, znajdziesz tam prawie jednoliniowy dowód powyższego stwierdzenia. Chcemy zmaksymalizować pod warunkiem, że ; można tego dokonać wprowadzając mnożnik Lagrange'a i maksymalizując ; różnicując, otrzymujemy , co jest równaniem wektora własnego. Widzimy, że musi być największą wartością własną, zastępując to rozwiązanie funkcją celu, co dajew⊤Cw ∥w∥=w⊤w=1 w⊤Cw−λ(w⊤w−1) Cw−λw=0 λ w⊤Cw−λ(w⊤w−1)=w⊤Cw=λw⊤w=λ . Z uwagi na fakt, że tę funkcję celu należy zmaksymalizować, musi być największą wartością własną, QED.λ
Dla większości ludzi nie jest to zbyt intuicyjne.
Lepszy dowód (patrz np. Ta zgrabna odpowiedź @cardinal ) mówi, że ponieważ jest macierzą symetryczną, jest ona diagonalna w swojej wektorze własnym. (Tak naprawdę nazywa się to twierdzeniem spektralnym .) Możemy więc wybrać podstawę ortogonalną, mianowicie tę podaną przez wektory własne, gdzie jest przekątna, a na jego przekątnej mają wartości własne . Na tej podstawie upraszcza do , lub innymi słowy, wariancja jest dana przez ważoną sumę wartości własnych. Jest niemal natychmiastowe, że aby zmaksymalizować to wyrażenie, wystarczy wziąćC C λi w⊤Cw ∑λiw2i w=(1,0,0,…,0) , tj. pierwszy wektor własny, dający wariancję (w rzeczywistości odejście od tego rozwiązania i „wymiana” części największej wartości własnej na części mniejszych doprowadzi tylko do mniejszej ogólnej wariancji). Zauważ, że wartość nie zależy od podstawy! Przejście na podstawę wektora własnego oznacza obrót, więc w 2D można sobie wyobrazić po prostu obrócenie kawałka papieru za pomocą wykresu rozrzutu; oczywiście nie może to zmienić żadnych odchyleń.λ1 w⊤Cw
Myślę, że jest to bardzo intuicyjny i bardzo użyteczny argument, ale opiera się na twierdzeniu spektralnym. Myślę więc, że prawdziwym problemem jest: jaka jest intuicja stojąca za twierdzeniem spektralnym?
Twierdzenie spektralne
Wziąć symetryczną matrycą . Weź swój wektor własny z największą wartością własną . Ustaw ten wektor własny jako pierwszy wektor podstawowy i wybierz losowo inne wektory podstawowe (tak, aby wszystkie z nich były ortonormalne). Jak będzie wyglądać na tej podstawie?C w1 λ1 C
Będzie miał w lewym górnym rogu, ponieważ na tej podstawie i musi być równy .λ1 w1=(1,0,0…0) Cw1=(C11,C21,…Cp1) λ1w1=(λ1,0,0…0)
Pod tym samym argumentem będzie miał zera w pierwszej kolumnie pod .λ1
Ale ponieważ jest symetryczny, również będzie miał zera w pierwszym rzędzie po . Będzie to wyglądać tak:λ1
gdzie pusta przestrzeń oznacza, że jest tam blok niektórych elementów. Ponieważ macierz jest symetryczna, ten blok również będzie symetryczny. Możemy więc zastosować do niego dokładnie ten sam argument, skutecznie wykorzystując drugi wektor własny jako drugi wektor podstawowy i uzyskując i na przekątnej. Można to kontynuować, dopóki będzie przekątna. Jest to zasadniczo twierdzenie spektralne. (Zwróć uwagę, jak to działa tylko dlatego, że jest symetryczny).λ1 λ2 C C
Oto bardziej abstrakcyjne przeformułowanie dokładnie tego samego argumentu.
Wiemy, że , więc pierwszy wektor własny definiuje 1-wymiarową podprzestrzeń, w której działa jak zwielokrotnienie skalarne. Weźmy teraz dowolny wektor ortogonalny do . Zatem jest niemal natychmiastowe, że jest również ortogonalny do . W rzeczy samej:Cw1=λ1w1 C v w1 Cv w1
Oznacza to, że działa na całą pozostałą podprzestrzeń prostopadłą do tak że pozostaje oddzielony od . Jest to kluczowa właściwość macierzy symetrycznych. Możemy więc znaleźć tam największy wektor własny, , i postępować w ten sam sposób, ostatecznie konstruując ortonormalną podstawę wektorów własnych.C w1 w1 w2
źródło
prcomp(iris[,1:4], center=T, scale=T)
), Widzę wektory własne o długości jednostkowej z wieloma pływakami jak(0.521, -0.269, 0.580, 0.564)
. Jednak w odpowiedzi w części „Dowody” piszesz. Niemal natychmiast, aby zmaksymalizować to wyrażenie, należy po prostu przyjąć w = (1,0,0,…, 0), tj. Pierwszy wektor własny . Dlaczego wektor własny w twoim dowodzie wygląda tak dobrze uformowany?Jest wynik z 1936 r. Autorstwa Eckarta i Younga ( https://ccrma.stanford.edu/~dattorro/eckart%26young.1936.pdf ), który stwierdza, co następuje
gdzie M (r) jest zbiorem macierzy ranga-r, co w zasadzie oznacza, że pierwsze r składowe SVD X dają najlepsze przybliżenie macierzy X rangi niskiej, a najlepsze jest zdefiniowane w kategoriach kwadratu normy Frobeniusa - sumy kwadratu elementy macierzy.
Jest to ogólny wynik dla matryc i na pierwszy rzut oka nie ma nic wspólnego z zestawami danych ani redukcją wymiarów.
Jeśli jednak nie myślisz o jako macierzy, a raczej o kolumnach macierzy reprezentujących wektory punktów danych, to jest przybliżeniem z minimalnym błędem reprezentacji pod względem kwadratowych różnic błędów.X X X^
źródło
To jest moje zdanie na temat algebry liniowej za PCA. W algebrze liniowej jednym z kluczowych twierdzeń jest . Stwierdza, że jeśli S jest dowolną symetryczną macierzą n na n o rzeczywistych współczynnikach, to S ma n wektorów własnych, przy czym wszystkie wartości własne są rzeczywiste. Oznacza to, że możemy napisać pomocą D macierzy diagonalnej z dodatnimi wartościami. To jest i nie ma nic złego w założeniu, że . A jest zmianą matrycy bazowej. To znaczy, jeśli naszą pierwotną podstawą było , to w odniesieniu do podstawy podanej przezSpectral Theorem S=ADA−1 D=diag(λ1,λ2,…,λn) λ1≥λ2≥…≥λn x1,x2,…,xn A(x1),A(x2),…A(xn) , działanie S jest diagonalne. Oznacza to również, że można uznać za podstawę ortogonalną z Gdyby nasza macierz kowariancji dotyczyła n obserwacji n zmiennych, zrobilibyśmy to. Podstawą podaną przez jest podstawa PCA. Wynika to z faktów algebry liniowej. Zasadniczo jest to prawdą, ponieważ podstawa PCA jest podstawą wektorów własnych, a istnieją wektory własne n macierzy kwadratowej o rozmiarze n.
Oczywiście większość macierzy danych nie jest kwadratowa. Jeśli X jest macierzą danych z n obserwacjami zmiennych p, to X ma rozmiar n przez p. Zakładam, że (więcej obserwacji niż zmiennych) i żeA(xi) ||A(xi)||=λi A(xi)
n>p rk(X)=p (wszystkie zmienne są liniowo niezależne). Żadne z tych założeń nie jest konieczne, ale pomoże intuicyjnie. Algebra liniowa ma uogólnienie na podstawie twierdzenia spektralnego zwanego rozkładem wartości osobliwych. Dla takiego X stwierdza, że z U, V macierzami ortonormalnymi (kwadratowymi) o rozmiarze nip oraz prawdziwa macierz diagonalna z tylko nieujemnymi wpisy na przekątnej. Ponownie możemy zmienić podstawę V, aby W kategoriach macierzowych oznacza to, że jeśli i jeśli . X=UΣVt Σ=(sij) s11≥s22≥…spp>0 X(vi)=siiui i≤p sii=0 i>n vi dać rozkład PCA. Dokładniej jest rozkładem PCA. Dlaczego? Ponownie, algebra liniowa mówi, że mogą istnieć tylko wektory własne. SVD podaje nowe zmienne (podane przez kolumny V), które są ortogonalne i mają malejącą normę. ΣVt
źródło
„co jednocześnie maksymalizuje wariancję prognozowanych danych”. Czy słyszałeś o ilorazie Rayleigha ? Może to jeden ze sposobów na to. Mianowicie współczynnik rayleigha macierzy kowariancji daje wariancję rzutowanych danych. (a strona wiki wyjaśnia, dlaczego wektory własne maksymalizują iloraz Rayleigha)
źródło
@amoeba daje staranne sformalizowanie i dowód:
Myślę jednak, że istnieje jeden intuicyjny dowód na:
Możemy interpretować w T Cw jako iloczyn iloczynu między wektorem w i Cw, który jest uzyskiwany przez przejście przez transformację C:
w T Cw = ‖w‖ * ‖Cw‖ * cos (w, Cw)
Ponieważ w ma stałą długość, aby zmaksymalizować W T Cw, potrzebujemy:
Okazuje się, że jeśli weźmiemy w jako wektor własny C o największej wartości własnej, możemy zarchiwizować oba jednocześnie:
Ponieważ wektory własne są ortogonalne, wraz z innymi wektorami własnymi C tworzą zestaw podstawowych składników X.
dowód 1
rozłożyć w na pierwotny i wtórny wektor własny v1 i v2 , zakładając , że ich długość wynosi odpowiednio v1 i v2. chcemy to udowodnić
(λ 1 w) 2 > ((λ 1 v1) 2 + (λ 2 v2) 2 )
od λ 1 > λ 2 mamy
((λ 1 v1) 2 + (λ 2 v2) 2 )
<((λ 1 v1) 2 + (λ 1 v2) 2 )
= (λ 1 ) 2 * (v1 2 + v2 2 )
= (λ 1 ) 2 * w 2
źródło