2016-12-27 144 views
2

我使用KMeans和python中的sklearn计算我的聚类的silhouette_score来计算我的聚类,但对于> 1000个样本,使用> 1000聚类计算silhouette_score非常缓慢。sklearn聚类:确定大型数据集上群集的最佳数量的最快方法

  1. 是否有更快的方法来确定最佳群集数量?
  2. 或者我应该改变聚类算法?如果是,那么对于数据集> 300.000个样本和大量集群来说,哪种算法是最好的(也是最快的)算法?

回答

2

寻找聚类数最常见的方法是弯曲曲线法。但它会要求您多次运行KMeans算法以绘制图形。 https://en.wikipedia.org/wiki/Determining_the_number_of_clusters_in_a_data_set维基页面提到了一些确定聚类数量的常用方法。

+0

此外,你可以使用一个算法,不需要群集的数量作为输入。 DBSCAN或HDBSCAN应根据您的数据集大小进行缩放。 – rth

+0

有没有办法用肘部弯曲法自动找到聚类数量? –

+0

根据我的理解,一个程序应该能够提供基于肘曲线启发式的聚类数量。 –

0

轮廓分数,而更有吸引力的措施之一,iw O(n^2)。这意味着,计算分数比计算k均值聚类要昂贵得多!

此外,这些分数只是启发式。他们不会以任何方式产生“最佳”聚类。他们只给出提示如何选择k,但很多时候你会发现其他k更好!所以不要盲目信任这些分数

相关问题