Kmeans将时间聚集在scikit上

Art*_*uro 2 machine-learning k-means python-2.7 scikit-learn

使用具有200个簇的k均值聚集一组100'2000 L2归一化2048-dim特征向量需要多长时间?我将所有数据放在一个巨大的数据块中,也许有更合适的数据结构?

它似乎没有在一小时内取得任何进展.我也倾向于使用阈值停止标准,但似乎只需要5分钟就可以进行2次迭代.是否有某种冗长的命令我可以用来检查scikit-learn上的kmeans聚类的进度?有没有人建议任何其他方法?也许就像维数减少,或PCA,然后kmeans?(我只是把随机的想法扔出去)

eic*_*erg 5

如果您还没有尝试过,请使用sklearn.cluster.MiniBatchKMeans而不是sklearn.cluster.KMeans

例如,if 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)
Run Code Online (Sandbox Code Playgroud)

MiniBatchKMeans发现与正常情况略有不同的集群KMeans,但具有巨大的优势,即它是一种在线算法,在每次迭代时都不需要所有数据,仍能提供有用的结果.