J'ai une matrice , contenant mes échantillons dans l' espace . Je souhaite maintenant coder ma propre analyse en composantes principales (ACP) dans Matlab. Je rabaisse d'abord à .X N = 20 D = 100 X X 0
J'ai lu dans le code de quelqu'un que dans de tels scénarios où nous avons plus de dimensions que d'observations, nous ne décomposons plus la matrice de covariance du . Au lieu de cela, nous Eigen-decompose . Pourquoi est-ce correct?1
La matrice de covariance normale est de taille , dont chaque élément nous indique la covariance entre deux dimensions. Pour moi, n'est même pas aux bonnes dimensions! C'est une matrice , alors que nous dirait-elle? Covariance entre deux observations?!1 N×N
n<p
il faut moins de RAM et moins de temps pour se décomposer XX'
car il est de plus petite taille.
XX'
à l'ordinateur. Pourriez-vous s'il vous plaît me montrer très brièvement comment? Étant donné que les PC ne sont que des vecteurs propres de la matrice de covariance, j'ai tenté de passer de la valeur propre de XX'
à la valeur propre de la matrice de covariance X'X
, mais j'ai échoué.
X'X
etXX'
(ainsi que svd deX
etX'
). Ce qui est appelé "chargements" dans un cas sera appelé "scores pc" dans l'autre et vice versa. Parce que les deux ne sont que des coordonnées ( voir, par exemple ) et les axes, les "dimensions principales" sont les mêmes.