轮廓系数的快速计算方法
轮廓系数(Silhouette Coefficient)用来评估聚类的效果。但是,其缺陷是计算复杂度为,需要计算距离矩阵,那么当数据量上到百万,甚至千万级别时,计算开销会非常巨大(想想也是醉了,从来不敢在这个量级上计算轮廓系数)。现在讨论一种快速计算轮廓系数的方法,将复杂度降为,同时简单的分析快速计算方法与原始方法的效果差异。
快速方法
大致思路是计算每个点与k个簇的平均中心点的距离的平方,使用这个距离表示每个点与簇的距离关系,而不是原始定义中使用每个点与每个簇的平均距离平方和。使用表示原始方法的欧式距离,表示快速计算方法,假设某个簇有n个点,任意点为,如下
现在计算两个距离的差值,
根据柯西不等式变形式,恒成立 所以,快速计算法计算的欧式距离永远小于原始计算方法。
轮廓系数应用于Kmeans聚类评估
轮廓系数的计算公式如下
其中是到本类的聚类,是到最近的其他簇的距离,由于kmeans算法,恒成立,所以。但是由于快速算法的结果均比原始方法小,导致并不能明显的看出轮廓系数在两种计算方法上的大小关系,所以从目前来看,并不能否认快速计算方法与原始计算方法有明显的差异。
参考
您的打赏是对我最大的鼓励!