2002年6月 第25卷第2期 北京邮电大学学报 Journal of Beiiing University of Posts and Telecommunications Jun.2002 Vo1.25 No.2 文章编号:1007—5321(2002)02—0008 06 一种新的聚类算法:等密度线算法 赵艳厂, 谢 帆, 宋俊德 (北京邮电大学电子工程学髋,北京100876) 摘要 提出了一种新的聚类算法 等密度线聚类算法该算法从样本分布等密度线图的思想出发, 从图中找出样本分布比鞍集中的区域,从而发现隐含在样本集中的类.等密度线聚类算法不需要 输入任何参数,是一种无监督式聚类.它能皓自动发现任意形状的类,并且能有效地排除噪声干 扰.实验结果表明,等密度线聚类算法具有鞍快的聚类速度和较好的聚类效果. 关键词:数据挖掘-聚类;等密度线聚类 文献标识码:A 中国分类号:TP181 F O 235 DILC:A Clustering Algorithm Based on Density—isoline ZHAO Yah—chang,XIE Fan, SONG Jun—de (Electronic Engineering School,Beijins Unlversffy of Posts and Telecommunications,Beijins 100876 r China) Abstract:A new clustering algorithm,density—isoline clustering(DILC)algorithm is put forward in this paper.DILC starts from the density—iso1ine figure of samples, and finds relatively dense regions,which are clusters.DILC is capable of eliminating outliers and discovering clusters of various shapes.It is an unsupervised clustering algorithm because it requires no interaction.The high accuracy and efficiency of DILC clustering algorithm are shown in our experiments. Key words:data mining;clustering;density—isoline clustering 近几年来,数据挖掘成为越来越热的一个研究方向,而聚类算法作为数据挖掘的主要方法 之一,也越来越引起人们的关注.所谓聚类,就是把大量的d维数据样本(”个)聚集成k个类 ( 《一),使同一类内样本的相似性最大,而不同类内样本的相似性最小.本文中提出的等密度 线聚类DILC(density isoline clustering)算法,从等高线图的思想出发,根据样本分布密度生 成等密度线图,从图中找到样本分布比较集中的区域,从而得到较佳的聚类结果. 1传统的聚类算法及其局限性 目前.已经提出的聚类算法有很多,但是,其中很多算法都对样本数据的分布进行了一定 收稿日期:2001—06—25 作者简升;赵艳厂(187 7),男,博士研究生 维普资讯 http://www.cqvip.com
第2期 赵艳厂等:一种新的聚类算法:等密度线算法 的假设,如球状分布(K—means算法 )、线形分布、平面分布(K—plane算法E2]),等等.而层次 型聚类算法(如BIRCH算法口 )中,由于用类的质心(centroid)来代表类内的所有点,则将引起 更大的问题,很容易把比较细长的线形分布分割成好几个部分而分别归入别的类. Jain曾经提出了一种基于密度的聚类方法[4],把样本集分割成互不重叠的一些区域,然后 计算每个区域中所含的样本数目,画出密度直方图,图中密度较大的区域就是类的中心.该算 法中,区域大小的选取对聚类结果有很大影响,区域过大就得不到有意义的类,而区域过小,算 法的时间复杂度和空间复杂度都将急剧增加 在参考文献[5]中也给出了一种基于密度的聚类算法,把“密度可达 和“密度连接”的点归 为一类 该算法不适用于高维的样本集,此外,还要输入邻域半径及密度阈值等参数,而邻域半 径需要经过复杂的计算并通过人工观察图形来确定,所以很难找到合适的参数值. 2等密度线聚类算法 聚类是指从输入的样本中找出一些类,使类内样本之间的相似度尽可能大,而类与类之间 样本的相似度尽可能小 换个角度来讲,也就是找出样本比较密集的部分,每一个密集部分就 是一个类.从这个角度出发,就可以设计一个密度函数,计算出每个样本附近的密度,从而根据 每个样本附近的密度值来找出那些样本相对比较集中的区域,这些区域就是我们要找的类.按 照聚类的第二种定义,这样生成的聚类,效果应该是最佳的. 等密度线聚类算法是从基于密度的聚类算法出发,结合等高线图的思想而提出的一种新 的聚类算法.在等高线图中,根据等高线不但可以确定那些是高山,还可以根据需要找出海拔 高于一定高度的山峰.同样,对于样本聚类,可以先计算出样本的分布密度,画出样本分布密度 的等高线图(即等密度线图).然后,从图中选择合适 的等密度线,这些等密度线所包围的部分就是样本分 布比较密集的部分,也就是要发现的类.而且,还可以 根据不同要求,相应地找出不同密集程度的类,如图1 所示.如果要找出所有密度大于5的类,那么能得到 和E 2个类j如果要找出所有密度大于3的类,则 将会得到4个类: 、B、c、E;如果再放宽范围,那么 和c将合并为一个类. 等密度线聚类算法根据等高线图的思想,根据样 本相互之间的距离和给定邻域半径大小RT,计算出 每个样本的密度值,然后根据给定的密度阈值DT,找 出所有密度大于DT的样本,以及与这些样本的距离 小于门限距离R丁的样本集,并把相互有重叠部分的样本集进行合并,这样就得到了原始样本 的一组聚类.而不属于任何一个类的样本和样本极少的类,由于其分布极为稀疏,称之为噪声 (noise或outlier). 圉1等密度线图 在等密度线算法中,要求所有样本数据是经过预处理的,样本每个属性的取值范围都是 [o,1].这样是为了便于计算距离矩阵,并便于采用合理的公式计算门限距离的大小. 2.1密度函数的定义 该算法的关键在于怎幺计算密度,并进一步由各个样本的密度得到等密度线.在等密度线 维普资讯 http://www.cqvip.com
北京邮电大学学报 第25卷 算法中采用了邻域分布密度的概念,一个样本的邻域是指到该样本的距离小于某个定值的区 域,而该邻域中所包含的样本数目,就是该样本的邻域分布密度. 计算邻域样本分布密度的一般公式如下: Den(A)=size({Bl,(B,A)≤T)) 其中,A、B为输入的样本}D HM)为样本A附近的样本分布密度,size(x)为集合x中的样本 的数目,即集合x的大小.f(B,A)是样本A和样本B一个相似性度量函数,r,是给定阈值. 下面给出采用不同度量函数,的两种密度计算方法. 方法1:以到某样本的距离,j、于给定值r,的样本的数目作为该样本的密度. Den(A):size({B lDist(B,A)<r,)) 上式中,距离函数的取法有多种,一般采用明氏(Minkowsky)距离: Dist^(X,Y) 其中, 为正整数.最常用的距离度量取 =2,即欧式(euclidean)距离. 方法2:以与某样本的相似度大于给定值r,的样本的数目作为该样本的密度,如样本向量 间夹角的余弦等. Den(A)=size( Bl sim(B,A)7>T}) 在等密度线聚类算法中,采用第一种密度计算方法,并用欧式距离作为样本间的距离度 量. 2.2算法详细过程 等密度线聚类算法的详细过程如下: (1)计算出任意两个样本间的距离,得到距离矩阵Dist:Dist(i, )一D(x( ),x(f)). (2)根据距离矩阵确定邻域的大小:RT=mean(Dist)/ coefR丁). (3)计算密度矩阵Den:即给定半径RT范围内的样本点的数目.对于矩阵中的每一行, 找出其中距离小于门限距离RT的数目,该数目就是对于该行所对应的样本的邻域样本分布 密度.根据得出的分布密度可以画出样本等密度线图(该等密度线图在实际聚类过程中是不需 要画出来的,它隐含在密度矩阵中). (4)根据密度矩阵确定密度圈值;DT一[mean(Den)/coefDT].(符号 ]”表示取整操 作.) (5)合并:对于每一个密度大于DT的样本A,如果样本B和A的距离小于Rr,,并且B 的密度也大于DT,则把A所在的类和B所在的类合并为一个类.把所有这样的类都进行合 并,最后就可得到聚类结果、 (6)如果聚类结果不太理想,则可以通过coefDT来调整密度阚值DT,从而对聚类结果 进行优化. 其中,X为样本集,”是样本数目,coefDT和coefRT是可调系数. 2.3邻域大小RT和密度阐值DT的选择 从等密度线图得到各个聚类是很简单的,所以等密度线图算法的关键在于怎样得到最佳 的等密度线图,实际上就是如何确定邻域大小RT.如果邻域过小,那么每个样本的邻域分布 密度都很小,聚类的结果将会是有很多类,而每个类只包含很少的样本.极端情况是邻域小于 所有样本间距离的的最小值,那么每个样本密度都是1,各自属于一类,类的数目等于样本数 维普资讯 http://www.cqvip.com
第2期 赵艳厂等:一种新的聚类算法:等密度线算法 目,这样的聚类结果是毫无意义的.与此相反,如果邻域过大,那么每个样本的邻域分布密度都 很大,而且密度值比较接近,由此画出的等密度线很难反映出样本的真正分布情况,不能分清 距离比较近的两个类,聚类结果中距离比较近的类往往被合并为一个类.极端情况是邻域大于 所有样本间距离的最大值,那么每个样本的密度都是 ( 为样本数目),那么所有的样本都台 并到一个类中,这种聚类结果也是毫无意义的. 由以上分析可以看出,邻域的大小应介于所有样本间距离的最小值与最大值之间,即 min(Dist)≤尺丁≤max(D/st).总的说来,邻域的取值除了要满足上述条件以外,还要使得到的 邻域密度的分布尽可能均匀,分布范围尽可能广,这样得到的等密度线能够反映出各个密度等 级的样本分布,从而有利于找出隐藏在其中的各个类.在等密度线聚类算法中,作者给出了一 种根据样本数目和样本分布的密集程度来动态确定邻域大小和密度阈值的方法.邻域大小的 取值用下面公式计算: st) RT:—me—a n( D/r其中,mean(Dist)表示所有样本间距离的平均值,n是样本数目,eoefRT是邻域半径调节系 数,取值在0到1之间.经过多次实验表明,coefRT取0.3时,在很多情况下都能得到很好的 聚类效果. 密度阈值DT的大小,将决定聚类的最终结果.如果密度阈值过小,那么将会导致距离较 近的类的台并;如果密度阑值过大,将会使一个类为多个类,或者把很大一部分样本都归 为噪声+这样,就不能很好地利用样本中携带的信息,在等密度线算法中,密度阚值的取值用下 面公式计算: r 2 <l 000 一1 塑 L tOgt ̄Ln ×c。efDT ≥1 000 其中,coefDT是密度调节系数,取值在0.7到1之间.多次实验结果表明,当DT取0.95时, 在大部分情况下都能取得很好的聚类效果. 对于给定样本集,邻域大小和密度阚值都由算法根据上面的公式自动得出.此外,还可以 根据聚类的结果调整密度阈值DT的大小,从而对聚类结果进行调整.如果事先知道样本集中 类的数目,或者预先确定了要得到几个类,那么可以对邻域大小及密度阚值计算公式中的可调 参数进行调整,从而得到更佳的聚类效果. 3性能分析 算法中每次文件读写操作都以距离矩阵中的一行为单位进行,这样可以大大减少I/O操 作次数,从而提高算法的速度.该算法的时间主要用于计算距离矩阵,时间复杂度为O(n ).由 于该算法过程中要用到样本间的距离矩阵,其大小为” ,这是一个不小的数目.为了节省存储 空间,对距离矩阵进行整数化,即把每一个距离都用一个长度为2个字节的整数来表示.此外, 还把距离矩阵存储到硬盘上以节省内存空间.总共所需硬盘空间为2× 字节, 对于维数d大于2的情况,除了计算样本间距离矩阵Dist的时间会随着d的增大而增 加,而等密度线聚类算法中其他部分的计算,都不需要进行任何变化,时间复杂度和空间复杂 度都不受d的影响.也就是说,等密度线算法中除了距离计算之外的其它部分,是与维数 没 维普资讯 http://www.cqvip.com
北京邮电大学学报 第25卷 有任何关系的,只与样本数目n有关 4实验结果 等密度线聚类算法在PC机上进行了实验.PC机的配置如下:CPU为AMD Athl。n K7 700 MHz,内存256 MB.作者用不同大小多种分布的数据集对算法进行了仿真,限于篇幅,下 面仅介绍其中的一组实验数据及其聚类结果. 实验数据如图2所示,共有1 400个点,根 据一定的分布形状随机产生.其中,左边呈折线 状均匀分布的点占3O ,中间呈球状正态分布 的点占30 ,右边的半圆形均匀分布的点和线 状均匀分布的点各占l5 ,其余的1o 为均匀 分布的噪声. 算法根据公式计算出得邻域半径大小为 0.044 3,得到的样本分布等密度线图如图3所 示.该图很明显的画出了样本分布比较集中的 几个区域.根据公式计算出的密度阈值为DT 10,由此而得到的聚类结果中有4个类,如图 4所示.样本集中的形状各异的4个密集样本 分布区域都能正确的找出,最后4个类包 一圈2样本图 含样本1 270个.而其他样本因为分布密度极小而视为噪声,共有130个,占原有样本总数的 0.093 .由此可以看出,等密度线聚类算法不但能够发现球状分布的区域,也能发现线状区 域,也能发现非凸样本分布(如图4中的折线和半圆形分布),同时对于距离比较近的类,如图 4右边的两个类,也能够正确地分辨出来.此外,还有效的排除了噪声的干扰. 圈3样本分布等密度线圈 图4聚类结果 此外,对算法在不同样本数目的情况下进行了实验,实验结果如表1所示 维普资讯 http://www.cqvip.com
第0期 赵艳厂等:一种新的聚类算法:等密度线算法 13 从实验数据中可以看出,该算法所需的内存很少,随样本数目 的增加而成线性增长.算 法的时间复杂度与 成正比,在样本数目为50 000时,处理时间约为19分钟.所用的硬盘空 间也和 z成正比,在样本数目为50 000时,需要约4 GB的硬盘空间.当样本数目大于1∞000 时,算法所需的硬盘空间及处理时问都较长,需要进行进一步的改进. 5总结 等密度线聚类算法从样本分布的等密度线图出发,把某个等密度线所分割成的区域各自 归为一类,从而可以找出样本中分布比较密集的部分,这正好满足了聚类的要求.在一定意义 上来说,等密度线算法得出的聚类结果应该是最佳的.当然,要得到最佳的聚类结果,首先要得 到比较好的等密度线图,然后根据等密度线图选取合适的密度阈值,最后把选定的等密度线包 围的点合并,得到各个聚类.该算法虽然要计算样本邻域密度,但是不需要任何的人工输入,算 法可以根据样本的分布情况自动地确定邻阈的大小,所以该算法可以说是完全无监督式聚类. 从实验结果可以看出,等密度线聚类算法不但能够发现各种形状的样本密集区域,而且能够有 效地排除噪声的干扰,得到较好的聚类效果. 等密度线聚类算法仅在实验数据下进行了测试,以后的研究中,将对于实际数据集进行测 试,并测试实际的运算时间.此外,由于条件的,算法中对于邻域大小及密度阈值的计算公 式仅是针对样本数目不超过50 000的情况下总结出来的,对于更多的样本集(如100 000乃至 1 000 000个样本),该公式中的参数是否需要进行调整,有待以后进一步研究. 参考文献: [1]Alsabti K,Ranka S,Singh V.An efficient k-means clustering algorithmiC].IPPs 98,Proceedings of the First Workshop on High Performance Date Mining,Orlando,Florida,USAt 1998. 12]Bradley P S.Mangasarian L.k-plane Clustering[J].Journal of Global Optimization.2000,16(1):23 32. [3]Zhang T,Ramakrishnan R.Livny M.BIRCH:an efficient data clustering method for very large databasesⅢA].Proceedings of 1996 ACM—SIGMOD Int.Conf.on Management of Data[C].Montreal, Quebec:1996 [4:Ja_n Anil K.Algorithms for Clustering Data[M].Prentice Hall,1998. [57 Ester M,Krlegel H P,Sander J.et a1.A density-based algorithm for discovering clusters in large spatial databases with noise[C].Proceedings of the 2rid Int.Conf.on Knowledge Discovery and Data Mining,Portland,Dregon,1996.
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuowenda.com 版权所有 湘ICP备2023022495号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务