使用具有200个簇的k均值聚集一组100'2000 L2归一化2048-dim特征向量需要多长时间?我将所有数据放在一个巨大的数据块中,也许有更合适的数据结构?
一小时内似乎没有任何进展。我也倾向于使用阈值停止标准,但似乎只需要5分钟就可以进行2次迭代。是否有某种冗长的命令我可以用来检查scikit-learn上的kmeans聚类的进度?有没有人建议任何其他方法?也许就像维数减少,或PCA,然后kmeans? (我只是在那里抛出随机的想法)
答案 0 :(得分:5)
如果您还没有尝试过,请使用sklearn.cluster.MiniBatchKMeans
代替sklearn.cluster.KMeans
,例如X.shape = (100000, 2048)
,然后写
from sklearn.cluster import MiniBatchKMeans
mbkm = MiniBatchKMeans(n_clusters=200) # Take a good look at the docstring and set options here
mbkm.fit(X)
MiniBatchKMeans
发现与正常KMeans
略有不同的群集,但具有巨大的优势,即它是一种在线算法,在每次迭代时都不需要所有数据,并且仍能提供有用的结果。