我正在尋找一個快速的svd庫,無論是c,C++還是java。最終我使用Java,但我很舒服使用jna來包裝c + +,例如http://github.com/hughperkins/jeigen快速準確稀疏的svd庫?
我正在尋找一個快速的svd庫,將處理稀疏矩陣。爲了保持這個目標,所以這個問題不會被標記爲過於主觀,讓我們說:
- 目標與news20.binary使用,例如,從http://mldata.org/repository/data/viewslug/news20binary/
- 如何快速做才能運行?
- 保存多少方差,例如對於大小爲6或20的S矩陣?
我看了看周圍的幾個庫,結果發現:
- MATLAB:超快,約10秒,但它不是一個真正的「庫」這樣。平均平方預測誤差:0.93
- redsvd:超快速,約1秒的運行,爲6點的特性,但平均平方預測誤差爲0.97,這是非常高的
- 徵的SVD是兩個很慢,只爲密集矩陣
- svdlibc:跑了28分鐘才停止它;我想這是計算滿S,而不僅僅是最初的6個功能左右
基本上,我正在尋找,提供有關相同的速度和平均平方預測誤差爲MATLAB,或至少一個庫,有點可比。
你在找什麼算法? [隨機PCA](http://scikit-learn.org/stable/modules/decomposition.html)(不是C++/java,但我認爲正確的算法)爲20個新聞組x 10k功能,6個電腦 - >'7.0秒pca explained_variance_ratio_ .79 .062 .044 .039 .031 .03'。 – denis
我很驚訝Eigen的SVD太慢了。我從未使用過Eigen。自從你上次提出這個問題後,它有所改進嗎? –
順便說一句,[你打算在JEigen中實現稀疏求解器的時候](https://stackoverflow.com/questions/17046585/cholmod-in-java/30526005#30526005)? –