大きなデータのクラスタリングに sklearn Kmeans Minibatch を使用していますが、メモリ エラーが発生します。
これは、この構成での私のラップトップ構成であり、正常に機能しています。
- コア i5 64 ビット
- パイソン 3.6.2
- 8GBのRAM
TfidfVectorizer Xを .npz ファイル (426 Mb) に保存しました。次に、異なる数のクラスターを使用して、 そのXに対してクラスタリングを数回実行します。
X = sparse.load_npz("D:\clustering_final\sp-k2.npz")
n_samples: 850900、n_features: 1728098
MiniBatchKMeans を使用した疎行列データのクラスタリング
Batch_size=1000、n_clusters=500、compute_labels=True、init='k-means++'、n_init=100
私のpythonスクリプトはこのラップトップ構成で正常に動作しますが、別のラップトップで同じPython(すべて同じコピーされたpython36フォルダー)を使用すると、メモリエラーが発生します。他のラップトップの構成が高くても:
- コア i5 64 ビット
- パイソン 3.6.2
16GBのRAM
km.fit(X) File "C:\python36\lib\site-packages\sklearn\cluster\k_means_.py", line 1418, in fit init_size=init_size) File "C:\python36\lib\site-packages\sklearn\cluster\k_means_.py", line 684, in _init_centroids x_squared_norms=x_squared_norms) File "C:\python36\lib\site-packages\sklearn\cluster\k_means_.py", line 79, in _k_init centers = np.empty((n_clusters, n_features), dtype=X.dtype) MemoryError
必要なライブラリとその他の依存関係をすべて確認しましたが、低構成のラップトップで完全に動作します。高構成のラップトップで実行できないのはなぜですか?
奇妙に聞こえるかもしれませんが、本当です。