dataminer.me

データマイニングやその周辺のお話を書くブログ

SVDいろいろ

SVDについて色々調べてみた。

普通のSVDじゃ、大量のデータを扱いのはきついなぁと思って

大量のデータの扱い方を中心に調べてみた。

SparseSVDとか、ヘブ則を使ったSVDとか

Netflixで有名になったSimonさんが作ったSVDとか。

Pythonで実装されているものだったら、

1.「ヘブ則とSimonさんのSVD」
http://d.hatena.ne.jp/ytakano/20081012

2.「SparseSVD、インクリメンタルSVD」
http://mac.softpedia.com/get/Development/Libraries/Divisi.shtml

あたり。

上の方が早いかと思ったのだが、扱っているタスクが疎なものであれば

SparseSVDの方が早そう。(上のブログはほぼPurePythonなので遅いのかも)

自分のPC(ノート)で実行して見たところ

パラメータの設定の仕方にもよるがデフォルトだと実効速度が

ScipyのSVD>2のパッケージ>>>>1


ただ、パラメータを色々変えると

2のパッケージで1000*1000の行列(Non zero:Zero=25%:75%)で

1.5秒くらい。

ノートPCじゃなければという速度かと。