2017-10-02 17 views
0

私は自分のデータセットでstandford講義で述べたSVDメソッドを再現したいと思います。講義のスライドは、次の通りである疎な対称行列でSVDを実行すると、Pythonのカーネルが死んでしまう

stanford lecture

私のデータセットが生成され、CountVectorizerから処理

<13840x13840 sparse matrix of type '<type 'numpy.int64'>' 
with 597828 stored elements in Compressed Sparse Column format> 

のサイズの単語共起行列Mで同じタイプのものです()は、これが対称行列であることに注意してください。

しかし、私はSVDから特徴を抽出しようとしたとき、しかし、次のコードのいずれも機能していない、

第一試み:

scipy.linalg.svd(M) 

私は(スパースのCSR todenseから行列を試してみました)と、 toarray()、私のコンピュータはかなりの時間がかかり、カーネルの停止を表示します。私も30秒ほど後にカーネルが死んだ、しかし、のfloat64するint64モードからマトリクス型を変更しようとしました

scipy.sparse.linalg.svds(M) 

:私も周りの異なるパラメータ設定で

第二試みを果たしました。

誰でも私にこのマトリックスでSVDを実行する方法を提案できますか?

ありがとうございました

答えて

1

メモリがストレスに満ちているようです。

  1. が適応SVD、
  2. 使用modreddaskから
  3. 使用SVDを実行します。あなたはいくつかのオプションがあります。

後者の2つはそのまま使用できます。 これらのオプションはすべてメモリの内容だけを読み込みます。

+0

実際には、daskパッケージをインストールした後でも、上記のコードは、私がdask svd関数を使用していなくてもはるかに高速になります。どんな考え? – FF0605

+0

@ FF0605おそらくそれはblas/lapack/mklのものを更新しました – Y0da

関連する問題