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

4

我使用Python中的scikit-learn库中的KMeans算法和silhouette_score来计算聚类,但是在样本数量超过10,000并且有超过1,000个簇的情况下,计算silhouette_score非常缓慢。

  1. 是否有更快的方法来确定最佳聚类数?
  2. 或者我应该改变聚类算法?如果是这样,对于一个包含超过300,000个样本和很多簇的数据集来说,哪种算法是最好(也是最快)的?
3个回答

5

轮廓系数是一种相对有吸引力的指标,但其时间复杂度为O(n^2)。这意味着,计算轮廓系数比计算k-means聚类要昂贵得多!

此外,这些分数仅是启发式的。它们无法通过任何方式产生“最佳”聚类。它们只是给出关于如何选择k的提示,但很常见的情况是其他k更好!因此,请不要盲目信任这些分数。


3

另外,您可以使用不需要聚类数量作为输入的算法。DBSCAN或HDBSCAN应该能够很好地适应您的数据集大小。 - rth
有没有一种自动使用肘部曲线方法找到聚类数量的方法? - C-Jay
据我理解,一个程序应该能够根据肘部曲线启发式方法提供聚类数量。 - Trishansh Bhardwaj

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接