J'essaie de trouver des valeurs propres/vecteurs propres pour de grands ensembles de données afin de calculer la PCA. Je peux calculer les valeurs propres et vecteurs propres pour 2x2
, 3x3
etc ..Valeurs propres de Matlab
Le problème est, j'ai un ensemble de données contenant 451x128 je calcule la matrice de covariance qui me donne 128x128 les valeurs de cette situation. Cela ressemble donc à ce qui suit:
A = [ [1, 2, 3,
2, 3, 1,
..........,
= 128]
[5, 4, 1,
3, 2, 1,
2, 1, 2,
..........
= 128]
.......,
128]
Le calcul des valeurs propres et des vecteurs pour un vecteur 128x128 semble vraiment difficile et prendrait beaucoup de puissance de calcul. Cependant, si je permets que chacun des blocs dans A soit bidimensionnel (3xN
), je peux alors calculer la matrice de covariance qui me donnera une matrice 3x3
.
Ma question est la suivante: Serait-ce une hypothèse bonne ou raisonnable pour résoudre les valeurs propres et les vecteurs? Quelque chose comme ceci:
A est un vecteur de dimension 2 contenant 128x451, foreach des blocs calculer les valeurs propres et les vecteurs propres du vecteur de covariance, comme ceci:
Eig1 = EIG (cov (A [0])) Eig2 = EIG (cov (A [1]))
Ce serait alors me donner 128 (pour Eigenvalues chacun des blocs à l'intérieur du 128x128 vect ou)
Si cela n'est pas correct, comment MATLAB gère-t-il ces grandes données dimensionnelles?
Que voulez-vous dire par "Si ce n'est pas correct"? Et MATLAB peut trouver des vecteurs propres et des valeurs propres de grandes matrices carrées en une fraction de seconde. –
@AdarshChavakula Hey, j'essaye de créer un algorithme (en C++) qui peut calculer les valeurs propres et les vecteurs propres sans utiliser de logiciel tiers .. Je peux, calculer un '2x2',' 3x3' mais je suis confus sur la façon de le calculer pour les grandes matrices carrées. Je ne comprends pas très bien comment matlab le fait - Est-ce que cela a du sens? – Phorce