Cluster analysis :Basic Concepts and Algorithms -- Part 5 Cluster Evalation

系列文章

Cluster analysis :Basic Concepts and Algorithms – Part 1 Overview
Cluster analysis :Basic Concepts and Algorithms – Part 2 K-means
Cluster analysis :Basic Concepts and Algorithms – Part 3 Hierarchical Clustering
Cluster analysis :Basic Concepts and Algorithms – Part 4 Density-based clustering(DBSCAN)


关键词
簇评估(Cluster Evalation); 监督(supervised) ; 非监督(unsupervised)
凝聚度(cluster cohesion) ; 分离度(cluster separation)
邻近度(proximity) ; 相似度(similarity)
邻近度矩阵(Proximity Matrix); 相似度矩阵(Similarity Matrix) ; 混淆矩阵(Confusion Matrix);
轮廓系数(silhouette coefficient) ; 相关性(Correlation); 聚类趋势(Clustering Tendency);
统计学(Statistics); 显著性(Significance) ;
熵(Entropy); 准确率(Accuracy); 纯度(Purity);
精度(Precision); 召回率(Recall); F度量(F-measure)

1 前言

前几节文章介绍了几种常见的不同的聚类方法,实际上每种聚类算法都会在数据集中发现簇,即使该数据集中根本没有自然簇(如随机的数据点),下图展示了三种聚类方法对随机数据点的聚类结果。因此对于聚类效果进行评价是必要的。在这里插入图片描述
图1-1 不同的聚类算法从随机数据中找到的簇

对于聚类分析的评价,不仅仅是评估生成的簇的好坏那么简单,评估的目的在于:

  • 避免将噪声识别为一定模式的簇(To avoid finding patterns in noise)
  • 对比不同的聚类算法(To compare clustering algorithms)
  • 对比两个不同的簇群(To compare two sets of clusters)
  • 对比两个簇(To compare two clusters)

簇评估(Cluster Evalation),或者 簇验证(cluster validation),最重要的任务之一就是:识别数据中是否存在非随机结构(non-random structure),主要解决的几个重要问题:

  • 确定数据集的聚类趋势(cluster tendency) ,是否存在非随机结构。
  • 确定正确的簇个数
  • 在不参考外部信息的情况下,评估聚类分析结果对数据的拟合情况。
  • 将聚类分析结果同已经知道的客观结果(如外部提供的标号)对比。
  • 对比两个簇集哪个更好。

第1-3项不使用外部信息,是内部非监督技术(internal unsupervised);第四项是使用了外部信息(external),是监督技术(supervised);第5项可以采用监督或者非监督的技术。随后将介绍监督(supervised)和非监督(unsupervised)的概念。

2 簇评估概述

评价指标一般分成三类:

  • 非监督(unsupervised):在不引入任何外部参考信息的情况下,来评价聚类结构的好坏。通常称作内部指标。
    ( Used to measure the goodness of a clustering structure without respect to external information; Often called internal indices because they only use information in the data )
    进一步可以划分成两类:
    (1)簇的凝聚度(cluster cohesion): 衡量簇中的对象之间的密切程度,例如SSE,簇内部的误差平方和。
    在这里插入图片描述
    其中,ci是簇Ci的质心,x是簇Ci中的点。
    复习一下:误差的平方和(Sum of the Squared Error,SSE):计算每个数据点的误差,即点到最近质心的欧几里得距离,然后计算所有误差的平方和。使得簇的SSE最小的质心就是均值。
    (2)簇的分离度(cluster separation): 衡量一个簇同其他簇的区别或者分离程度,例如SSB,簇之间的误差平方和。在这里插入图片描述
    这里,mi是第i个cluster的大小,c是总体数据的质心。
  • 监督的(supervised):衡量聚类产生的簇标签同外部提供的类别标签的匹配度。通常称作外部指标。例如熵(Entropy)
    (Used to measure the extent to which cluster labels match externally supplied class labels; Often called external indices because they use information external to the data)
  • 相对的(relative)。同时使用监督的和非监督的评价方法,来比较不同的簇或者聚类。例如利用SSE和熵(Entropy)来比较两个K-means。

