我正在使用 sklearn Kmeans Minibatch 对大数据进行聚类,但出现内存错误。
这是我在此配置上的笔记本电脑配置,它工作正常:
- 酷睿 i5 64 位
- Python 3.6.2
- 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 文件夹)时,它会出现内存错误。即使另一台笔记本电脑的配置很高:
- 酷睿 i5 64 位
- Python 3.6.2
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
我检查了所有必需的库和其他依赖项,但它在低配置笔记本电脑上运行良好。为什么它不能在高配置笔记本电脑上运行?
我知道这听起来很奇怪,但这是真的。