sklearn聚类:确定大型数据集上最佳聚类数的最快方法

时间:2016-12-27 10:33:35

标签: python scikit-learn cluster-analysis data-mining bigdata

我在python中使用KMeans和sklearn中的silhouette_score来计算我的群集,但是在> 10.000个样本中使用> 1000群集计算silhouette_score非常慢。

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

2 个答案:

答案 0 :(得分:3)

查找簇数的最常用方法是弯曲曲线法。但它需要您多次运行KMeans算法来绘制图形。 https://en.wikipedia.org/wiki/Determining_the_number_of_clusters_in_a_data_set维基页面提到了一些确定群集数量的常用方法。

答案 1 :(得分:3)

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

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