3 非监督的簇评估

3.0 邻近度概念

复习一下邻近度(proximity)的概念:邻近度指的是两个对象之间的相似度(similarity)或相异度(dissimilarity)。

  • 相似度(similarity):衡量两个对象相似程度的数字度量,通常在0(不相似)和1(完全相似)之间。常见的相似度,如余弦相似度cosine, 相关性指标correlation,Jaccard指标, Rand简单匹配系数等。
  • 相异度(dissimilarity):又称为距离,衡量两个对象差异程度的数值度量,对象越类似相异度越低。常见的距离函数如欧几里得距离,曼哈顿距离等。
  • 相似性和相异性之间可以进行转化。s作为相似度符号;d作为相异度符号。可使用公式s = 1−(d−min d)/(max d−min d)将距离转化成相似度。

3.1 使用凝聚度和分离度

对于不同的聚类,使用不同的有效性评价指标。对于划分的聚类,簇有效性评价多基于凝聚度和分离度。

3.1.1 基于图的凝聚度和分离度

回顾一下,基于图的簇(Graph-Based clusters)。簇内的点互相连通但不与簇外的对象连通。如基于邻近的簇(contiguous clusters/ Nearest neighbor or Transitive)。基于邻近的簇适用于当不规则或者缠绕的簇。
在这里插入图片描述
邻近度图:每对数据点之前有一条连线,赋予这个连线一个权重,该权重是两个数据点之间的邻近度。
在这里插入图片描述
使用邻近度图的方法来计算凝聚度和分离度:

  • 簇凝聚度(Cluster cohesion)是簇中点与点之间所有连线的加权和。
    在这里插入图片描述
  • 簇分离度(Cluster separation)是簇中的节点和簇外部的节点之间距离的加权和。
    在这里插入图片描述

3.1.2 基于原型的凝聚度和分离度

回顾一下:基于原型的簇(protetype-based clusters),也称作基于中心的簇(Center-based clusters):每个点到其簇原型的距离比到任何其他簇原型的距离更近。连续性变量簇原型通常是质心;分类型变量簇原型通常是中心点。这种簇趋向于球型(globular)。在这里插入图片描述
对于基于原型的簇,簇的凝聚度为簇原型(质心或者中心点)的邻近度的和。分离度可以用两个簇原型之间的邻近度表示。在这里插入图片描述
下面是基于原型的簇的凝聚度和分离度的公式,其中ci是簇Ci的原型(质心),c是总体原型(质心),即总体的均值:

  • 基于原型的凝聚度公式:
    在这里插入图片描述
    当邻近度取平方欧几里得距离时,则凝聚度即为簇的SSE。
    SSE越小,簇的凝聚度越好。

  • 簇原型和总体原型之间的分离度公式:
    在这里插入图片描述
    簇原型之间分离度公式:
    在这里插入图片描述
    当邻近度用欧几里得距离表示时,簇原型和总体原型之间分离度是组平方和(SSB), 即簇质心ci到所有数据点的总均值c的距离平方和。对所有簇的SSB求和,得到总SSB:
    在这里插入图片描述
    mi是簇Ci的大小,ci是簇Ci的质心。
    总SSB越高,簇之间的分离性越好。
    总SSB和质心与质心之间的距离dist(ci,cj)有直接关系(推导过程见文末)。特别是,如果簇的大小相等,即mi=m/K,则上面的公式简化为:
    在这里插入图片描述

3.1.3 基于图和基于原型的凝聚度之间的关系

欧几里得空间里,点对之间的平均距离等于簇的SSE:
在这里插入图片描述
为了简化,我们还是采用一维数据,y是簇Ci中的点,则簇Ci的质心ci为在这里插入图片描述在这里插入图片描述

