c、c ++、またはjavaのいずれかで高速なsvdライブラリを探しています。最終的にはJavaを使用していますが、jnaを使用してc ++をラップするのは非常に快適です(例:http ://github.com/hughperkins/jeigen)。
スパース行列を処理する高速なsvdライブラリを探しています。この目的を維持し、質問が主観的すぎるとマークされないようにするには、次のように言います。
- news20.binaryでの使用をターゲティングします。たとえば、 http: //mldata.org/repository/data/viewslug/news20binary/から
- 実行にはどれくらいの時間がかかりますか?
- たとえば、サイズ6または20のS行列の場合、どの程度の分散が保存されますか?
私はいくつかのライブラリを見て回ったところ、次のことがわかりました。
- matlab:超高速、約10秒ですが、実際には「ライブラリ」ではありません。平均二乗投影誤差:0.93
- redsvd:超高速、実行に約1秒、6つの機能の場合、平均二乗投影誤差は0.97であり、これは非常に高い値です。
- Eigenのsvdは非常に遅く、密な行列の場合のみです
- svdlibc:停止する前に28分間実行しました。最初の6つの機能だけでなく、完全なSを計算していると思います
基本的に、私はmatlabとほぼ同じ速度と平均二乗投影誤差、または少なくともある程度同等の速度と平均二乗投影誤差を提供するライブラリを探しています。