轮廓 (聚类)

聚类分析方法

在机器学习与数据挖掘领域,轮廓指的是一种反映数据聚类结果一致性的方法,可以用于评估聚类后簇与簇之间的离散程度。[1]轮廓的取值范围为[-1, +1],如果某一样本的轮廓接近1,则说明样本聚类结果合理;如果接近-1,则说明其更应该分类到其他的簇;如果轮廓近似为0,则说明该样本在两个簇的边界上。所有样本轮廓的均值称为聚类结果的轮廓系数(Silhouette Coefficiency),是该聚类是否合理、有效的度量。

定义

 
该图显示了Orange数据挖掘套件渲染的动物园数据集中的三种动物的轮廓。 在图底部的轮廓值反映了该数据集中海豚和鼠海豚是离群值(outlier)

假设某一数据集使用如k-means等聚类方法分成了  个簇:

对于某一属于簇 样本 ,记为   ,设 为样本  之间的距离,求算样本 与其他样本之间的平均距离的公式如下(由于不计算样本与自身的距离 ,故计算平均值时样本总数为 ):

 

上述公式结果记为 ,它反映了样本 当前聚类结果的优劣(值越小,聚类结果越好)。

然后,我们定义样本与某簇 的平均相异性为与样本 距离簇的平均值 到簇 内所有样本的距离均值 ( ),则对于样本  ,有 最小平均距离 对应的簇 ,我们称其为 的“相邻簇”:

 

结合上述内容,我们定义 的轮廓值为:

 

等效为:

 

对于上述定义,显然 

为了防止簇数量暴增,对于仅有一个样本的簇( ),定义其  反映了 与其所属簇的距离,较小的 值说明其与所属簇的关系紧密;而较大的 反映了 与其他簇关系疏远;故为提高 (或称为优化聚类结果),我们需要使 [2]

考夫曼(Kaufman)等人定义了轮廓系数(silhouette coefficient )的概念——在某个数据集的有限种聚类方法中,平均 的最大值[3]

 

上式中 代表被分为 个簇后该数据集的平均 


评价

轮廓系数一般不能用于横向评价多种聚类方法。凸簇(如经由DBSCAN方法得出的簇)的轮廓系数一般高于其他类型的簇。

 
途中蓝色线条是DBSCAN的轮廓系数,随着参数变化其SC迅速增大。然而实际聚类结果很差。

另见

  • Davies–Bouldin指数
  • k-medoids
  • 如何确定数据集中有多少簇

参考文献

  1. ^ Peter J. Rousseeuw. Silhouettes: a Graphical Aid to the Interpretation and Validation of Cluster Analysis. Computational and Applied Mathematics. 1987, 20: 53–65. doi:10.1016/0377-0427(87)90125-7. 
  2. ^ R.C. de Amorim, C. Hennig. Recovering the number of clusters in data sets with noise features using feature rescaling factors. Information Sciences. 2015, 324: 126–145. arXiv:1602.06989 . doi:10.1016/j.ins.2015.06.039. 
  3. ^ Leonard Kaufman; Peter J. Rousseeuw. Finding groups in data : An introduction to cluster analysis. Hoboken, NJ: Wiley-Interscience. 1990: 87. ISBN 9780471878766. doi:10.1002/9780470316801.