3.1.4 凝聚度和分离度之间的关系

SSE:点到所在的簇质心的误差平方之和;SSB:各簇的质心同总体质心之间的误差。
总SSE与总SSB之和是一个常数,为总平方和TSS即每个数据点到数据总体质心的误差的平方和。为了简化,假定数据是一维的,则在这里插入图片描述。推导公式如下:
在这里插入图片描述
其中,mi是簇Ci的大小,ci是簇Ci的质心。
可以推导在这里插入图片描述
下面是凝聚度SSE和分离度SSB的例子:在这里插入图片描述

3.1.5 凝聚度和分离度总体评价

K个簇的总体有效性是个体簇有效性的加权后的和,则总体有效性指标的公式:
在这里插入图片描述
有效性函数validity()的计算方式有很多种,通常使用的邻近性proximity指标,如余弦相似度cosine, 相关性指标correlation, Jaccard指标, 和欧几里得距离的倒数(the inverse of Euclidean distance),也可以是多种指标的组合。当权重值w取1或者簇的大小,相当于平等的看待所有的簇。下表是簇的有效性指标和对应的权值,t1是基于邻近度图的凝聚度,用点对之间的之和来表示,t2基于原型的凝聚度,使用点同所在质心的邻近度之和来表示,在这里插入图片描述是基于原型的分离度,使用簇质心同总体质心的邻近度来表示,e2是基于图的分离度,使用不同簇的点对之间的邻近度之和来表示。邻近度越大,分离效果越好。(虽然e2代表分离度,但权重是采用凝聚度指标计算的)。G1是凝聚度和分离度的结合,计算簇内的点同簇外的点之间的邻近度之和(赋予一个权重,能够将簇同其他簇分离开,该权重等于1除以簇内点对之间相似度的和)
在这里插入图片描述

3.1.6 评估单个簇和对象点

之前的评估过程都是针对评估整体的聚类效果,即综合评估数据中的多个簇,但上述的方法同样可以用来评估单个簇或者对象点。

  • 评估单个簇。我们可以根据单个簇的评估值(如凝聚度,分离度)将一系列簇进行排序。通常具有高凝聚度的簇要比低凝聚的簇好,可以据此改善聚类的效果,如果单个簇凝聚性不好,就需要分裂成若干个子簇;如果两个簇的分离性不好,就要考虑合并成一个簇。
  • 评估对象点。评估对象点对所在簇的贡献。对于簇的凝聚度和分离度的贡献越大的点,越处于簇的内部,反之该点可能位于簇的边缘。
    紧接的下一节部分就是评估单个点,单个簇,以及整个簇的集合。

3.1.7 轮廓系数

轮廓系数(silhouette coefficient)结合了凝聚度和分离度。

轮廓系数的计算步骤(这里使用距离,也可使用相似度):

  • 计算第i个对象点到它所在的簇中所有其他对象点的平均距离,记作ai。
  • 计算第i个对象点到给定簇(不包含所在簇)中所有对象点的平均距离,并找出最小值,记作bi。
  • 则第i个对象点的轮廓系数:
    在这里插入图片描述

轮廓系数的值

  • 轮廓系数取值范围[-1,1]。
  • 通常轮廓系数是正值,即ai<bi。轮廓系数如果是负值,就代表点到所在簇内点的平均距离ai大于点到其他簇内的点的最小平均距离,证明聚类的效果不好。
  • 轮廓系数越接近于1越好。当ai=0, 轮廓系数Si=1。

簇平均轮廓系数
簇的平均轮廓系数:簇内的点的轮廓系数的平均值。所有点的平均轮廓系数则是聚类好坏的总评价指标。
下面是10个簇内的点的轮廓系数图,深色表示轮廓系数较小。
在这里插入图片描述

3.2 使用邻近度矩阵

