轮廓 (聚类)
在机器学习与数据挖掘领域,轮廓指的是一种反映数据聚类结果一致性的方法,可以用于评估聚类后簇与簇之间的离散程度。[1]轮廓的取值范围为[-1, +1],如果某一样本的轮廓接近1,则说明样本聚类结果合理;如果接近-1,则说明其更应该分类到其他的簇;如果轮廓近似为0,则说明该样本在两个簇的边界上。所有样本轮廓的均值称为聚类结果的轮廓系数(Silhouette Coefficiency),是该聚类是否合理、有效的度量。
定义
假设某一数据集使用如k-means等聚类方法分成了 个簇:
对于某一属于簇 样本 ,记为 ,设 为样本 与 之间的距离,求算样本 与其他样本之间的平均距离的公式如下(由于不计算样本与自身的距离 ,故计算平均值时样本总数为 ):
上述公式结果记为 ,它反映了样本 当前聚类结果的优劣(值越小,聚类结果越好)。
然后,我们定义样本与某簇 的平均相异性为与样本 距离簇的平均值 到簇 内所有样本的距离均值 ( ),则对于样本 ,有 最小平均距离 对应的簇 ,我们称其为 的“相邻簇”:
结合上述内容,我们定义 的轮廓值为:
等效为:
对于上述定义,显然
为了防止簇数量暴增,对于仅有一个样本的簇( ),定义其 。 反映了 与其所属簇的距离,较小的 值说明其与所属簇的关系紧密;而较大的 反映了 与其他簇关系疏远;故为提高 (或称为优化聚类结果),我们需要使 [2]。
考夫曼(Kaufman)等人定义了轮廓系数(silhouette coefficient )的概念——在某个数据集的有限种聚类方法中,平均 的最大值[3]:
上式中 代表被分为 个簇后该数据集的平均 。
评价
轮廓系数一般不能用于横向评价多种聚类方法。凸簇(如经由DBSCAN方法得出的簇)的轮廓系数一般高于其他类型的簇。
另见
- Davies–Bouldin指数
- k-medoids
- 如何确定数据集中有多少簇
参考文献
- ^ 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.
- ^ 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.
- ^ 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.