1

我正在使用 sklearn Kmeans Minibatch 对大数据进行聚类,但出现内存错误。

这是我在此配置上的笔记本电脑配置,它工作正常:

  1. 酷睿 i5 64 位
  2. Python 3.6.2
  3. 8 GB 内存

我将 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 文件夹)时,它会出现内存错误。即使另一台笔记本电脑的配置很高:

  1. 酷睿 i5 64 位
  2. Python 3.6.2
  3. 16 GB 内存

    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

我检查了所有必需的库和其他依赖项,但它在低配置笔记本电脑上运行良好。为什么它不能在高配置笔记本电脑上运行?

我知道这听起来很奇怪,但这是真的。

4

0 回答 0