算法思路: 理想的聚类效果是——簇内部的点之间的相似度为1,而与其他簇中的所有点的相似度为0。如果邻近度矩阵越接近理想的矩阵,那么聚类效果越好。

邻近度矩阵(Proximity Matrix)
将所有点对之间的邻近度值进行排列,使得属于相同簇的对象在一起,得到邻近度矩阵。邻近度矩阵中的元素可以是对象之间的相似度(similarity)或相异度(dissimilarity)。 常见的相似度,如余弦相似度cosine, 相关性指标correlation,Jaccard指标, Rand简单匹配系数等;常见的相异度(距离)如欧几里得距离,曼哈顿距离等。

理想的相似度矩阵(Ideal Similarity Matrix)

  • 每对点的相似度值占一行一列
  • 属于同一个簇的点对的相似度赋值为1
  • 属于不同簇的点对的相似度赋值为0
  • 矩阵成块对角(block diagonal)结构

邻近度矩阵和理想的相似度矩阵之间的相关性

  • 由于矩阵式对称的,只需要计算矩阵的n(n-1) / 2项的相关系数(右上方三角区域或者左下方三角区域)
  • 如果邻近度矩阵同理想的相似度矩阵呈高度相关,则表明属于同一个簇的点很紧密
  • 相关系数的正负取决于矩阵是基于相似度矩阵还是非相似矩阵
  • 对于基于密度的簇或者基于邻近的簇,采用该方法并不是好,因为簇是非球形或者缠绕在一起

举例子

  • 数据是明显分离的三个球形簇,使用K-means进行聚类,并计算簇的邻近度矩阵(下图中)同理想的相似度矩阵(下图右)的相关性,视觉上邻近度矩阵接近理想的相似度矩阵,相关性系数较高,Corr=0.9235。
    在这里插入图片描述
  • 对于随机数据点,使用K-means进行聚类,并计算矩阵相关性。明显可以看出图中的邻近度矩阵同理想的相似度矩阵差距较大,相关系数较低,Corr=0.5810。
    在这里插入图片描述
  • 可视化的观察聚类效果。采用三种不同的聚类方法(DBSCAN, K-means, 全链的层次聚类)对随机数据集进行聚类。在这里插入图片描述并采用s = 1−(d−min d)/(max d−min d)将距离转化成相似度,所得到的相似度矩阵如下图。
    在这里插入图片描述
    可见每一种聚类方法都可以在数据中找到簇,尽管数据点可能会是噪声。邻近度矩阵另外一个缺点就是计算开支比较大,相似度矩阵的计算需要O(m^2)。但是可以采用抽样的方法:从每个簇中获取数据样本,得到代表性的数据点,再计算这些点之间的相似度。

3.3 层次聚类的评估

上面讲的采用凝聚度和分离度,以及采用相似度矩阵,多是针对于评估划分(partial)的聚类。
cophenetic 相关性(cophenetic correlation)是用来评估层次聚类的一种常用的方法。

  • cophenetic 距离(cophenetic distance):指凝聚层次聚类首次将对象放在同一个簇时的邻近度。(例如,如果合并的两个簇的最小距离0.1,则其中一个簇中的所有点与另一个簇中点的cophenetic distance都是0.1)
  • cophenetic 距离矩阵:每个项即点之间的cophenetic 距离。
  • cophenetic 相关系数(cophenetic correlation coefficient,CPCC):是该cophenetic 距离矩阵同原来的相异度矩阵(即距离矩阵)的项之前的相关度,是层次聚类对数据拟合程度的标准度量,用来对于特定的数据类型进行评估哪种层次聚类方法最好。
    (补充理解:一个聚类树的cophenetic相关系数是指由层次聚类树得到的cophenetic 距离与构造树时的原始距离(相异性)之间的线性相关系数,聚类树在多大程度上代表了样本之间相异性的度量。)
  • CPCC 的取值为 [ – 1, 1] , 其接近于 1 时说明两个矩阵具有较大的相似性,说明聚类效果越好。

