Mam macierz , zawierającą moje próbek w przestrzeni wymiarowej . Chcę teraz zakodować własną analizę głównych składników (PCA) w Matlabie. I poniżać do pierwszy.N = 20 D = 100 X X 0
Czytam z czyjegoś kodu, że w takich scenariuszach, w których mamy więcej wymiarów niż obserwacji, nie rozkładamy już macierzy kowariancji . Zamiast tego eigen-decompose . Dlaczego to jest poprawne?1
Normalna macierz kowariancji ma rozmiar , z których każdy element mówi nam o kowariancji między dwoma wymiarami. Dla mnie \ frac {1} {N-1} X_0X_0 ^ T nie ma nawet właściwych wymiarów! Jest to macierz N \ razy N , więc co by nam powiedziała? Kowariancja między dwiema obserwacjami ?!1 N×N
X'X
iXX'
(a także svd zX
iX'
). To, co nazywa się „ładowaniami” w jednym przypadku, w drugim nazywa się „wynikami na PC” i odwrotnie. Ponieważ oba są tylko współrzędnymi ( patrz na przykład ) i osiami, „główne wymiary” są takie same.n<p
zajmuje mniej pamięci RAM i mniej czasu na rozkład,XX'
ponieważ ma mniejszy rozmiar.XX'
na PC. Czy mógłbyś bardzo krótko pokazać mi, jak? Biorąc pod uwagę, że komputery PC są jedynie wektorami własnymi macierzy kowariancji, próbowałem przejść z własnegoXX'
do macierzy kowariancjiX'X
, ale zawiodłem.Odpowiedzi:
Macierz kowariancji ma rozmiar i jest dana przez C = 1D × D
Macierz, o której mówisz, oczywiście nie jest macierzą kowariancji; nazywa się to macierzą Gram i ma rozmiar : G = 1N.× N.
Analiza głównego składnika (PCA) może być zaimplementowana poprzez składanie dowolnej z tych matryc. To tylko dwa różne sposoby obliczenia tego samego.
Najłatwiejszym i najbardziej użytecznym sposobem na sprawdzenie tego jest użycie rozkładu wartości w liczbie pojedynczej macierzy danych . Włączając to do wyrażeń dla C i G , otrzymujemy: CX=USV⊤ C G
Wektory własne macierzy kowariancji są głównymi kierunkami. Prognozy danych o tych wektorach własnych są głównymi składnikami; Występy te są podane U S . Podstawowe elementy przeskalowany jednostkę długości są podane U . Jak widać, wektory własne macierzy Gram są dokładnie tymi skalowanymi głównymi składnikami. A wartości własne C i G pokrywają się.V US U C G
Powodem, dla którego możesz zobaczyć, że zaleca się stosowanie macierzy Gram, jeśli jest to, że będzie ona mniejszego rozmiaru w porównaniu do macierzy kowariancji, a zatem będzie szybsza do obliczenia i szybsza do skomponowania. W rzeczywistości, jeśli twoja wymiarowość D jest zbyt wysoka, nie ma sposobu, abyś nawet przechował macierz kowariancji w pamięci, więc działanie na macierzy Grama jest jedynym sposobem na wykonanie PCA. Ale do opanowania D ty może nadal korzystać eigendecomposition macierzy kowariancji jeśli wolisz nawet jeśli N < D .N<D D D N<D
źródło