Ben bir matris , benim içeren N = 20 numuneleri D = 100 boyutlu alan. Şimdi Matlab'da kendi temel bileşen analizimi (PCA) kodlamak istiyorum. Ben küçük düşürmek X için X_0 ilk.X N = 20 D = 100 X X 0
Birinin kodundan, gözlemlerden daha fazla boyuta sahip olduğumuz senaryolarda, artık kovaryans matrisini öz-ayrıştırmadığımızı okudum . Bunun yerine, . Neden doğru?
Normal kovaryans matrisi, D \ times D büyüklüğündedir , her bir eleman bize iki boyut arasındaki kovaryansı söyler. Bana göre, doğru boyutlarda bile değil! Öyle matris, bu yüzden bize söylerdi? İki gözlem arasındaki kovaryans ?!
n<p
az RAM ve daha XX'
küçük boyutlu olduğu için ayrışması daha az zaman aldığında .
XX'
PC'ye gidiş sorunları var . Bana kısaca nasıl olduğunu gösterebilir misin? PC'ler kovaryans matrisinin sadece özvektörleridir göz önüne alındığında, ben Eigen taşımak denedi XX'
kovaryans matrisinin eigen için X'X
, ancak başarısız oldu.
X'X
veXX'
(yanı sıra svdX
veX'
). Bir durumda "yüklemeler" olarak adlandırılan, diğerinde "pc skorları" olarak adlandırılacaktır. Her ikisi de sadece koordinatlar ( örneğin bakınız ) ve eksenler olduğundan, "ana boyutlar" aynıdır.