举例子
针对下图中的点,使用不同的层次聚类方法进行聚类,并计算cophenetic 相关系数。
在这里插入图片描述
在这里插入图片描述
由上表中CPCC的值可以看出,单链的聚类方法不如全链、组平均以及Ward‘s方法好。

3.4 簇个数评估

确定数据集中的最佳的簇个数是对于划分的聚类是个关键的问题,如K-means,需要事先确定簇个数K。很多时候簇的个数的确定都是主观的,层次聚类通过观察层次树的分支找到特定的簇也是主观判断。
这里介绍三种确定最佳簇个数的方法,主要针对K-means, K-medoids (PAM)和层次聚类( hierarchical clustering)。通过直接的方法和统计检验的方法: 直接法(Direct methods) —elbow方法和平均轮廓系数法*(Average silhouette method); 统计检验法(Statistical testing methods) — gap统计量

  • 肘方法
    肘(elbow)方法思路:最优的簇个数是再增加新的簇不能有效降低SSE时的簇个数。只需要绘制出SSE随着簇的个数K变化而变化的折线图,通过拐点(bend)来判断最优的簇个数。
    对下图中数据聚类结果,我们可以发现,当K<=10时,SSE的下降的比较明显,K大于10后,SSE下降变得十分缓慢,于是我们可以判定最佳的簇个数可取K=10。
    在这里插入图片描述
  • 平均轮廓系数法(Average silhouette method)
    在3.1.7中学习过轮廓系数,平均轮廓系数是聚类好坏的总评价指标。轮廓系数越高意味着聚类效果越好。
    同样的,绘制出平均轮廓系数随着簇的个数K变化而变化的折线图。最佳的簇个数即为使得平均轮廓系数最大化时的簇个数。如下图,当K=10时,平均轮廓系数达到峰值,即最佳簇个数应当取K=10。
    在这里插入图片描述
  • gap统计量
    gap统计量(gap statistic)可用于各种聚类方法。通过对比K取不同值的时候,簇内方差同期望方差的分布情况。通过最大化gap统计量的值来估计最佳的簇个数。聚类的结构是远离随机的均匀分布的数据点。
    (1)令簇个数K=1,…,Kmax, 分别对原始数据集D进行聚类,并计算簇内方差的和(Wk)
    (2)同样的,令簇个数K=1,…,Kmax, 分别对随机分布的数据集B进行聚类,并计算簇内方差和(Wkb)
    (3)计算gap统计量的估计值: 即在原假设下观察到的 Wk 值与其期望值 Wkb 的偏差,公式如下:
    在这里插入图片描述
    以及统计数据的标准差Sk。
    (4)当Gap(k)≥Gap(k + 1)−S(k + 1)时,k即为最佳的簇个数。也就是说当k+1时的gap统计量比在k时的gap统计量小于一个标准差。
    更多详细内容参考:https://blog.csdn.net/baidu_17640849/article/details/70769555

注意:

  • 模拟生成的数据集大小在500,这样能够保证后面的运行结果较为稳定。
  • 肘方法和平均轮廓系数法的局限性在于它们评估的是全局的聚类特征,是总体数据的聚类趋势

关于簇个数的确定等多参考:https://www.datanovia.com/en/lessons/determining-the-optimal-number-of-clusters-3-must-know-methods/

3.5 聚类趋势

聚类趋势(Clustering Tendency),即数据中是否存在自然簇。我们可以采用多种聚类方法对数据进行聚类,然后评估结果簇的质量,如果都很差,那就证明数据中没有自然簇。判断聚类的趋势还可以采用下面两种方法:

统计检验的方法:Hopkins(霍普金斯)统计量,是评估聚类趋势的统计量指标,测量给定的数据集是均匀分布的概率。(原理:事先评估数据集的聚类趋势,要求数据是非均匀分布,均匀分布的数据集没有聚类的意义)。计算的步骤:

