memory pca vs pcacov
이전 댓글 표시
Dear all,
I'm running a pca on a large matrix (33*500,000) and with pcacov I get a memory error, but pca gives me no trouble. Could anyone explain this to me? Is the matrix somehow being reduced before computing the covariance matrix in pca?
Thanks!
Best
Hans
답변 (3개)
Hiro Yoshino
2020년 11월 2일
0 개 추천
In PCA, your matrix (p x q) will be once converted into the variance-covariance matrix (q x q).
This would reqiure huge memory comsumption. Meanwhile, pcacov accepts a variance-covariance matrix as an input and, therefore the argument (input) should be a square matrix though.
As for big data anaysis, you may want to use tall array - this can be a solution.
Hans van der Horn
2020년 11월 2일
0 개 추천
댓글 수: 2
Hans van der Horn
2020년 11월 2일
Hiro Yoshino
2020년 11월 2일
I do not believe pcacov works with your matrix in the first place since the shape of your matrix is unacceptable. I do not know what the error will be like.
Hans van der Horn
2020년 11월 2일
0 개 추천
댓글 수: 2
Hiro Yoshino
2020년 11월 2일
I got your point now!!
OK, actually to avoid memory problem, pca normally takes a different approach to calculate eigen vectors - SVD. This is not a direct method and produces some by-product. This is a well-known fact - you may find the this in your text book too, I'm sure.
Hans van der Horn
2020년 11월 2일
카테고리
도움말 센터 및 File Exchange에서 Dimensionality Reduction and Feature Extraction에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!