## Example computing a SVD? document.SUBSCRIPTION_OPTIONS = { "thing": "thread", "subscribed": false, "url": "subscribe", "icon": { "css": "fa fa-envelope-o" } };

brien
2010-06-25
2013-04-19
• brien - 2010-06-25

Hi,

I've been playing around with your library, which seems very useful for large matrices. I have a 100x1000000 matrix of observations (1000000 observation with 100 features each). I would like to compute the SVD of this matrix … do you have an example of using your API?

So far I have not been able to get the singular values to line up with my usual matrix packages. I have so far allocated a workspace and stepped all 1000000 observations through it.

Cheers,
Brien

• Attila Axt - 2010-07-27

Hi Brien! Sorry for my late answer!

I used it in the following situation: I had an RGB video of size 640x480. Each frame can be represented as an observation of a 921600 (=640x480x3) sized vector. I took 50 frames, and calculated an SVD from it (50x921600). This SVD represents a "background base", calculated from the 0-49 frames. After the 51st frame "steps" in, the SVD represents a "background base", calculated from the 1-50 frames, and so on. So I can have a SVD base which adapts to the frames near to the current frame, without recalculating the whole "batch" SVD for the near frames.

Here you can see a detailed description of the usage.

If you want to calculate the SVD of the 100x1000000 matrix once, then this library is not for you :-(.

If you wanted to use it in the above manner, then the library is not for you :-(, because you have 100 features. So you will have a 100 x m workspace (where m<=100), and for this sizes, the batch SVD calculation is faster than the incremental.

Maybe I have not understand your problem correctly (my english is poor) , so if you have any questions, please feel free to ask.

Greetings,
Attila