(1) 原始数据集D包含n个点(p1,p2,…pn), 对D中每个点pi(1≤i≤n),找出pi的最近邻pj,计算pi与pj之间的距离xi=dist(pi,pj)
(2)生成随机模拟数据集D(random), 也包含n个点(q1,…, qn)均匀分布,且同原始数据集D有着相同的方差。对D(random)每个点qi(1≤i≤n), 找出qi的最近邻qj, 计算qi与qj之间的距离yi=dist(pi,pj)
(3)计算Hopkins统计量: 随机模拟数据集中的平均最近邻距离除以真实数据集中和模拟数据集中的平均最近邻距离之和。
Hopkins统计量公式:
在这里插入图片描述

(4) 变量解释
原假设:原始数据集D是均匀分布的(数据集D内没有意义的簇)
备择假设:原始数据集D不是均匀分布的(数据集内存在有意义的簇)
如果数据集D是均匀分布的,则真实数据与随机模拟产生的数据有大致相同的最近邻距离,则分母的两项接近,即H接近0.5。当H<0.5,证明数据集中不太可能存在有意义的簇; H越接近1,越有把握拒绝原假设,证明存在有意义的簇。

可视化方法
可视化的聚类趋势评估(the visual assessment of cluster tendency ,VAT),通过邻近度矩阵的方法来观察聚类的趋势,与3.2中使用的邻近度矩阵的方法类似。算法如下:
(1)计算原始数据点之间的邻近度矩阵(比如基于欧式距离)
(2)重新排列矩阵中的对象,把距离更近的点放在一起,得到重新排列的邻近度矩阵
(3)新的邻近度矩阵在图像中显示
如左边图是鸢尾花的数据的邻近度图,跟右边的随机分布的邻近度图相比,有着明显的聚类趋势。
(红色:高的相似性;蓝色:低相似性)
在这里插入图片描述
参考DataNovia ,Assessing Clustering Tendency:https://www.datanovia.com/en/lessons/assessing-clustering-tendency/#statistical-methods. (关于聚类趋势评估更加详细)

4 监督的簇评估

监督的簇评估(supervised measures of clusters validity):衡量聚类产生的簇标签同外部提供的类别标签的匹配度。目的在于评估人工手动分类是否能够有效的被聚类分析自动实现。通常有两种类型的评估指标,分类为导向的(classification-oriented)指标和相似度为导向(similarity-oriented)的指标。有监督的集群评估指数与集群是基于中心、邻接还是基于密度无关。

4.1 基于分类的评估指标

这些指标通常用作来评估分类的效果。

  • 熵(Entropy):在信息论中,熵是某些物质系统状态的一种度量,熵的本质是一个系统“内在的混乱程度”。在这里,熵是指每个簇由单个类别的对象组成的程度。
    熵(Entropy)越小越好。如果每个簇都是都单个类别组成,那么熵达到最小,接近于0;反之,每个簇里包含的多个类别的对象越多,熵越大,证明聚类结果不好。熵Entropy的计算过程:
    (1)簇i中成员属于类别j的概率:在这里插入图片描述
    (mij为簇i中对象属于类别j的对象个数,mi为簇i中对象的总个数)
    (2)计算每个簇i的熵(Entropy): e
    (3)所有簇集合的总熵: 在这里插入图片描述
    (其中K是簇个数,m是数据点的总数)
  • 准确率(Accuracy): 聚类的划分结果和类的划分结果一致的对象的总占比。体现了模型对类别样本的区分能力,准确率越高,说明模型对类别样本的区分能力越强。
  • 纯度(Purity):簇中包含单个类的对象的占比,取占比最大的作为簇i的纯度。
    簇i的纯度:在这里插入图片描述
    总纯度:在这里插入图片描述
    纯度Purity取值区间为[0,1], 越大越好。
  • 精度(Precision): 也叫回应率或命中率,簇中一个特定的对象所占比例。簇i关于类j的精度是在这里插入图片描述
  • 召回率(Recall): 也叫捕捉率,(体现了分类模型对正样本的识别能力,召回率越高,说明模型对正样本的识别能力越强。)
    簇i关于类j的召回率: 在这里插入图片描述
    (Recall的算法同灵敏度Sensitivity的算法一样)
  • F度量(F-measure): 精度(Precision)和召回率(Recall)的组合。F度量越高,聚类效果越好。
    F(i,j)
    (在分类模型的评估中,F度量是一个综合指标,是Precision和Recall的调和平均数,因为在一般情况下,Precision和Recall是两个互补关系的指标,鱼和熊掌不可兼得,因此通过F度量来综合进行评估。 F是对模型区分正负样本能力的衡量,F越高,说明分类模型越稳健)

