データが非常に少ない非常に大きな正行列(65M x 3.4M)の特異値分解(SVD)を計算する最良の方法は何ですか?
行列の0.1%未満はゼロではありません。次の方法が必要です。
- メモリに収まります(オンラインメソッドが存在することを知っています)
- 妥当な時間で計算されます:3,4日
- 精度は十分に向上しますが、精度は私の主な関心事ではなく、投入するリソースの量を制御できるようにしたいと考えています。
それを実装するHaskell、Python、C#などのライブラリがあれば素晴らしいでしょう。私はmathlabやRを使用していませんが、必要に応じてRを使用できます。
3
どれくらいのメモリがありますか?65M * 3.4Mの0.1%は、まだ221e9の非ゼロ値です。値ごとに4バイトを使用する場合、オーバーヘッドがないと仮定すると、それでも55 GBを超えているため、スパース性はまだ問題を解決しません...セット全体を一度にメモリにロードする必要がありますか?
—
ビット単位
もっと正確にすべきだった。32ビット整数で250-500mb以下。おそらくはるかに少ないですが、私が理解しているように、次元が問題です。16GBのマシンがあります。
—
ソニア
これはどう?quora.com/…–
—
ビット
このWebページは、「高速、インクリメンタル、低メモリ、大行列のSVDアルゴリズム」を実装するPythonライブラリにリンクしています。en.wikipedia.org
—
wiki
stats.stackexchange.com/questions/2806も参照してください。
—
アメーバは、モニカの復活を