gpt4 book ai didi

machine-learning - Scikit learn 的 Spectral clustering 函数可以处理多大的矩阵大小?

转载 作者:行者123 更新时间:2023-11-30 09:10:10 28 4
gpt4 key购买 nike

我正在使用 scikit learn 的“谱聚类”功能。我能够对 8100 x 8100 矩阵执行聚类,但此函数会对 10000 x 10000 矩阵抛出错误。

有人用过这个函数来处理大矩阵吗?

编辑:我收到以下错误消息:

    Not enough memory to perform factorization.
Traceback (most recent call last):
File "combined_code_img.py", line 287, in <module>
labels=spectral.fit_predict(Affinity)
File "/root/anaconda/lib/python2.7/site-packages/sklearn/base.py",
line 410, in fit_predict
self.fit(X)
File "/root/anaconda/lib/python2.7/site-packages/sklearn/cluster/spectral.py", line 463, in fit
assign_labels=self.assign_labels)
File "/root/anaconda/lib/python2.7/site-packages/sklearn/cluster/spectral.py", line 258, in spectral_clustering
eigen_tol=eigen_tol, drop_first=False)
File "/root/anaconda/lib/python2.7/site-packages/sklearn/manifold/spectral_embedding_.py", line 265, in spectral_embedding
tol=eigen_tol, v0=v0)
File "/root/anaconda/lib/python2.7/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py", line 1560, in eigsh
symmetric=True, tol=tol)
File "/root/anaconda/lib/python2.7/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py", line 1046, in get_OPinv_matvec
return SpLuInv(A.tocsc()).matvec
File "/root/anaconda/lib/python2.7/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py", line 907, in __init__
self.M_lu = splu(M)
File "/root/anaconda/lib/python2.7/site-packages/scipy/sparse/linalg/dsolve/linsolve.py", line 261, in splu
ilu=False, options=_options)
MemoryError

我的机器有 16 GB 内存。

最佳答案

谱聚类算法的时间复杂度约为 O(n3),空间复杂度相当差,因为 16 GB RAM 的内存已耗尽,无法处理约 0.8 GB 数据集(10000x10000 数组,假设 64 位 float )。因此它不适合大型数据集。

相反,您应该使用可扩展性更好的聚类算法。请参阅以下取自 HDBSCAN documentation 的基准测试, clustering scaling

例如,MiniBatchKMeans、scikit-learn 中的 DBSCAN 或 HDBSCAN 的扩展性会更好。

关于machine-learning - Scikit learn 的 Spectral clustering 函数可以处理多大的矩阵大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41429084/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com