下面用简单的包含两个类别的混淆矩阵展示这些指标的计算过程(cluster相当于预测变量,class相当于真实的变量):
在这里插入图片描述
Accuracy = (A+D)/(A+B+C+D)
Purity for cluster1 = max[ A/(A+B), B/(A+B) ]
Purity for cluster2 = max[ C/(C+D), D/(C+D) ]
Precision(cluster1, class1) = A/(A+B)
Recall(cluster1, class1) = A/(A+C)

注意:

  • 一般情况下,召回率Recall和精确率Precision是针对某一个类别说的,比如正类别的Recall,负类别的Recall等。如果是10分类,每个类别都会有一个Recall和Precision, 通常都是指正类别。没有类似全部数据集的Recall或Precision这种说法。
  • Accaracy和Precision都是值越大,效果越好,但前提就是样本是均衡的,如果样本严重失衡了,Accuracy不再适用。例如某一个类别与另一类别的样本比例为200:1, 那么再进行聚类的时候直接把所有的数据归为一类,Accaracy也是高达95%,但是这个并不代表聚类的效果真的好。

举例子
有3204份报纸,这些报纸来自6个类别:Entertainment,Financial,Foreign,Metro,National,Sports。采用K-means对进行聚类后生成6个簇。下面是簇和原来的类别之间的交叉表(crosstab),即混淆矩阵(confusion matrix)。

在这里插入图片描述

  • 理想的聚类结果是每一个簇中只包含一种类别,但实际上聚类的结果是一个簇包含了多个类别。
  • Cluster3聚类效果最好,基本上都划分到Sports这个类别中,可以看出熵较低0.1813,纯度较高0.9796;其他的簇划分效果不太好。
  • Cluster1关于Metro的精度precision=506/677=0.75,召回率recall= 506/943=0.54, 则F-value = (2x0.75x0.54)/(0.75+0.54)=0.63。

4.2 基于相似性的评估指标

使用相似性指标的前提是:同一个簇的任意两个对象也应当属于一个类别。常用的有Rand统计量和Jaccard统计量,比较簇相似度矩阵和类的相似度矩阵的相关性。

  • 理想的簇相似度矩阵(Ideal Cluster Matrices):如果i和j属于同一个簇cluster,则第ij项为1,其他为0。
  • 类相似度矩阵(Class Matrices):如果i和j属于同一个类别class,则第ij项为1,其他为0。
    如下图的包含五个点的数据集的簇相似度矩阵和原本的类的相似度矩阵。聚类的两个簇,Cluster1={p1, p2, p3}, Cluster2={p4, p5} 。这五点原本属于两个类别,Class1={p1, p2}, Class1={p3, p4, p5}。
    在这里插入图片描述
  • 双向列联表(Two-way contingency)用来确定点对是否在相同的类或者相同的簇
    在这里插入图片描述
    f00=属于不同类且不同簇的点对数
    f01=属于不同类但相同的簇的点对数
    f10=属于相同类但不同的簇的点对数
    f11=属于相同类且相同的簇的点对数
    如果数据点个数为m, 那么点对数为m(m-1)/2。
    上述5个点形成了10个点对,计算得f00=4;f01=2;f10=2;f11=2
    在这里插入图片描述
  • 计算簇的相似度矩阵与类别的相似度矩阵之间的相关性,常用的两个统计量:
    在这里插入图片描述
    在这里插入图片描述
    于是Rand statistic=0.6 Jaccard coefficient=0.33

