聚类是一种无监督学习算法,训练样本的标记未知,按照某个标准或数据的内在性质及规律,将样本划分为若干个不相交的子集,每个子集称为一个簇(cluster),每个簇中至少包含一个对象,每个对象属于且仅属于一个簇;簇内部的数据相似度较高,簇之间的数据相似度很低。聚类可以作为分类等其他学习任务的前驱过程。

        基于不同的学习策略,聚类算法可分为多种类型:

             

聚类算法和预测算法的联系_聚类

聚类算法衡量指标

        聚类效果的评价方式大体上可分为性能度量和距离计算两类。

        1、性能度量(validity index)

        聚类性能度量亦称有效性指标,分为:外部指标,聚类完成后将聚类结果与某个参考模型进行比较;内部指标,直接考察聚类结果而不利用任何参考模型。

        外部指标是基于预先指定的结构评判聚类算法结果,这种结构反映了人们对数据结构的直观认识或先验知识。常用的外部指标有:

        (1)混淆矩阵

        如果能够得到类别标签,那么聚类结果也可以像分类那样使用混淆矩阵(precision、recall、F-measure)作为评价指标。

 

        (2)均一性、完整性以及V-measure

        参考http://aclweb.org/anthology/D/D07/D07-1043.pdf

        均一性(Homogeneity)指每个簇中只包含单个类别的样本。如果一个簇中的类别只有一个,则均一性为1;如果有多个类别,计算该类别下的簇的条件经验熵H(C|K),值越大则均一性越小。

            

聚类算法和预测算法的联系_聚类算法和预测算法的联系_02

        完整性(Completeness)指同类别样本被归类到相同的簇中。如果同类样本全部被分在同一个簇中,则完整性为1;如果同类样本被分到不同簇中,计算条件经验熵H(K|C),值越大则完整性越小。

            

聚类算法和预测算法的联系_相似度_03

        单独考虑均一性或完整性都是片面的,因此引入两个指标的加权平均V-measure。如果β>1则更注重完整性,如果β<1则更注重均一性。

            

聚类算法和预测算法的联系_数据_04

 

        (3)杰卡德相似系数(Jaccard Similarity Coefficient)

        Jaccard 系数为集合之间的交集与它们的并集的比值,取值在[0,1]之间,值越大相似度越高。

        Jaccard 距离用于描述集合之间的不相似度,距离越大相似度越低。

            

聚类算法和预测算法的联系_数据_05

 

        (4)皮尔逊相关系数(Pearson Correlation Coefficient)

        衡量两个正态连续变量之间线性关联性的程度,取值在[-1,1]之间,越接近1或-1,相关度越强。

            

聚类算法和预测算法的联系_聚类算法和预测算法的联系_06


        (5)兰德指数RI与调整兰德指数ARI

        Rand Index计算样本预测值与真实值之间的相似度,RI取值范围是[0,1],值越大意味着聚类结果与真实情况越吻合。

            

聚类算法和预测算法的联系_聚类算法和预测算法的联系_07

        其中C表示实际类别信息,K表示聚类结果,a表示在C与K中都是同类别的元素对数,b表示在C与K中都是不同类别的元素对数,由于每个样本对仅能出现在一个集合中,因此有TP+FP+TN+FN=C2m=m(m-1)/2表示数据集中可以组成的样本对数。

        对于随机结果,RI并不能保证分数接近0,因此具有更高区分度的Adjusted Rand Index被提出,取值范围是[-1,1],值越大表示聚类结果和真实情况越吻合。

            

聚类算法和预测算法的联系_聚类_08

 

        (6)互信息MI与调整互信息AMI

        Mutual Information用来衡量两个随机变量之间的相关程度,即一个随机变量中包含的关于另一个随机变量的信息量。

        设U与V是对N个样本集合S的两种划分方法:

            S={s1,s2,...,sN},U={U1,U2,...,UR},V={V1,V2,...,VC},

            Ui∩Uj=Vi∩Vj=Ø,∪Ri=1Ui=∪Cj=1Vj=S

        两种划分的互信息以及AMI表示为:

            

聚类算法和预测算法的联系_聚类_09

 

        内部指标是利用数据集的固有特征和量值来评价一个聚类算法的结果,数据集结构未知。常用的内部指标有:

        (1)Davies-Boulding指数(DBI)

        又称分类适确性指标,计算两个簇Ci、Cj各自的样本间平均距离avg(C)之和除以两个簇中心点μ之间的距离,DBI越小说明聚类效果越好。由于DBI使用欧氏距离,对环状分布的数据效果很差。

            

聚类算法和预测算法的联系_数据_10

 

        (2)Dunn 指数(DI)

        计算两个簇的簇间最短距离除以任意簇中的最大距离,DI越大说明聚类效果越好。同样对环状分布的数据效果不好,且对离散点的聚类测评很高。

            

聚类算法和预测算法的联系_聚类_11

 

        2、距离计算

        衡量两个向量间的相似程度,可以用它们之间的距离表示,距离近则相似程度高;距离远则相似程度低。用距离度量数据需先做均一化/标准化处理。

        (1)闵可夫斯基距离(Minkowski)

            

聚类算法和预测算法的联系_数据_12

        当p=1时为曼哈顿距离(Manhattan):

            

聚类算法和预测算法的联系_相似度_13

        当p=2时为欧式距离(Euclidean):

            

聚类算法和预测算法的联系_数据_14

        标准化欧式距离:

聚类算法和预测算法的联系_相似度_15

,   

聚类算法和预测算法的联系_数据_16

,   

聚类算法和预测算法的联系_相似度_17

        当p=+∞时为切比雪夫距离(Chebyshev)或称最大值距离:

             

聚类算法和预测算法的联系_相似度_18


        (2)KL距离

        Kullback-Leibler Divergence,也称相对熵(Relative Entropy),衡量相同事件空间的两个概率分布的差异情况。KL距离不满足对称性、三角不等式条件,在信息检索、统计自然语言方面有重要的应用。

            

聚类算法和预测算法的联系_数据_19

 

        (3)夹角余弦相似度

        用两个向量之间的夹角大小衡量它们之间的相似度,常用于文本类型数据的相似性评价。

            

聚类算法和预测算法的联系_聚类算法和预测算法的联系_20

 

        (4)轮廓系数(Silhouette Coefficient)

        簇内不相似度(Compactness):计算样本i到同簇Ci其它样本的平均距离为ai,ai越小表示样本越应该被聚类到该簇。簇C中的所有样本的ai的均值被称为簇C的簇不相似度。

        簇间不相似度(Separation):计算样本i到其它簇Cj的所有样本的平均距离bij,bi越大表示样本i越不属于其它簇。

        轮廓系数:si值介于[-1,1],越接近于1表示样本i聚类越合理;越接近-1,表示样本i越应该被分类到其它簇中;越接近于0,表示样本应该在边界上。所有样本的si均值被称为聚类结果的轮廓系数。

            

聚类算法和预测算法的联系_相似度_21

       

聚类算法和预测算法的联系_数据_22

 

 

Scikit-learn 聚类常用评价指标API

聚类算法和预测算法的联系_聚类_23