使用带有Silhouette功能的k-means聚类时如何选择k?

时间:2013-08-17 05:23:21

标签: matlab cluster-analysis k-means

我一直在研究k-means聚类,还有一个不太明显的问题是Silhouette函数真正告诉我的是什么?

我知道它表明适当的k应该是detemine,但我不明白剪影功能的真正含义是什么?

我在某处读到,如果轮廓的平均值小于0.5,则你的聚类无效。

提前感谢您的回答。

3 个答案:

答案 0 :(得分:3)

根据silhouette的定义:

  

剪影价值

     

每个点的轮廓值是衡量它的相似程度的标准   point是指其自身群集中的点与其他点中的点相比   簇,范围从-1到+1。

     

第i个点的轮廓值Si定义为

     

Si =(bi-ai)/ max(ai,bi)其中ai是距离第i个的平均距离   指向与i相同的簇中的其他点,bi是   从第i个点到不同点的最小平均距离   群集,最小化群集。

该方法仅将组内相似性与最接近的组相似性进行比较。如果任何数据成员与同一群集的其他成员的平均距离高于到某些其他群集成员的平均距离,则此值为负且群集不成功。另一方面,silhuette值接近1表示成功的聚类操作。 0.5不是聚类的精确度量。

答案 1 :(得分:0)

@fatihk给了一个很好的引用;

  • 另外,你可以将Silhouette值视为一个度数 群集如何相互重叠,即-1:完全重叠, +1:群集是完全可分的;
  • 但是特定算法的低轮廓值并不意味着没有群集,而是意味着所使用的算法无法分离群集,您可以考虑调整算法或使用不同的算法(考虑K-means用于同心圈子,与DBSCAN)。

答案 2 :(得分:-1)

有一个与elbow方法关联的显式公式可以自动确定簇数。该公式告诉您使用肘部方法确定簇数时所检测到的肘部强度,请参见here。请参见此处的插图: Enhanced Elbow rule