我使用haifengl/smile
,我需要获得最佳的簇号。
我在使用CLARANS
时需要指定要创建的群集数量。我认为也许有一些解决方案可以对2到10个群集进行分类,查看最佳结果,然后选择具有最佳结果的群集数目。用肘形法怎么做?
答案 0 :(得分:2)
要确定适当的聚类数量,以使聚类中的元素彼此相似,而与其他组中的元素不相似,可以通过应用多种技术来找到;
Gap Statistic-在数据的空引用分布下,比较k的不同值在群集内变化中的总和其期望值。
Silhouette Method的最佳聚类数k是在k的可能值范围内最大化平均轮廓的数量。
平方和方法
有关更多详细信息,请阅读关于此主题的sklearn documentation。
答案 1 :(得分:1)
肘部方法不是自动的。
您可以计算出所需k范围的分数,将其绘制出来,然后在视觉上尝试找到一个“肘部”-可能有效也可能无效。
由于x和y彼此之间没有“正确”的关系,请注意对图形的解释(以及使图形自动化的任何几何尝试)取决于图形的比例,并且本质上是主观的。最后,“肘”的整个概念很可能是有缺陷的,而且听起来不是这样。我宁愿寻找更高级的度量标准,在其中可以主张最大或最小值,尽管一些“明显更好的k”的概念是可取的。
答案 2 :(得分:0)
查找集群的方法:
1-轮廓法:
使用分离和内聚或仅使用一种已实现的方法,群集的最佳数量就是轮廓系数最大的群集。 *轮廓系数范围从[-1,1]到1是最佳值。 Example of the silhouette method with scikit-learn。
2-肘法(您可以自动使用肘法)
肘形方法是簇数与距离的平均平方和之间的图表。 要在python中自动应用,需要在python中有一个库Kneed来检测图中的膝盖。Kneed Repository