查看原文
其他

第10.6节 聚类评价外部指标

空字符 月来客栈 2024-01-21

各位朋友大家好,欢迎来到月来客栈,我是掌柜空字符。

本期推送内容目录如下,如果本期内容对你有所帮助,欢迎点赞、转发支持掌柜!

  • 10.6 聚类外部评估指标
    • 10.6.1 聚类纯度
    • 10.6.2 兰德系数与F值
    • 10.6.3 调整兰德系数
    • 10.6.4 聚类指标示例代码
    • 10.6.5 小结
  • 引用

10.6 聚类外部评估指标

经过前面几节内容的介绍,相信各位读者对于聚类算法已经有了一定的了解。不过正如之前介绍的分类算法模型一样,对于聚类算法来讲同样也会通过一些评价指标来衡量聚类算法的优与劣。在聚类任务中,常见的评价指标有纯度(Purity)、兰德系数(Rand Index, RI)、F值(Fscore)和调整兰德系数(Adjusted Rand Index,ARI)。同时,这4种评价指标也是聚类相关论文中出现得最多的评价方法。下面,笔者就来对这4种指标一一进行介绍。

假设现在有一批文档,一共包含叉形、圆形与菱形3个类别。此时需要对其进行聚类处理,并且现在某聚类算法的聚类结果如图10-8所示。

图 10-8 文档聚类结果

从图10-8可知,该聚类算法将所有的文本一共划分成了3个簇。面对这样的聚类结果,应该怎样来对其进行评判呢?

10.6.1 聚类纯度

在聚类结果的评估标准中,一种最简单最直观的方法就是计算它的聚类纯度(Purity)。别看纯度听起来很陌生,但实际上和分类问题中的准确率有着异曲同工之妙。因为聚类纯度的总体思想也用聚类正确的样本数除以总的样本数,因此它也经常被称为聚类的准确率。只是对于聚类后的结果我们并不知道每个簇所对应的真实类别,因此需要取每种情况下的最大值。具体地,将纯度的计算公式定义为[1]

其中,表示总的样本数;表示一个个聚类后的簇;而表示正确的类别;ωk表示聚类后第k个簇中的所有样本;cj表示第j个类别的真实样本数。在这里P的取值范围为,其值越大表示聚类效果越好。

有了式(10.8)后就可以通过它来计算图10-8中聚类结果的纯度。对于第1个簇来讲,,可以看出此时假设对应的是叉形、对应的是圆形、对应的是菱形(这个对应顺序没有任何关系),因此第1个簇聚类正确的样本数为5。同理,按照这样的方法可以计算得到第2个簇和第3个簇聚类正确的样本数分别为4和3,所以对于图10-8所示的聚类结果来讲,其最终的纯度为

10.6.2 兰德系数与F值

在介绍完纯度这一评价指标后,我们再来看一看兰德系数(Rand Index)和F值。虽然兰德系数听起来是一个陌生的名词,但它的计算过程却与准确率的计算过程类似。同时,虽然这里也有一个叫做F值的指标,并且它的计算过程也和分类指标中的F值类似,但是两者却有着本质的差别。讲了这么多,这两个指标到底该怎么算呢?同分类问题中的混淆矩阵类似,这里也要先定义4种情况以便进行计数,然后进行指标的计算。

1. 计算原理

为了说明兰德系数背后的思想,笔者这里还是以图10-8中的聚类结果为例进行说明。现在请各位读者想象一下,把这3个簇想象成3个黑色的布袋。对于任意一个布袋来讲:①如果从里面任取两个样本均是同一个类别,这就表示这个布袋中的所有样本都算作是聚类正确的。②相反,如果取出来后发现存在两个样本不是同一类别的情况,则说明存在着聚类错误的情况。

其次,对于任意两个布袋来讲。③如果任意从两个布袋中各取一个样本后发现两者均是不同类别的,这就表示两个布袋中的样本都被聚类正确了。④相反,如果发现取出来的两个样本存在相同的情况,则说明此时也存在着聚类错误的情况。各位读者想一想,此时应该再也找不出第5种情况了。由此,可以做出如下定义。

TP:表示两个同类样本点在同一个簇(布袋)中的情况数量。

FP:表示两个非同类样本点在同一个簇中的情况数量。

TN:表示两个非同类样本点分别在两个簇中的情况数量。

FN:表示两个同类样本点分别在两个簇中的情况数量。

由此,根据图10-8所示的聚类结果便可以得到如表103所示的对混淆矩阵(Pair Confusion Matrix)。

表 10-3 对混淆矩阵

其中表10-3里TP=20的含义是在所有簇的任一簇中任取两个样本均是同一类别的情况总数。TN=72则表示在所有簇的任两簇中各取一个样本均不是同一类别的情况总数。

有了上面各种情况的统计值后便可以定义出兰德系数和F值的计算公式为[1]

从上面的计算公式来看,式(10.10)~式(10.13)从形式上看都非常像分类问题中的准确率与值,但是有着本质的区别。同时,在这里 的取值范围均为[0,1],取值越大表示聚类效果越好。

2. 计算过程

同时,根据式(10.10)~式(10.13)就能够计算得到图10-8中聚类结果的兰德系数和F1值分别为

现在最后的结果计算完了,但还有一个疑问没有解决,即表10-3中各个情况下的值到底是怎么得来的。下面笔者就来对每个值进行计算。

(1) 表示两个同类样本点在同一个簇中的情况数量,因此根据图10-8中的聚类结果有

其分别表示的含义是,对于簇1来讲从5个叉形中取2个的情况;对于簇2来讲从4个圆形中取2个的情况;对于簇3来讲从3个菱形中取2个及从2个叉形中取2个的情况。

在计算完成后,我们发现其他3种情况都无法单独地进行计算(因为都是交叉混合的情况),因此可以同时计算多种组合下的情况数。

(2) 由4种情况的定义可知,表示的是同一簇中任取两个样本点的情况数(包含了同类和非同类),因此根据图10-8中的聚类结果有

(3) 同理,表示的是任意两个同类样本点分布在同一簇和非同一簇的所有情况的总和,所以有

其分别表示的含义是,对于叉形样本来讲从8个中任取2个就包含了任意2个样本点在同一簇中和不在同一簇中的所有情况,其他两个类别的含义类似。

为你认可的知识付费,欢迎订阅本专栏阅读更多优质内容!

(4) 同时,根据前面的分析可知,对于聚类后的结果(如图10-8所示)不管是在某一个簇中任取2个样本,还是在任意不同的2个簇中各取1个样本,所有可能出现的情况都只有上面的4种情况,所以有

继续滑动看下一个

第10.6节 聚类评价外部指标

空字符 月来客栈
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存