MATLAB Answers

Finding intrinsic dimensionality of data set

5 views (last 30 days)
Desiree
Desiree on 24 Jan 2020
Answered: Gaurav Garg on 3 Feb 2020
Suppose I have a random (100,10) matrix. Here’s a code that gives the pca:
rng 'default'
X=rand(100,10);
X=bsxfun(@minus,X,mean(X));
[coeff,score,latent]=pca(X);
covmatrix=cov(X);
[V,D]=eig(covmatrix);
coeff
V
dataprincipalspace=X*coeff;
score
corrcoef(dataprincipalspace);
var(dataprincipalspace)'
latent
sort(diag(D),'descend')
If now I wish to know the intrinsic dimension of it, what should I add to my code? Help is appreciated!

  0 Comments

Sign in to comment.

Accepted Answer

Gaurav Garg
Gaurav Garg on 3 Feb 2020
Hi,
latent (column vector) stores the eigenvalues of the covariance matrix of X.
Executing
cumsum(latent/sum(latent))
would tell you the % of data variance in each dimension.
Finally, the number of dimensions will depend on how much variance you wish to have in your data.
For example, in your case it comes out to be ~ 94% of variance upto 9th dimension.

  0 Comments

Sign in to comment.

More Answers (0)


Translated by