how can i compute PCA for a huge data set?

hello Everybody, i have a huge data set (120 raw X 600000 columns) my Hardware is core i5, 2.5 GHz, 8 GB RAM, Win8 64 bit, MATLAB R2013a 64 bit. i read that i may get ~4TB memory if i use 64 bit operating system and 64 bit MATLAB version.
on my hardware i computed PCA (princomp) command and get the results, and i tried to recompute it again but i got (out of memory) error message.
could any one help me to know what is the problem? and i can't reduce the data set dimension also i heard about PCA by SVD that it can be used in the case of not square matrix. is that true?
thanks

 Akzeptierte Antwort

Shashank Prasanna
Shashank Prasanna am 3 Jun. 2013

0 Stimmen

This is a limitation of you RAM (8 GB) and the amount of data you can hold on your workspace. Clear out your memory and try again by using the clear function. Or upgrade your RAM, this is not the limitation of pca which by default already uses SVD:

4 Kommentare

Mohamed Moawed
Mohamed Moawed am 3 Jun. 2013
could you please help me to know what is the difference between PCA(x) and Princomp(x) commands?
They are the same thing. In MATLAB R2012b, a new function called PCA was introduced.It does the same thing as princomp with few additional features and a more discoverable name:
Mohamed Moawed
Mohamed Moawed am 4 Jun. 2013
thanks for your reply. i want to ask is the input of the princomp is input matrix or covariance matrix? ans what about pca function is input matrix or covariance matrix?
I'll let the documentation answer that question:
Take a look at this as well:

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by