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
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łasnego XX'
do macierzy kowariancji X'X
, ale zawiodłem.
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.