轮廓 (聚类)

维基百科,自由的百科全书

在机器学习与数据挖掘领域,轮廓指的是一种反映数据聚类结果一致性的方法,可以用于评估聚类后簇与簇之间的离散程度。[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.