大数据的K均值minibatch内存错误

时间:2019-02-11 12:11:29

标签: python scikit-learn svm k-means mini-batch

我正在使用sklearn Kmeans Minibatch对大型数据进行集群,但是出现内存错误。

这是我在此配置下的笔记本电脑配置,可以正常工作:

  1. Core 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. Core i5 64位
  2. Python 3.6.2
  3. 16 GB 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

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

我知道这听起来很奇怪,但确实如此。

0 个答案:

没有答案