Finding intrinsic dimensionality of data set
4 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Gaurav Garg
2020 年 2 月 3 日
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 件のコメント
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!