一、轮廓系数的概念
聚类是没有标签,即不知道真实答案的预测算法,我们必须 完全依赖评价簇内的稠密程度(簇内差异小)和簇间的离散程度(簇外差异大)来评估聚类的效果。其中轮廓系数是最常用的聚类算法的评价指标。它是对每个样本来定义的,它能够同时衡量:
(1) 样本与其自身所在的簇中的其他样本的相似度,等于样本与同一簇中所有其他点之间的平均距离,这个距离记作a。
(2)样本与其他簇中的样本的相似度,等于样本与下一个最近的簇中的所有点之间的平均距离,这个距离记作b。
二、轮廓系数的计算
根据聚类的要求”簇内差异小,簇外差异大“,我们希望 b 永远大于 a,并且大得越多越好。单个样本的轮廓系数计算为:
这个公式可以被解析为:
很容易理解轮廓系数范围是(-1,1):
(1)轮廓系数越接近 1: 此时a接近0,样本与自己所在的簇中的样本很相似,并且与其他簇中的样本不相似。
(2)轮廓系数为 0 时: 此时a=b,两个簇中的样本相似度一致,两个簇本应该是一个簇。
(3)轮廓系数为负时:样本点与簇外的样本更相似。
如果一个簇中的大多数样本具有比较高的轮廓系数,则簇会有较高的总轮廓系数,则整个数据集的平均轮廓系数越高,则聚类是合适的。
如果许多样本点具有低轮廓系数甚至负值,则聚类是不合适的,聚类的超参数 K 可能设定得太大或者太小。
问题延伸: 如何计算轮廓系数?