层次聚类的评价---共性分类相关系数(cophenetic
correlation coeffieient,CPCC)
一个聚类树的共性分类相关性是指由聚类树得到的共性分类距
离与构造树时的原始距离(相异性)之间的线性相关系数,因此它是
对聚类树在多大程度上代表了样本之间相异性的度量。
MATLAB 中,用 cohenetic 计算该相关系数,输入参数为 pdist
函数输出的样本对距离向量 Y 和由 linkage 函数输出的层次聚类树 Z,
相关系数越接近于 1,说明聚类效果越好。
该系数的计算公式为:
其中, ijY 是 Y 中样本 i 和 j 之间的距离, ijZ 是 Z(:,3)中样本 i 和 j 的共
性分类距离,y 和 z 分别是 Y 和 Z(:,3)的平均值。
聚类个数的选择
Inconsistent 函数用来计算层次聚类树矩阵 Z 中每次并类得到的链
接的不一致系数,输入参数为 linkage 函数创建的聚类树矩阵 Z 和计
算涉及的链接的层数 d,可以理解为计算的深度,d 省略时默认为 2。
输出参数为一个(n-1)*4 的矩阵,第 4 列代表不一致系数。在并类
过程中,如果某一次并类所对应的不一致系数较上一次有大幅增加,
说明该次并类的效果不好,而它上一次的并类效果是比较好的,不一
致系数增加幅度越大,说明上一次并类效果越好。在类的个数尽量少
的前提下,可参照不一致系数的变化,确定最终的分类个数。如果最
后 3 次聚类的不一致系数为 3.1333,1.2083 和 2.5671,这说明倒数第
一类并类的效果是比较好的,此时原样品被分为 2 类。
聚类效果的评价
聚类的有效性可以用凝聚度和分离度来衡量,凝聚度度量的是类
中对象如何紧密相关,分离度度量的是某个类不同于其他类的地方。
轮廓值(silhouette value)方法结合了凝聚度和分离度,它衡量的是
某个点和所在类其它点的相似度与其他类点的相似度的比较,定义为
( )
S i
( )
min( ( ,:),2)
a i
max( ( ),min( ( ,:)))
b i
a i
b i
其中,a(i)是第i个点与所在类中其他点的距离的平均值,b(i,k)
是第i个点与另一个类k中的点的距离的平均值,S(i)是第i个点得轮廓
值,值域在[-1,1]。我们不希望出现负值,因为负值表示点到类内点
的平均距离a(i)大于点到其他类的最小平均距离min(b(i,:))。我们希望
轮廓值是正的,越接近1越好,当轮廓值小于0时,明第i个点的分类不
合理,还有比目前分类更合理的方案。
我们可以简单地取类中点得轮廓值的平均值,计算类的平均轮廓
系数。通过计算所有点的平均轮廓系数,可以得到聚类优良性的总度
量。
MATLAB 中通过 silhouette 函数来计算每个点得轮廓值并用图形
演示,输入参数为样本观测值矩阵 X 和聚类结果 Class,可画出轮廓
图。
不同的聚类方法结果都可以用该指标进行评价。