Reputation: 2141
Ofcourse, ideal is subjective. I am doing some research where I need to implement production level code for SVD computation for a rectangular matrix. So here is what I found out, GraphLab and Mahout use Lanczos Algorithm for implementing SVD, while I have found that other methods include QR decomposition and Jacobi method. My question is what is the most preferred method in computing SVD? And why?
Upvotes: 4
Views: 5008
Reputation: 600
You can try Eigen library for C++, it has very good performance and is not difficult to use if you're a C++ programmer:
http://eigen.tuxfamily.org/dox/classEigen_1_1JacobiSVD.html
Graphlab uses Eigen for linear algebra, not sure if they use it for SVD.
Upvotes: 0
Reputation: 3407
I find this paper which seems to be helpful.
In section
45.2 Algorithms for the Singular Value Decomposition
different algorithms are being discussed.
The algorithms differ in the way of whether involves iteration, and what the exact output is needed, say if you just want the eigen vector, things would be a little bit different.
Upvotes: 3