1、定义
聚类分析的评价指标也称为:性能度量指标
聚类算法聚类后,如何评价聚类结果,如何确定各聚类算法结果的优劣,如何确定聚类算法的参数值,可以通过聚类性能度量指标从一个侧面说明聚类算法和算法参数的选择。
聚类性能度量指标分为外部指标和内容指标。
2、外部指标:
外部指标,也就是有参考标准的指标,通常也可以称为有监督情况下的一种度量聚类算法和各参数的指标。具体就是聚类算法的聚类结果和已知的(有标签的、人工标准或基于一种理想的聚类的结果)相比较,从而衡量设计的聚类算法的性能、优劣。
外部指标主要有:
Jaccard系数(Jaccard Coefficient, JC)
FM指数(Fowlkes and Mallows Index, FMI)
Rand指数(Rand Index, RI)
F值(F-measure)
上述性能度量的结果值均在[0,1]区间,值越大越好,值越大表明聚类结果和参考模型的聚类结果越吻合,聚类结果就相对越好。
1)兰德系数(Rand index)RI: 需要给定实际类别信息C,假设K是聚类结果
RI取值范围为[0,1],值越大意味着聚类结果与真实情况越吻合。 对于随机结果,RI并不能保证分数接近零。为了实现“在聚类结果随机产生的情况下,指标应该接近零”,调整兰德系数(Adjusted rand index)被提出,它具有更高的区分度:
2)调整兰德系数(Adjusted rand index) ARI:取值范围为[-1,1],值越大意味着聚类结果与真实情况越吻合。从广义的角度来讲,ARI衡量的是两个数据分布的吻合程度。
优点:
对任意数量的聚类中心和样本数,随机聚类的ARI都非常接近于0; 取值在[-1,1]之间,负数代表结果不好,越接近于1越好; 可用于聚类算法之间的比较。 缺点:
ARI需要真实标签
3)互信息评分(Mutual Information based scores)与调整互信息( Adjusted mutual information):
利用基于互信息的方法来衡量聚类效果需要实际类别信息,MI取值范围为[0,1],AMI取值范围为[-1,1],它们都是值越大意味着聚类结果与真实情况越吻合。
优点:除取值范围在[0,1]之间,其他同ARI,可用于聚类模型选择; 缺点:需要先验知识。
3、内部指标:
内部指标是无监督的,无需基准数据集,不需要借助于外部参考模型,利用样本数据集中样本点与聚类中心之间的距离来衡量聚类结果的优劣。
内部指标主要有:
1)紧密度(Compactness):每个聚类簇中的样本点到聚类中心的平均距离。对应聚类结果,需要使用所有簇的紧密度的平均值来衡量聚类算法和聚类各参数选取的优劣。紧密度越小,表示簇内的样本点月集中,样本点之间聚类越短,也就是说簇内相似度越高。
2)分割度(Seperation):是个簇的簇心之间的平均距离。分割度值越大说明簇间间隔越远,分类效果越好,即簇间相似度越低。
3)戴维森堡丁指数(Davies-bouldin Index,DBI):该指标用来衡量任意两个簇的簇内距离之后与簇间距离之比。该指标越小表示簇内距离越小,簇内相似度越高,簇间距离越大,簇间相似度低。
4)邓恩指数(Dunn Validity Index,DVI):任意两个簇的样本点的最短距离与任意簇中样本点的最大距离之商。该值越大,聚类效果越好。
5)轮廓系数 (Silhouette Coefficient):对于一个样本集合,它的轮廓系数是所有样本轮廓系数的平均值。轮廓系数的取值范围是[-1,1],同类别样本距离越相近不同类别样本距离越远,分数越高。
4、常见的评价指标及计算
常见的评价指标有:纯度(Purity)、兰德系数(Rand Index, RI)、F值(F-score)和调整兰德系数(Adjusted Rand Index,ARI),同时,这四种评价指标也是聚类相关论文中出现得最多的评价方法。
假设现在有一批文档一共包含有叉形、圆形与菱形三个类别,此时你需要对其进行聚类处理,且现在某聚类算法的聚类结果如图1所示:
图 1. 文本聚类结果
如图1所示,该聚类算法一共将所有的文本划分成了三个簇,那么我们该怎么来对这一结果进行评判呢?
4.1聚类纯度
在聚类结果的评估标准中,一种最简单最直观的方法就是计算它的聚类纯度(purity),别看纯度听起来很陌生,但实际上和分类问题中的准确率有着异曲同工之妙。因为聚类纯度的总体思想也用聚类正确的样本数除以总的样本数,因此它也经常被称为聚类的准确率。只是对于聚类后的结果我们并不知道每个簇所对应的真实类别,因此需要取每种情况下的最大值。具体的,纯度的计算公式定义如下:
其中表示总的样本数;表示一个个聚类后的簇,而表示正确的类别;表示聚类后第个簇中的所有样本,表示第个类别中真实的样本。在这里的取值范围为,越大表示聚类效果越好。
有了公式之后,我们就可以通过它来计算图1中聚类结果的纯度。对于第一个簇来说:,,,可以看出我们此时假设对应的是叉形、对应的是圆形、对应的是菱形(这个对应顺序没有任何关系)。因此第一个簇聚类正确的样本数就为。同理,按照这样的方法可以计算得到第二个簇和第三个簇聚类正确的样本数和。所以,对于图1所示的聚类结果来说,其最终的纯度为:
4.2 兰德系数与F值
4.2.1 计算原理
在介绍完了纯度这一评价指标后,我们再来看看兰德系数(Rand Index)和F值。虽然兰德系数听起来是一个陌生的名词,但它的计算过程却也与准确率的计算过程类似。同时,虽然这里也有一个叫做F值的指标,并且它的计算过程也和分类指标中的F值类似,但是两者却有着本质的差别。说了这么多,那这两个指标到底该怎么算呢?同分类问题中的混淆矩阵类似,这里我们也要先定义四种情况进行计数,然后再进行指标的计算。
为了说明兰德系数背后的思想,我们还是以图1中的聚类结果为例进行说明(为了方便观察,我们再放一张图在这里):
图 1. 文本聚类结果
现在你想象一下,把这三个簇想象成三个黑色的布袋。那么对于任意一个布袋来说:①如果你从里面任取两个样本出来均是同一个类别,这就表示这个布袋中的所有样本都算作是聚类正确的;②相反,如果取出来发现存在两个样本不是同一类别的情况,则就说明存在着聚类错误的情况。其次,对于任意两个布袋来说:③如果你任意从两个布袋中各取一个样本发现两者均是不同类别,这就表示两个布袋中的样本都被聚类正确了;④相反,如果发现取出来的两个样本存在相同的情况,则说明此时也存在着聚类错误的情况。大家想一想,应该再也找不出第五种情况了。由此,我们可以做出如下定义:
:表示两个同类样本点在同一个簇(布袋)中的情况数量;
:表示两个非同类样本点在同一个簇中的情况数量;
:表示两个非同类样本点分别在两个簇中的情况数量;
:表示两个同类样本点分别在两个簇中的情况数量;
由此,我们便能得到如下所示的对混淆矩阵(Pair Confusion Matrix):
图 2. 对混淆矩阵图
其中图2右边所示的矩阵就是根据图1中的聚类结果计算而来。因此,的含义就是在所有簇中,任一簇中任取两个样本均是同一类别的情况总数;则表示在所有簇中,任两簇中各取一个样本均不是同一类别的情况总数。
有了上面各种情况的统计值,我们就可以定义出兰德系数和F值的计算公式:
从上面的计算公式来看,从形式上看都非常像分类问题中的准确率与F值,但是有着本质的却别。同时,在这里和的取值范围均为,越大表示聚类效果越好。
4.2.2 计算过程
同时,根据公式我们就能够计算得到图1中聚类结果的兰德系数和F1值分别为:
现在最后的结果是计算完了,但还有一个疑问没有解决的就是图2中各个情况下的值到底是怎么得来的。那下面我们就来开始一一的进行计算:
①表示两个同类样本点在同一个簇中的情况数量,因此根据图1中的聚类结果有:
其分别表示的含义是,对于簇1来说5个叉形中取2个的情况;对于簇2来说4个圆形中取2个的情况;对于簇3来说3个菱形中取2个以及2个叉形中取2个的情况。
在计算完成后,我们发现其它三种情况都无法单独的进行计算了(因为都是交叉混合的情况),因此我们可以同时计算多种组合下的情况数。
②由四种情况的定义可知,表示的就是同一簇中任取两个样本点的情况数(包含了同类和非同类),因此根据图1中的聚类结果有:
③同理,表示的就是任意两个同类样本点分布在同一个簇和非同一个簇的所有情况总和,所以有:
其分别表示的含义是,对于叉形样本来说8个中任取2个就包含了任意2个样本点在同一簇中和不在同一簇中的所有情况,其它两个类别的含义类似。
④同时,根据前面的分析可知,对于聚类后的结果(如图1所示)不管你是在某一个簇中任取2个样本,还是说你在任意不同的2个簇中各取1个样本,所有可能出现的情况都只会有上面的四种,所以有:
由此,根据等式,我们便可以分别计算出:
当然,计算的思路也不止一种,你同样还可以用其它的方法来计算得到。
4.3 调整兰德系数
调整兰德系数是兰德系数的一个改进版本,目的是为了去掉随机标签对于兰德系数评估结果的影响。例如对于图1中的17个样本,你随机将每个样本都划到一个簇中(也就是17个簇),那么其计算出来的兰德系数仍旧,此时的。那具体的ARI该怎么计算呢?下面我们还是以图1中的聚类结果为例来进行讲解。
图 3. 聚类结果与标签
如图3所示,表示聚类算法认为的结果,而表示我们根据正确标签标记后的结果。换句话说,聚类算法之所以把这些样本划到一个簇中,就是因为算法觉得它们应该在一个簇中,也就是所呈现的结果(站在算法的角度);而则是根据正确标签标记后的结果,指处了中每个簇哪些样本是划分错误的情况(站在已知标签的角度)。因此,根据聚类得到的结果和真实标签我们便能得到如下所示的列联表( contingency table):
其中表示聚类得到个簇的集合,而表示根据正确标签对聚类结果修正后的集合,表示与相交部分的样本数量,即。
根据这张列联表我们便能够得到ARI的计算公式:
其中的取值范围为,越大也就表示聚类效果越好。
虽然上面这张表和公式开起来很复杂,但其实只要你看一遍具体的计算过程就会发现也就那么回事。根据图3的结果,我们就能够得到如下所示的列联表:
根据此表可得:
所以有:
同时,根据等式各部分的意义我们还可以将公式写成:
原文:https://juejin.cn/post/7095699930622197791