当然,理想是主观的。我正在做一些研究,我需要为矩形矩阵的SVD计算实现生产级代码。所以我发现,GraphLab和Mahout使用Lanczos算法来实现奇异值分解,而我发现其他方法包括QR分解和雅可比方法。我的问题是,在计算奇异值分解时,最受欢迎的方法是什么?为什么?
发布于 2013-05-13 00:28:27
我发现this paper似乎很有帮助。
在部分中
奇异值分解的45.2算法
不同的算法正在讨论中。
这些算法的不同之处在于是否涉及迭代,以及需要什么确切的输出,比如如果你只想要特征向量,事情就会有一点不同。
发布于 2014-05-18 23:34:54
你可以尝试一下C++的特征库,如果你是一名C++程序员,它的性能非常好,使用起来并不困难:
http://eigen.tuxfamily.org/dox/classEigen_1_1JacobiSVD.html
Graphlab将Eigen用于线性代数,不确定他们是否将其用于SVD。
https://stackoverflow.com/questions/16492972
复制相似问题