I'm trying to figure out Eigenvalues/Eigenvectors for large datasets in order to compute
the PCA. I can calculate the Eigenvalues and Eigenvectors for 2x2
, 3x3
etc..
The problem is, I have a dataset containing 451x128 I compute the covariance matrix which gives me 128x128 values from this. This, therefore looks like the following:
A = [ [1, 2, 3,
2, 3, 1,
..........,
= 128]
[5, 4, 1,
3, 2, 1,
2, 1, 2,
..........
= 128]
.......,
128]
Computing the Eigenvalues and vectors for a 128x128 vector seems really difficult and
would take a lot of computing power. However, if I allow for each of the blocks in A to be a 2-dimensional (3xN
) I can then compute the covariance matrix which will give me a 3x3
matrix.
My question is this: Would this be a good or reasonable assumption for solving the eigenvalues and vectors? Something like this:
A is a 2-dimensional vector containing 128x451, foreach of the blocks compute the eigenvalues and eigenvectors of the covariance vector, like so:
Eig1 = eig(cov(A[0])) Eig2 = eig(cov(A[1]))
This would then give me 128 Eigenvalues (for each of the blocks inside the 128x128 vector)..
If this is not correct, how does MATLAB handle such large dimensional data?
2x2
,3x3
but I'm getting confused on how to calculate it for large square matrices. I don't get quite how matlab does it - Does this make sense? – Phorce