聚类分析中的差异性度量方法研究

资源类型:pdf 资源大小:358.00KB 文档分类:工业技术 上传者:齐平

文档信息

【作者】 蒋盛益  李庆华 

【关键词】距离 差异性 聚类 

【出版日期】2005-04-11

【摘要】距离与差异性度量是聚类分析中的基本概念,是许多聚类算法的核心内容。在经典的聚类分析中,度量差异性的指标是距离的简单函数。该文针对混合属性数据集,提出两种距离定义,将差异性度量推广成为距离、类大小等因素的多元函数,使得原来只适用于数值属性或分类属性数据的聚类算法可用于混合属性数据。实验结果表明新的距离定义和差异性度量方法可提高聚类的质量。

【刊名】计算机工程与应用

全文阅读

1引言所谓聚类是将物理或抽象的集合分组成相似对象组成的多个类的过程,使得同一类中对象间的相似度最大化,不同类中对象间的相似度最小化。聚类分析是数据挖掘的一个非常活跃的研究分支,具有广泛的应用。根据数据的类型、实际问题的特点以及聚类的目的等,目前在文献中提出了许多聚类算法。在聚类分析中,距离及差异性(或相似性)度量方法是最基础的概念,度量方法的选择直接影响聚类结果的质量,可以说,许多聚类算法的差异性主要体现在差异性度量方法的不同。已有聚类算法绝大多数只能用于分类属性的数据集[1,2]或只能用于数值属性的数据集[3,4],但实际应用中的数据往往既包含分类属性,也包含数值属性,文献[5]提出了适用于混合属性数据集的聚类算法,对分类属性处理非常繁琐,且效果不理想,k-prototypes算法[6]是对k-means算法的改进,适用于混合属性数据集,但需要扫描数据集多趟,且聚类个数k难以确定。文[2]和[4]本质上是分别适用于分类属性数据集和数值属性数据集的基于最小距离原则的聚类方法,文[5]是适用于混合属性数据集的基于最小距离原则的聚类方法,这三个算法效率高,均只需扫描一趟数据集。在综合分析[2,4~6]中聚类算法优点的基础上,文[7~9]分别提出了适合于混合属性的距离定义及基于最小距离的聚类算法和基于引力的聚类算法。该文在文[7~9]的基础上进一步研究,提出了两种适用于混合属性的距离定义,并将差异性度量方法推广到了一般情况,给出了一组差异性度量函数,得到了基于最小差异的一趟聚类算法。理论分析表明,这种聚类算法具有近似线性时间复杂度和好的扩展性,可应用于大规模数据集的聚类分析,在真实数据集上的试验结果表明,该文定义的距离及差异性度量方法是有效的,可用于文献中相关算法,使得只适用于数值属性或分类属性数据的聚类算法可适用于任何数据类型情况。2符号及定义为了后面描述方法的方便,这里给出一组定义,将距离概念推广到一般的数据空间。假设数据集D有mC个分类属性和mN个数值属性,m=mC+mN,不妨设分类属性位于数值属性之前,用Di表示第i个属性及其取值的集合,由于对象与其标识(可理解为记录号)是唯一对应的,有时也就将一个对象与其标识等同起来。定义1:给定类C,ai∈Di,ai在C中关于Di的频度定义为C在Di上的投影中包含ai的次数:FreqC|Di(ai)=|狖object|object∈C,object.Di=ai狚|定义2:给定类C,C的摘要信息CSI(ClusterSummaryIn-formation)定义为:CSI=狖n,r,ave,Summary狚,其中n为类C的大小,r为C中对象到其摘要的最大距离(相当于椭球体半径),ave为C中所有对象到其摘要的平均距离(描述了聚类密度),Summary由分类属性中不同取值的频度信息和数值属性的质心两部分构成,即:Summary=狖<Stati,Cen>|Stati=狖(aj,FreqC|Di(ai))|aj∈Di狚,1i,jmC,Cen=(pmC+1,pmC+2,…pmC+mN)狚针对混合属性数据集的特点,该文提出两种不同的距离定义。其一是将数据空间看成由分类属性和数值属性对应的两个子空间组成,在整个空间中的距离分解为两个子空间中的距离,数值属性部分对应的子空间的距离计算类似于文[6],采用闵可夫斯基(Minkowski)距离,而分类属性部分对应的子空间距离计算不同于文[6],并不求每个类对应的mode,而是利用统计频度进行计算;其二是将线性空间中的闵可夫斯基距离推广到一般的数据空间。由此产生了定义3和定义4。定义3:给定D的子类C、C1和C2,对象p=狖pi|i∈[1,m]狚,q=狖qi|i∈[1,m]狚,y>0,z>0。(1)对象p,q在属性i上的差异程度(或距离)dif(pi,qi)定义为:对于分类属性或二值属性:dif(pi,qi)=1pi≠qi0pi=qi =1-0pi≠qi1pi=qi 对于连续数值属性或顺序属性:dif(pi,qi)=pi-qi(2)对象p,q间的距离d(p,q)表示为:d(p,q)=dC+dNm,其中分类属性部分的距离dC定义为每个分类属性上的差异程度之和:dC=mCi=1∑dif(pi,qi),数值属性部分的距离dN为闵可夫斯基距离:dN=mC+mN∑i=mC+1pi-qiz 1/z。(3)对象p与类C间的距离d(p,C)定义为p与类C的摘要之间的距离,由两部分构成:d(p,C)=dC+dNm,其中分类属性部分的距离dC定义为dC=mCi=1∑dif(pi,C|Di)y 1/y,这里dif(pi,C|Di)为p与C中每个对象在属性Di上的距离的平均值,即dif(pi,C|Di)=1-FreqC|Di(pi)C;数值属性部分的距离dN定义为p与C的质心间的闵可夫斯基距离,dN=mC+mN∑i=mC+1pi-ciz 1/z。(4)类C1与C2间的距离d(C1,C2)定义为两个摘要之间的距离,由两部分构成:d(C1,C2)=dC+dNm,其中分类属性部分的距离dC定义为:dC=mCi=1∑dif(C1|Di,C2|Di)y 1/y,这里dif(C1|Di,C2|Di)为C1中任意对象p与C2中任意对象q在属性Di上的距离的平均值,即:dif(C1|Di,C2|Di)=1-1C1·C2p∈C1∑FreqC1|Di(pi)·FreqC2|Di(pi)=1-1C1·C2q∈C2∑FreqC1|Di(qi)·FreqC2|Di(qi)数值属性部分的距离dN定义为C1与C2的质心间的闵可夫斯基距离,dN=ci(1)-ci(2)z 1/z。定义4:给定D的子类C、C1和C2,对象p=狖pi|i∈[1,m]狚,q=狖qi|i∈[1,m]狚,x>0。(1)对象p,q在属性i上的差异程度(或距离)dif(pi,qi)定义为:对于分类属性或二值属性:dif(pi,qi)=1pi≠qi0pi=qi ;对于连续数值属性或顺序属性:dif(pi,qi)=pi-qi。(2)对象p,q间的距离d(p,q)定义为每个属性上的距离的平均值,即:d(p,q)=mi=1∑dif(pi,qi)xm 1/x。(3)对象p与类C间的距离d(p,C)定义为p与类C的摘要之间的距离:d(p,C)=mi=1∑dif(pi,C|Di)xm 1/x。这里dif(pi,C|Di)为p与C在属性Di上的距离,对于分类属性Di其值定义为dif(pi,C|Di)=1-FreqC|Di(pi)C;对于数值属性Di其值定义为dif(pi,C|Di)=pi-ci。(4)类C1与C2间的距离d(C1,C2)定义为两个摘要之间的距离:d(C1,C2)=mi=1∑dif(C1|Di,C2|Di)xm 1/x。这里dif(C1|Di,C2|Di)为C1与C2在属性Di上的距离,对于分类属性Di其值定义为:dif(C1|Di,C2|Di)=1-1C1·C2p∈C1∑FreqC1|Di(pi)·FreqC2|Di(pi)=1-1C1·C2q∈C2∑FreqC1|Di(qi)·FreqC2|Di(qi)对于数值属性Di其值定义为dif(C1|Di,C2|Di)=ci(1)-ci(2)。容易看出,当x、y、z均取1时两种距离定义是等价的,这种情况相当于Manhattan距离的推广,x、y、z均取2相当于欧氏距离的推广。由于在聚类过程中只是利用距离进行大小比较,而并不利用距离的绝对值,对距离乘上常数因子,并不会影响聚类结果。对于纯分类属性或纯数值属性的数据集,x=y=z时,两种距离定义相差一个比例常数,因此是等价的,这说明用定义3或定义4取代相关聚类算法中的距离定义,就可使原来仅适用于数值属性或分类属性的聚类算法不受数据类型的限制而可用于任何数据类型,正如k-prototypes算法推广k-means算法一样。为减小数值属性不同度量单位对结果的影响,需要对数值属性进行规范化,从定义3、定义4可见,每个分类属性上的距离在范围[0,1]内,之所以取平均值,主要是为了消除属性个数对距离值的影响,将最终的距离限制在[0,1]内,便于比较。定义5:类C1与C2间的差异定义为两个类之间的距离d、两个类的大小n及类的半径r等因素的函数:dissim(C1,C2)=f(d,C1,C2)=f(d,C1.n,C1.r,C2.n,C2.r)这个函数f(d,C1,C2)应是距离d的单调递增函数。特别地,当类大小为1时,就可得到两个对象之间的差异,以及一个对象与一个类之间的差异。这里给出几个特殊的差异性函数定义:f1(d,C1,C2)=d(相当于两个超球体中心间的距离);f2(d,C1,C2)=d-C1.r-C2.r(相当于两个超球体边界上最近点间的距离);f3(d,C1,C2)=d+C1.r+C2.r(相当于两个超球体边界上最远点间的距离)。图1描述了这三种差异性度量的示意图。图1f1,f2,f3三种差异性度量示意图f4(d,C1,C2)=d-C1.ave-C2.avef5(d,C1,C2)=d+C1.ave+C2.avef6(d,C1,C2)=dln(C1.n+9)·ln(C2.n+9)√f7(d,C1,C2)=d-C1.r-C2.rln(C1.n+9)·ln(C2.n+9)√f8(d,C1,C2)=d+C1.r+C2.rln(C1.n+9)·ln(C2.n+9)√f9(d,C1,C2)=d-C1.ave-C2.aveln(C1.n+9)·ln(C2.n+9)√f10(d,C1,C2)=d+C1.ave+C2.aveln(C1.n+9)·ln(C2.n+9)√以ln(C.n+9)作为类C的质量,则ln(C1.n+9)·ln(C2.n+9)d(C1,C2)2可看成类C1与C2间的引力,f6~f10可以看成某种引力的倒数。亦可用ln(ln(C.n+9))取代ln(C.n+9)。3最小差异聚类方法3.1聚类算法定义3~定义5可用于许多已有聚类算法,而推广其适用范围,该文将基于最小距离原则聚类算法[2,4]的思想推广到一般的情况,聚类过程就是对象依次被并入到与其差异最小的类中的过程。具体描述如下:(1)初始时,聚类集合为空,读入一个新的对象;(2)以这个对象构造一个新的类;(3)若已到数据库末尾,则转(6),否则读入新对象,计算它与每个已有类之间的差异,并选择最小的差异;(4)若最小差异超过给定的阈值r,转(2);(5)否则将该对象并入具有最小差异的类中并更新该类的各分类属性值的统计频度及数值属性的质心,转(3);(6)保存各个类的摘要信息及阈值r,结束。3.2时间和空间复杂度聚类算法的时间和空间复杂度与距离及差异性度量方法没有太大关系,依赖于数据集的大小N,属性个数m,产生CSI的个数及每个CSI的大小。假定最终产生的CSI个数为k,每个分类属性Di有ni个不同的取值,则最坏情况下聚类算法时间复杂度为O(N·k(mCi=1∑ni+mN)),空间复杂度为O(N·m+k(mCi=1∑ni+mN))。在聚类算法执行过程中,生成的聚类个数是从1逐步扩大到k的,聚类中属性值的个数也是逐步增加的。有文献指出,分类属性通常具有小的值域,典型的分类属性值域少于100个不同取值,mCi=1∑ni会在很有限的范围内(在后面的两个实际例子中,对于Mushroom,mCi=1∑ni=119,对于CUP99,mCi=1∑ni=85)。因此,在实际问题中,聚类算法期望的时间复杂度为O(N·k·m),空间复杂度为O(m·(N+k))。由此可见,时间复杂度和空间复杂度与数据集大小成线性关系,与属性个数以及最终的聚类个数成近似线性关系,这使得算法具有好的扩展性。3.3阈值r的选择聚类算法中参数r将影响聚类的结果和算法的时间效率。r越小,得到的类的个数越多,算法时间开销越大。从聚类过程直观地可以理解,阈值r应小于所有对象间的平均差异。差异性度量方法不同,阈值r的选择方法也将不同[7~9]。4实验结果为了检验前述距离、差异性度量方法的有效性,笔者在文[10]提供的多个真实数据集(M

1 2

问答

我要提问