这两个统计量的绝对值越大,表明相关性越高,聚类效果越好。

4.3 层次聚类的有效性

上面讲到的几种监督的算法都是针对划分的聚类,下面利用F度量来评估层次聚类。对每个类,计算层次聚类中每个簇的F度量,并取最大的F值作为类的F值,最后再计算所有类的F值的加权平方和。计算公式:
在这里插入图片描述
其中,权值基于类的大小,mj是类j中点的个数,m是点的总数。这个公式同样试用于划分的聚类。

5 评估簇有效性指标的显著性

评估簇有效性指标的显著性(Assessing the Significance of Cluster Validity Measures)的原因在于:
我们需要一个体系化的框架来解释这些评价指标(例如,一项指标取值的好坏其标准是什么?拟合是好还是坏?可以通过考察拟合值的统计分布来评价,即这样出现的几率有多大)

这个时候就要采用统计学方法。统计学(Statistics)的思路:计算随机实验中观测值随机出现的可能性有多大。

  • 非随机结构的簇是关注重点,若产生异常高或者异常低的簇评估值,则表明数据中存在典型的簇结构。话句话说,聚类结果越是“非典型”(atypical),它就越有可能代表数据中存在有效的簇结构。
  • 比较原始数据的聚类结果和随机数据的聚类结果,如果结果不太可能出现在随机数据集中,就证明原始数据中存在有效的簇。

SSE:对比含有三个自然簇的数据集同随机数据集的SSE。

  • 对给定的数据集进行聚类产生的三个簇的SSE为0.005(下图左),给定的数据集值域[0.2,0.8]
  • 相同值域[0.2,0.8]的500个随机数据集进行聚类产生的簇的SSE的分布直方图(下图右)
    (随机数据集的最小的SSE为0.0173, 左图中的簇比随机数据产生的最小SSE还要小,可以保守的认为,左图中的聚类结果随机出现的概率不超过1%
    在这里插入图片描述

相关性(Correlation):理想的相似度矩阵和邻近度矩阵的相关性

  • 对给定的数据集进行K-means聚类,其邻近度矩阵同理想的相似度矩阵之间的相关性是Corr = -0.9235
  • 对随机数据集进行K-means聚类,其邻近度矩阵同理想的相似度矩阵之间的相关性是Corr = -0.5810
    在这里插入图片描述
    图中相关系数是负数,是因为邻近度矩阵采用的是距离矩阵,因此和理想的相似度矩阵方向相反。相关系数的绝对值越大越好。

本文总结

簇的有效性评估的局限:簇的评价指标可能受限于它的可用范围(例如,聚类趋势评估大部分都是针对二、三维数据);评价指标太复杂,则难以得到应用和推广

聚类通常用作一种探索性数据技术,其目标通常不是提供清晰的答案,而是提供对数据结构的一些洞察。在这种目标下,簇的有效性指标是很有必要的。下面引用一段话强调聚类评估的重要性:
“The validation of clustering structures is the most difficult and frustrating part of cluster analysis. Without a strong effort in this direction, cluster analysis will remain a black art accessible only to those true believers who have experience and great courage.”Algorithms for Clustering Data, Jain and Dubes
如果只知道聚类分析,却不会评估聚类的效果,那么就不能真正掌握聚类算法的作用。

笔者:花了近一个多月才把聚类的评估这一章节进行整理,内容较为零碎,很多地方还需要进一步深入扩展学习,后期再加入充实。请批评指正。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值