万方数据2004年10月皖西学院学报 Oct. 2004第20卷第5期Journal of West Anhui UniversityVol. 20 NO. S一种基于密度的增量式网格聚类算法苏守宝’,郁书好‘,2(1.皖西学院计算机科学与技术系,安徽六安237012;2.河海大学计算机信息工程学院,江苏南京210098)摘 要:it I算法的要求是聚类特征一般是可加的、非迭代的。文中提出了一种基于密度的网格聚类算法GDCLUS,并在此基础上提出了增圣式算法IGDCLUS,它可发现任意形状的聚类,具有高效、易实现的特点,适用于数据库周期性地增蚤环晚下的数据批量更新。 关键词:聚类;密度;网格;增童算法中图分类号: TP311, TN911. 72文献标识码:A文章编号:1009一9735(2004)05一0091-04 聚类分析是个古老而又年轻的研究领域,聚类技术是数据挖掘研究中的一个非常活跃的研究课题。聚类就是把一个没有类别标记的样本集按某种准则划分成若干类,使类内样本的相似性尽可能大,而类间样本相似性尽量小,是一种无监督的分类方法。聚类技术已被广泛地应用于计算机视觉、模糊控制、模式识别、数据挖掘、决策分析和预测等许多领域。在越来越多的应用中,需要对大规模、高维数据进行聚类,有的应用中由于数据规模太大,不能一次性处理;有的应用中数据库在不断更新。聚类能发现大型数据库中潜在的有用模式,但是经过一系列数据库后更新这些模式可能会过时、有可能导致错误的决策支持,所以保持模式更新是很重要的。由于大规模数据库及聚类算法的高时间复杂性,非常期望进行增量更新,而且增量更新时无需每次(聚类时)均对整个数据库进行处理而只对数据库中的增量部分数据进行处理即可完成聚类,并对已有的聚类结果进行增量式修改与完善。传统的统计聚类分析方法包括层次聚类法、分裂法、聚合法、动态聚类法、有序样品聚类、有重叠聚类和模 糊聚类等川,这些聚类方法是一种基于全局比较的聚类,它需要考察所有的个体才能决定类的划分,因此它要求所有的数据必须预先给定,而不能动态增加新的数据对象。一个有效的算法应该能对现有的聚类进行增量地插人和删除,它要求聚类特征必须是可加的,如BIRCH和改进的k一means聚类特征三元组CF(样本数量N,线性和,平方和SS)[21、 COBWEB中的概念的属性值等都具有单调可加性,CLASSIT是对COBWEB的扩展,用来处理连续性数据的增量聚类算法[[3]。增量聚类有适应大规模、动态数据、降低内存需求、可实现并行处理等诸多好处,且增量算法需要的空间小,仅对类的重心是必需的叫。这些算法的代表性特征是非迭代的,因此它们所需要的时间也很少,但是即使把迭代引人增量聚类算法中,其计算复杂度和所需的相应时间也不会显著增加〔“,“〕。但是增量算法对数据库的更新非常敏感,甚至一个数据点的增加或删除都可能会引起类的合并或分裂。增量算法是把存储在辅助存储器里的数据,一次一个数据项集转到内存里进行聚类,为了缓解空间的限制,也可把类的表述固定不变地保留在内存中。由于增量聚类是在不同数据子集上进行的,需要解决的是在每一次或一个子集中聚类时要保存多少信息、子聚类中如何组织信息及维护信息的效率如何等问题。1相关研究基于网格划分的聚类算法由于其易于增量实现而被广泛地应用于数据挖掘之中。迄今为止, 人们已经提来收稿日期:2004一08一18 作者简介:苏守宝(1965一),男,安徽六安人,硕士,副教授,主要研究方向:计算智能与数据挖掘;郁书好(1976一),男,硕士,讲师,主要研究方向:语义Web与数据挖掘。出了一些基于密度和网格的聚类算法如DBSCAN,CURE,CP,CLIQUE,DBCA等,这些算法都试图通过不同的途径实现对大规模数据库的有效聚类,尽管人们不断地构建各种聚类算法,但总的来说,面对急剧增长的大规模数据库能显示特别效率的聚类算法并不多。CLI QUE是一种基于网格和密度的聚类算法[27,它是一种更广泛的子空间聚类方法,可以通过维度的任意组合来产生子空间,再将数据投影到子空间中进行聚类,具有网格类算法效率高的优点,并且可以处理高维的数据。但是不可避免地具有网格聚类算法的缺点,即在划分网格时没有或者很少考虑数据的分布,而且用一个网格内的统计信息来代替该网格内的所有点,从而导致了聚类质量的降低。文献川提出了采用数据空间网格划分的基于密度的聚类算法的均值近似方法。该方法过滤并释放位于稠密超方格中的数据项,并利用其重心点近似计算其对周围数据元素的影响因子,给出均值近似在聚类算法中的实现策略及其误差估计。均值近似方法在减少内存需求、降低计算复杂度方面取得了一定的效果。IGDCA[s]是一种基于密度的增量式网格聚万方数据类算法,该算法通过将数据空间划分成体积相等的若干单元,然后对单元而不是对数据点进行聚类,只有密度不小于给定的闹值1的单元之间距离不大于给定阑值2的单元格才被聚为一类。本文受CLI QUE, IGDCA等的启发,提出了一种基于密度的网格聚类算法GDCLUS,并在GDCLUS的基础上进一步提出了基于密度的增量式网格聚类算法,具有较高的聚类效率而且容易实现,可以发现任意形状的聚类并适用于数据的批量更新。2一种基于密度和网格的聚类算法—GDCLUS 在基于密度的算法中,所谓一个聚类就是一个比周围区域(Region)有更高的数据点密度的区域。为了识别数据点的密度,我们将数据空间进行划分(partion)并找出数据点划分的每个单元(unit)中的数据点的数目。为了使得计算点的密度的方法简单一些,我们将数据空间分割成网格(grid)状(这是通过将数据空间中的每一维划分成相同的区间数来做到的,这就意味着每一个单元具有相同的“体积”,这样单元中点的密度的计算可以转换成简单的点计数),然后把落到某个单元中的点的个数作为该单元的密度(density)。这时可以指定一个阂值:,当某单元格中得点的个数大于该阑值时,就说这个单元格(unit)是密集的,然后,聚类也就是所有紧相邻近的密集单元格的集合。紧相连接的单元格是指彼此有公共面的那些单元格,而不考虑单元格的质心或重心间的距离达到另一个距离阑值。2.1相关概念 设A= {D1,D2,.-,D.}是n个有界定义域,那么S=D,XD2x... xD。就是一个n维空间,我们将DI, D2,...,D。看成是S的维(属性、字段);算法的输人是一个n维空间中的点集,设为V= {v1,v2,-,VJ,其中vi一{Vi li , v;z,一vin f o vi的第J个分量vi. ED;;通过一个输人参数资,黝可以将空间S的每一维分成相同的之个区间,从而将整个空间分成了有限个不相交的超矩形单元(cells),假设维是有序的,维的划分间隔确图1二维空间中单元格及定后,可以用:u(11.112n.)来描述网格单元的位置,其中11.,12.,一In其4个最近邻示意图 是维的属性值序列。定义1( 密度):若1维上用间隔mi分成等长的母段,一个点v二卜1., V2,一、}落人一个区间”一{u1, U>,... , Un l,当且仅当对于每一个u;都有l;< =v;<h;成立。假定每个单位体积看成是1,定义一个单元格u的密度density(u)=落人单元格中的数据点数。当density( u) = 0时,u称为空单元;当density(u) >0时,u称为非空单元。 定义2(密集的):对于用户的输入参数:,称数据单元格u是密集的(dense),当且仅当,density( u) > r;否则u是非密集的(non一dense).定义3(邻接单元与聚类): 一个聚类(cluster)是在k维空间中由一个或多个密集的的邻近单元格的最大并集;两个k维中的单元格ut,u:称为邻接的(neighboring)当且仅当这两个单元格有一个公共的面。两个单元格u1一{R,,,R,,,...,R,,l,u2=lRt,,Rt2,...,Rtk}有一个公共的面是指,存在k一1个维度(不妨设这k-1维就是万方数据tIItz,...,tk-1),有RtJ.= R' ,』成立(i=1,2,...,k),并且对于第tk维有h,、一l' tk,或者h"t、一l"成立。n维空间中的每个单元格有<2n个邻近单元格,如图3一1所示,二维空间中的单元格可以有4个近邻单元格。定义4(最大区域): 称区域R包含于一个聚类C,当且仅当RnC=R;R是最大的(maximal)当且仅当没有一个R的超集R也包含于C;一个聚类C的最小描述是上述“最大区域(maximal region)”的一个集合r, r中的最大区域刚好覆盖C,并且为了满足覆盖的条件,集合r中的最大区域的个数不能再减少了。定义5(噪声) 令{Cl,q,",Ck}是数据空间D的一组聚类的集合,Cnoise为噪声单元集,它不属于任何类,有所Cnoise中各个单元上的点是噪声。2.2 GDCLUS算法描述GDCLUS算法一般分三个步骤如图3一2所示: 数据聚类结果图2 GDCLUS算法的一般步骤其算法描述如下:St epl:设置阑值T及预处理,对输入的数据空间D及给定的每维上的间隔数任,划分单元格,并统计每个单元格内的点数,即单元格的密度;得到所有非空单元格信息,并按维的次序作为关键字排序,存储单元格位置一、密度、非空单元数及k一d树指针。St ep2:对输人的密度阑值T,把0< density< r的单元格作为Cnoise,而对所有density > r的单元格进行聚类,处理办法是从第一个未聚类的单元u开始使用BFS,搜索单元u的所有(<2n个)邻接单元neighborhood(u),如果其中有1个已被聚类,则u及其所有邻接单元均记为同一聚类ID;如果其密度单元均未被聚类,则标识为新类ID。读取下一个未聚类的单元直到所有密集单元均已聚类。St ep3:将所有数据点映射为其相应单元的聚类IDo2.3 GDCLUS的时间复杂性GDCLUS不象DBSCAN那样搜索。 ore或边界点的每个邻近点,也不象GDCA那样去计算密度可达的单元间的距离,对于每一个访问的密集单元,算法仅搜索它的<2k个的相邻单元。若密集单元总数为n,则数据结构访问总数为2kn。而且CDCLUS只考虑density(u):的单元,考虑高维空间数据稀疏的特点,密集单元数Cd与数据空间中数据点数N成线性关系且Cd < N,所以GDCLUS的时间复杂性是O(N+ ICd I logCnonempty I)所以GDCLUS可适用于高维数据空间,而且有较好的效率。一般地,对于一个给定的密度阑值,密集单元数不可能非常大,因此假设算法中的密集单元都存储在内存中,则对数据结构的访问效率很高的。3 IGDCLUS一基于GDCLUS的增f算法 如果已经得到了使用GDCLUS的聚类集,当新增加或删除数据时,原有的聚类必须修改以反映相应的变化。由于单元更新可以看作是一系列的插人与删除,一个单元的更新则至少有一个点增加或删除,由于插人或删除的点仅影响对应单元的密度,可以用单元来替代点进行成批地插人或删除。经过插人后, 有的非密集单元可能成为密集的;而删除后,有的密集单元可能成为非密集的,这种单元密度特性的改变将导致聚类情形的改变,引起聚类的分裂、合并甚至产生新的类。即使更新过的单元仍保持其密度特性,但它原来的聚类状况仍有可能由于邻接单元的密度特性的变化而改变。在GDCLUS的基础上,增量算法IGDCLUS的算法思想描述如下:St epl:发现更新单元。在数据库的增量部分,用GDCLUS的预处.理办法能发现密度特性已经发生改变的那些单元。St ep2:修改受影响的聚类。93 (I)如果新的非空单元c是密集的,并人和它的任何邻近单元同类,否则创建一个新类;( 2)吸收一些原是噪声或非空单元的而成为密度单元的;(3)两个聚类与新增加的密集单元邻近, 将它们合并。(4)一些有损失密度的单元会导致聚类的分裂,改变邻近单元的聚类标哀I D. 增量数据越大、分布越广,受影响的单元越多即需要更新的聚类ID的单元越多,尤其Step2的第(4)种情况,聚类的分裂将是一个耗时的过程,不过幸运的是,增加和插入数据总比删除要频繁得多,而且通过IGD-万方数据CLUS对已有聚类进行更新,比GDCLUS在整个数据库上的聚类更有效率。IGDCLUS适用于数据库周期性地增量的环境下的数据的批量更新。4结语 随着聚类分析对象数据集规模的急剧增大,改进现有算法以获得满意的效率受到越来越多的重视,对大规模、高维数据库的高效聚类分析依然是个有待研究的开放问题。在实际应用中,特别是面对现实的数据集中含有高维的对象,几乎所有的聚类算法中要求输人的参数值都难以确定,而且算法对这些参数值非常敏感,参数的稍微改动会引起数据集的划分变动特别大;高维数据的实际分布经常是不对称的,聚类算法只使用一个全局参数无法很好地刻画真实的聚类结构;数据库内容的不断更新使得某些已完成的聚类结果变得过时等等这些问题都影响了聚类算法的有效性,高效、自适应性和交互性地、动态地增量式的聚类算法有待进一步研究。参考文献:[1] Vijaya, P. A. Narasimha Murty, M. Subramanian, D. K. Leaders-Subleaders:An efficient hierarchical clustering algorithm for large da- ta sets. Pattern Recognition Letters. Mar2004, Vol. 25 Issue 4, p505, 9p.[ 2 ] Han J, Kamber M. Data Mining Concepts and Techniques, Morgan Kaufmann, San Francisco, 2000.[ 3 ] Hand D, Mannila H, Smith P. Principle of Data Mining, MIT Press, Cambridge: MA, 2001[ 41Mehed Kantardzic. Data Mining Concepts, Models, Methods and Algorithms, by Louisville: IEEE Press, 2002[ 5 ] Borut, Kolingerovn, Ivana. An incremental construction algorithm for Delaney triangulation using the nearest一point paradigm, Inter-nat ional Journal of Geographical Information Science; Mar2003, Vo117, Issue 2, p119,20p.[6) Charikar, Moses Panigrahy, Rina, Clustering to minimize the sum of cluster diameters. Journal of Computer&System Sciences;Mar 2004, Vol. 68, Issue 2, p417 , 25p .[7]LI Cun一Hua,SUN Zhi一Hui,A Mean Approximation Approach to a Class of Grid一Based Clustering Algorithms, Journal of Soft-war e, China , J u12003 , Vo114, Issue7, p1267,15p. (Abstract in Chinese).[81CHEN Ning,CHEN An, ZHOU Long一xiang. An Incremental Grid Density一Based Clustering Algorithm. Journal of Software, Chi-na; Jan2002,Vol13,Issue1,p1,7p. (Abstract in Chinese). An Incremental Grid Density一Based Clustering AlgorithmSu Shoubaol,Yu Shuhao1,2 (1.Department of Computer Science&Technology,West Anhui University,Lu’an 237012,China;2.Sc hool of Computer Science Information&Engineering,Hehai University,Na可in 210098,China)Abstract: Incremental clustering algorithm featured normally in addable and non-iterative. This paper introduces a grid density-based clus-tering algorithm- GDCLUS,and an incremental algorithm-IGDCLUS,which can find high effectively arbitrary shape clusters,and is appli-cable in periodically incremental environment.Key words:clustering;density;grid;incremental algorithm