基于多重分形的聚类层次优化算法

基于多重分形的聚类层次优化算法
基于多重分形的聚类层次优化算法

ISSN 1000-9825, CODEN RUXUEW E-mail: jos@https://www.360docs.net/doc/7314219627.html,

Journal of Software, Vol.19, No.6, June 2008, pp.1283?1300 https://www.360docs.net/doc/7314219627.html, DOI: 10.3724/SP.J.1001.2008.01283 Tel/Fax: +86-10-62562563

? 2008 by Journal of Software. All rights reserved.

?

基于多重分形的聚类层次优化算法

闫光辉1,2+, 李战怀1, 党建武2

1(西北工业大学计算机学院,陕西西安 710072)

2(兰州交通大学电子与信息工程学院,甘肃兰州 730070)

Finding Natural Cluster Hierarchies Based on MultiFractal

YAN Guang-Hui1,2+, LI Zhan-Huai1, DANG Jian-Wu2

1(School of Computer Science, Northwestern Polytechnical University, Xi’an 710072, China)

2(School of Information and Electrical Engineering, Lanzhou Jiaotong University, Lanzhou 730070, China)

+ Corresponding author: E-mail: yangh@https://www.360docs.net/doc/7314219627.html,

Yan GH, Li ZH, Dang JW. Finding natural cluster hierarchies based on MultiFractal. Journal of Software,

2008,19(6):1283?1300. https://www.360docs.net/doc/7314219627.html,/1000-9825/19/1283.htm

Abstract: A cluster is a collection of data objects that are similar to one another within the same cluster and are

dissimilar to the objects in other clusters. Moreover, there will exist more or less similarities among these large

amounts of initial cluster results in real life data set. Accordingly, analyzer may have difficulty to implement further

analysis if they know nothing about these similarities. Therefore, it is very valuable to analyze these similarities and

construct the hierarchy structures of the initial clusters. The traditional cluster methods are unfit for this cluster

post-processing problem for their favor of finding the convex cluster result, impractical hypothesis and multiple

scans of the data set. Based on multifractal theory, this paper proposes the FCHO (fractal-based cluster hierarchy

optimization) algorithm, which integrates the cluster similarity with cluster shape and cluster distribution to

construct the cluster hierarchy tree from the disjoint initial clusters. The elementary time-space complexity of the

FCHO algorithm is presented. Several comparative experiments using synthetic and real life data set show the

performance and the effectivity of FCHO.

Key words: data mining; clustering; multifractal; post-processing; optimization

摘要: 大量初始聚类结果之间存在强弱不同的相似性,会给用户理解与描述聚类结果带来不利影响,进而阻

碍数据挖掘后续工作的顺利展开.传统聚类算法由于注重聚类形状及空间邻接性,或者考虑全局数据分布密度

的均匀性,实际中均难以解决这一类问题.为此,提出了基于分形的聚类层次优化算法FCHO(fractal-based cluster

hierarchy optimization),FCHO算法基于多重分形理论,利用聚类对应多重分形维数及聚类合并之后多重分形维

数的变化程度来度量初始聚类之间的相似程度,最终生成反映数据自然聚集状态的聚类家族树.此外,初步分析

了算法的时空复杂性,基于合成数据集和标准数据集的有关实验工作证实了算法的有效性.

?Supported by the National Natural Science Foundation of China under Grant No.60573096 (国家自然科学基金); the NSFC-JST

Major International (Regional) Joint Research Project under Grant No.60720106001 (NSFC-JST重大国际(地区)合作项目); the

Foundation of Gansu Province Educational Department of China under Grant No.0604-09 (甘肃省教育厅基金)

Received 2007-03-01; Accepted 2007-10-09

1284 Journal of Software软件学报 V ol.19, No.6, June 2008

关键词: 数据挖掘;聚类;多重分形;后续处理;优化

中图法分类号: TP181文献标识码: A

聚类是将物理或抽象对象的集合分组成为由相似对象组成的多个集合的过程,其中属于同一个集合的对象之间的彼此相似,属于不同集合的对象之间彼此相异(按照某种度量机制).通过聚类操作,我们能够识别数据集的密集和稀疏区域,发现数据的全局分布模式,以及数据间有趣的相互关系.聚类作为数据预处理的重要手段和数据挖掘的基础性支持工具,在统计学和知识发现等领域得到了广泛而深入的研究,国内外研究者针对不同的应用、数据类型与聚类目的,进行了大量卓有成效的研究工作,取得了丰富的研究结果[1?3].

统计聚类方法[4?6]基于欧氏距离度量机制,在低维数据分析中获得了优良的性能和令人满意的聚类结果,但也存在无法发现非球形聚类或者大小差别很大的聚类的缺陷,因而可能降低无监督学习的精度和效率,并给用户进一步的数据分析工作带来了困难甚至误导用户的判断[7?15].基于层次、密度和网格的聚类技术在大数据集、增量及任意形状聚类方面与统计聚类技术相比具有较大的优越性,然而却无法应对聚类内部密度不均匀及聚类非邻接的情况(表现为在数据空间中离散分布的一些数据聚集,宏观上某些非邻接的数据聚集最终都属于同一个聚类,一些常见的分形数据集,如康托尘(Cantor set)).如图1所示,以均匀分布生成位于二维数据空间不同位置的10个矩形,以及利用正态分布生成的、分别位于二维空间的4个象限内的、由同一圆环分割而成的4个四分之一圆环(为对比实验方便,命名该数据集为D2-20K),通过聚类操作我们容易得到如图1所示的9个聚类(其中红色圆圈对应稀疏数据点),分别对应中心交叉矩形框、4个圆环聚类和位于四角的4个相交矩形框.然而,根据数据集的生成方式我们得知矩形数据集之间具有较强的相似性,同时,圆环数据集之间也具有较强的相似性.遗憾的是,当前的聚类技术忽视这种相似性,因而也就无法对初始聚类结果进一步优化,错失了发现更隐藏、更有趣模式的机会.基于模型的聚类方法[16,17]根据数据由潜在的概率分布生成的假设,试图优化给定的数据集和潜在概率模型之间的适应性,从而进行相应的聚类工作.基于模型的方法一方面需要对数据集施以较强的限定,而这种限定在实际应用中很难满足(如属性相互独立);另一方面,还存在训练时间过长及无法适应于大数据集的情况,同时也无法满足数据流等增量聚类的要求,因而难以在实际中应用.

y

x

Fig.1 Initial cluster results

图1 初始聚类结果

聚类定义的本质依赖于模式之间的相似性,属于同一个聚类的模式之间相似性最大,属于不同聚类的模式之间相似性最小,同样在聚类合并过程中也应该遵循这一原则,即进行合并的初始聚类之间也必然存在某种相似性,但这种相似性仅仅依靠聚类之间的距离无法准确度量.就我们所知,对于图1所示的数据集,当前的聚类算法得到的聚类结果都无法反映数据集的自然聚集状况.通过分析,容易发现该问题与传统聚类问题的特征及要求不完全一致,即对聚类合并的要求不仅限于空间邻接或距离上比较接近,而且更加突出聚类之间的整体相似性,这种相似性可以表现为空间形状的相似性、空间距离的接近性、聚类整体分布的相似性及以上因素的综合等,因而造成传统聚类技术由于仅考虑某一特性而无法成功地解决这一类问题.

闫光辉 等:基于多重分形的聚类层次优化算法

1285

我们将这种问题称为非邻接聚类问题,或将其推广为聚类后续处理问题.该问题主要关注于每个初始聚类作为一个整体而言的结构与行为特征,要求能够跨越空间和局部的联系,这与经典聚类算法主要关注空间联系和局部特性有着完全不同的侧重点.为了发现数据集中隐藏的,更有趣的及自然的模式,我们提出利用多重分形技术进行初始聚类结果的后续处理.

第1节介绍了相关的基本工作,并分析了当前聚类算法在面对聚类后续处理问题的不足之处;第2节详细论述了FCHO 算法的基本思想、实现过程;第3节基于合成数据集和实际数据集对FCHO 算法进行了验证性测试工作,给出了相关的运行结果及聚类合并家族树,对算法的时空复杂性进行了初步分析;最后对研究工作做了阶段性总结,同时展望了研究工作的方向.

1 相关工作

1.1 分形及分形维数

20世纪70年代诞生的分形理论在空间数据查询效率分析[18,19]、多维索引技术[20]等研究领域得到了广泛的应用.下面给出一些相关的基本概念.

定义1(分形). 一个数据集基于不同的观察尺度表现出部分和整体的相似性(可以表现为空间形状自相似性,也可以表现为统计分布上的自相似性),称该数据集为一个分形,许多实际的数据集呈现统计分形的特征.本文主要从数据集的统计分形角度来进行相关的聚类研究工作.

定义2(嵌入维数). 嵌入维数是数据集位于的数据空间的维数,也就是数据集对应的属性数目. 定义3(内在维数). 内在维数是数据集合的真正表现维数.

内在维数不随数据集嵌入维数的不同而改变,在一定程度上定量地描述了数据集内部结构的复杂性.例如:一条直线若位于二维平面内,其嵌入维数为2,若位于三维空间之中,则嵌入维数为3,但无论位于多少维空间中,其内在维数都大致为 1.此外,内在维数还可以在一定程度上反映属性之间的非线性相关性,如二维空间中的圆形对应的内在维数大致为1.在实际应用中,鉴于内在维数的计算复杂性,经常采用分形维数来近似内在维数[19],图2给出了不同数据集位于不同的嵌入空间所对应的分形维数(第1行对应数据集分布情况,中间行对应关联分形维数,第3行对应相应的多重分形维数q ?D q 曲线).

考虑到实际数据分布的多样性和复杂性,仅以某单一分形维数(如盒维数,信息维数及关联维数)为特征,难以区分单一分形集(single fractal)和多重分形集(multiple fractal),同时也存在不同分布的数据集却具有比较接近的单一分形维数的特殊情况.如图2所示,二维空间圆形与三维空间直线对应的关联分形维数比较接近,因此,单独利用关联分形维数也就无法区分这两个数据集.为了能够更精确地描述一个分形集,同时也为了能够更加有效地支持聚类后续处理工作,需要增加能刻画数据集更精细特征的不同的分形参数,由此引入了多重分形维数和多重分形理论,有关多重分形维数的详细内容见文献[21].

定义4(多重分形维数). 对于一个在区间],[21r r (无标度区)内呈现统计自相似特征的数据集,其多重分形维数D q 定义如下:

120Log lim

, 1log ,[,]1Log lim ,1

1Log q

i i i r q q

i i

r p p q r D r r r p q q r →→?∑=??=∈?∑?≠???

(1)

其中,r 是覆盖数据空间所用的网格的边长,i P 为网格的奇异性测度,即网格所包含的数据点数目与全部数据点数目之比.已经证明,00

lim D D q q =→即是豪斯道夫维数(盒维数),11

lim D D q q =→为信息维数,22

lim D D q q =→为关联维数,这

3种维数同时也是在实际中经常用到的几种分形维数.根据式(1),理论上可以给出无限多的D q 定义,从而得到广义分形维数谱.其中,q >0的高阶维数D q 反映了分形集中点的聚集程度,即由q 个点构成的集团分布情况,相应地,q <0的高阶维数D q 则反映了分形集空隙分布情况.由此可见,引入广义分形维数可以更精确地反映数据集的

1286 Journal of Software软件学报 V ol.19, No.6, June 2008

分布情况,从而为数据集描述提供了更加有力的工具.另外,广义分形维数的引入也为我们对数据集进行分类带来了更有力的工具.例如:当两个数据集的单一分形维数如D0接近甚至相同时,单独依靠D0就无法区分这两个数据集合,而如果它们对应的信息维数D1或关联维数D2取值不同,则我们就可以根据D1或D2对它们进行分类.基于这种思路,可选的q次分形维数越多,则其相应的区分不同数据集的能力也就越强.考虑到实际应用的需求及计算资源的限制,一般情况下,利用D10及D?10作为可选的分形维数.从图2第3行容易看出具有相近D2值的圆形和直线数据集对应的D?10和D10差别明显,可以作为区分这两个数据集的特征使用.

Fig.2 Data sets and the q?D q plots

图2 数据集及其对应q?D q曲线

针对实际数据集中可能包含各种形式的分布情况、聚类密度不均匀以及多重分形维数的特点,我们考虑采用D?10,D2和D10作为度量聚类相似程度的主要依据,其中, D?10,D2和D10在聚类合并过程中各有侧重点:在判断聚类能否合并的情况下,D?10,D2和D10具有同样的权重(主要目的在于从聚类的离散度,密集度及形状等多方面来综合考虑),而聚类合并之后(假定聚类之间不存在相互包含的情况,则合并后聚类的离散度会大于合并之前聚类的离散度)D?10会发生比较大的变化,相应地,我们着重利用D2和D10来判断合并操作是否合法.由此,基于多重分形的聚类后续处理技术同时考虑聚类内部数据分布特点及聚类整体形态特征,可以发现潜在的﹑更能反映数据集本质特性的模式.

1.2 层次、网格、密度及分形聚类技术

层次聚类是一种有效的聚类技术,它通过将数据对象组成为一棵聚类的树,为用户提供多种可选的聚类结果,可以根据需要随时结束聚类操作过程,因而是目前广泛应用的一种聚类技术.层次聚类的具体实现过程分为两种形式:自底向上凝聚(agglomerative)与自顶向下分裂(divisive),凝聚与分裂操作都要基于某种特定的相似性度量机制.单连接方式与全连接方式是两种常见的度量聚类之间相似性的技术.单连接是计算分别位于两个聚类中的模式之间的最大相似度;全连接方式则相反,计算分别位于两个聚类中的模式之间的最小相似度,随后的

闫光辉等:基于多重分形的聚类层次优化算法1287

聚类凝聚与分裂操作也主要基于所得到的相似度来进行.BIRCH[7](balanced iterative reducing and clustering using hierarchies)算法引入聚类特征与聚类特征树进行概括聚类描述,首先扫描数据集并建立一个基于内存的聚类特征树,然后采用某个聚类算法对聚类特征树的叶子结点进行聚类操作.BIRCH算法的主要问题在于其利用半径或直径来控制聚类的边界,因而无法适应于非球形聚类的情况.CURE[8](clustering using representatives)通过选择数据空间中固定数目的具有代表性的点来描述聚类,ROCK[9](robust clustering using linKs)算法实际上是CURE算法针对分类属性的扩充版本.Chameleon[10]算法首先构造数据集的k-最近邻居图,然后基于图的划分技术将数据对象聚集为大量相对较小的子聚类,最后利用一个凝聚的层次聚类算法反复地合并子聚类来寻找真正的结果聚类.层次聚类算法一般需要用户输入参数,如聚类个数等来结束算法的执行.

网格聚类技术首先将对象空间划分为互不相交单元(网格)以构成网格结构,然后利用网格结构完成聚类操作,具有一遍扫描数据集及运行时间与数据点数无关的特点,在高维、海量数据聚类领域获得了较为广泛的应用,目前在数据流聚类领域也出现了利用网格技术进进行聚类的尝试.网格聚类技术的不足之处在于,网格的数目随着数据集合维度的增加而呈指数增长,针对这一缺陷,基于网格的聚类算法要么仅保留超过某一密度阈值的网格,要么采用Apriori原理进行网格的预先删除,而进行网格的预先删除需要各维之间的连接工作,无法适应动态数据流环境.STING[13]是首个基于网格的聚类技术,它利用一个互不相交的且层次嵌套的网格结构覆盖数据空间,通过一遍扫描数据集,利用底层网格所包含的统计信息逐层递推得到上层网格的统计信息,从而支持不同粒度的多次查询请求,同时,基于底层网格的统计信息也可以进行相关的聚类工作.Wave-Cluster[14]和CLIQUE[15](clustering in QUEst)则是将基于网格与基于密度相结合的方法.

典型的基于密度方法包括:DBSCAN[11](density-based spatial clustering of applications with noise)、OPTICS[12](ordering points to identify the clustering structure)等.该方法将聚类定义为一组“密度连接”的点集,通过不断生长足够高密度区域从含有噪声的数据集中发现任意形状的聚类.DBSCAN是第一种利用密度的聚类算法,它需要用户设置两个参数Eps(密集区域半径)和MinPts(最少密集近邻数目)用于控制正常聚类的密度.但由于实际高维数据经常分布不均匀,因而造成全局密度参数无法精确刻画其内在的聚类结构.OPTICS算法针对DBSCAN算法的缺陷,提供一个逐步增加的密度区域顺序来代替聚类操作,并能从中发现用户所需要的聚类信息,但OPTICS算法本质上也是基于欧氏距离的,同样无法满足聚类后续处理的需求.

国内研究人员针对当前聚类算法的不足也做了一定的研究工作[22].提出将密度与距离度量机制相结合的聚类算法,提高了聚类的质量及发现任意形状互连聚类能力[23].提出结合参考点和密度的聚类算法,从而进一步地增强算法发现任意形状聚类能力.文献[24]提出一种基于主次属性划分的聚类方法及数据可视化方法.文献[25]提出二分网格划分机制结合动态网格密度来发现任意形状、非均匀密度分布的聚类.

从本质上分析,层次聚类技术﹑网格及密度聚类技术所采用的相似性度量机制仍然是基于欧氏距离和邻接特征的,因而也就无法跳出只能发现空间上邻接的聚类的局限,无法解决非邻接聚类问题.

分形理论通过分析部分与整体的相似性来描述数据的分布特征,是研究数据之间的相似性以及数据集部分与整体相似性的有力工具.多重分形既关注数据集的整体分布与行为特征,同时又引入多重分形维数来描述数据集局部的结构与行为特征,可以提供更精细的相似性度量机制.因此,利用多重分形理论同时考虑部分与整体相似性的固有特点,引入多重分形技术进行相关的聚类工作尤其是聚类后续处理工作在理论与技术上是可行的.Barbará首次提出基于分形的FC(fractal clustering)聚类算法[26],分析了FC算法的时空复杂度.针对合成与实际数据集的实验结果显示FC算法对属性数目及数据集规模具有较好的可扩展性,在算法的执行时间、存储需求及聚类结果的优劣方面对FC算法、BIRCH及CURE等聚类技术进行了实验对比分析,结果表明,FC算法具有相对优良的聚类结果,此时,上述三者面对大数据集的执行时间与存储空间需求基本相当.FC算法具有发现任意形状聚类及增量聚类的特点,但算法仍然利用聚类之间的最近距离作为聚类合并的唯一依据,因而同样无法解决非邻接聚类问题.此外,FC算法也无法得到聚类合并的层次结构.基于多重分形技术,我们提出了聚类层次优化算法FCHO(fractal-based cluster hierarchy optimization),FCHO算法利用整型Z-Ordering技术[27]通过一遍扫描数据集来创建初始的底层网格结构,基于该底层网格结构利用密度和网格的聚类技术来生成初始聚类,

1288 Journal of Software 软件学报 V ol.19, No.6, June 2008

结合多重分形技术优化初始聚类结果,针对优化的初始聚类结果自底向上构建聚类家族树,从而在更高程度上支持用户的数据分析工作,进而发现数据中更为隐蔽的模式.

2 基于分形的聚类层次优化算法

2.1 数据结构及概念

设12{,,...,}d A A A A =是有界域的集合,12...d S A A A =×××是一个d 维数据空间,其中12,,...,d A A A 表示S 的d 个维或d 个属性域.12{,,...,}N X x x x =表示S 上的N 个点的集合,其中,12,,...,d i i i i x x x x =表示一个数据点,j i A x j ∈ 表示数据点i x 的第j 维的值,也就是数据点i x 的第j 维坐标.

为便于计算数据集的分形维数,类似于STING 算法构建多层网格结构,以二维数据空间为例,所构建的多层

网格结构如图3所示.数据空间格式化为边长为1的单位网格,则嵌套的下层网格的边长按照如下方式划分:0112,12,...,12level ,其中level 为网格结构的层数.顶层网格对应数据空间整体,包含4(22,d 维空间为d 2)个第二层网格(边长为1/2),其中,上层的每一个网格均包含其直接下层的4个网格(边长为上层网格边长减半).

Fig.3 2D embedded grid structure and Z-ordering code

图3 二维嵌套网格及Z-ordering 编码

为了满足对网格进行存储以及分形维数的计算需要,[27]引入整型Z-ordering 编码技术对最低层网格编址,该技术可以实现从底层网格所包含统计信息到最上层网格所包含统计信息的映射工作,图3以二维空间为例给出底层网格坐标逐层映射为其直接高层网格坐标的过程,其中,网格坐标的修改操作按照式(2)进行.

1111,

MOD 20212, MOD 212s d s i i s d s i C C C C C C ???????

==??????

?

????=?=??????

(2) 其中,C s 为修改之前的维坐标值;C d 为修改之后的对应维坐标值;i 为当前合并的层次数.i =1对应由最低层向次

低层合并, i =2对应由次低层向其直接上层合并,依此类推.

定义 5(网格选择度). 网格Grid i 的选择度为

X

Grid count Grid y selectivit i i )

()(=

, 其中,count (Grid i )为网格Grid i 所包含的数据点数,|X |为数据集总的数据点数.根据多层嵌套网格结构定义形式及网格坐标映射机制,只要保存底层网格结构及其相应的数据点数目信息,容易得到任意层、任意网格的选

闫光辉 等:基于多重分形的聚类层次优化算法 1289

择度.

定义 6(密集网格). 对于i Grid ,若τ×>X Grid y selectivit i )(,其中,τ为网格密集度阈值,则i Grid 为密集 网格.

定义 7(初始聚类). 数据空间中邻接的密集网格的最大集合即为初始聚类.两个网格i Grid 和j Grid 邻接的条件之一是它们之间共享一个公共超平面,或者存在另一个网格k Grid ,使得i Grid 与k Grid 邻接,同时k Grid 与

j Grid 邻接.

规定网格对应的选择度后,给定网格密集度阈值τ,容易得到密集网格信息,相应地我们可以通过判断邻接的密集网格来进行初始的聚类操作,从而得到初始的聚类结果,图1为合成数据集对应的初始聚类情况.分析基于密度和网格的聚类算法过程易知,选择不同的网格密度阈值并不会从根本上改变聚类的形状,虽然我们可以通过改变网格的边长来得到不同的聚类结果,但无论我们怎样改变网格的边长,也无法将所有矩形框生成为一个聚类,同时将4个四分之一圆环形成为一个聚类.

因此,我们考虑在已经得到了一定数目的、能基本反映数据集分布情况的初始聚类结果的基础上,如何对初始聚类结果进一步优化,以求能更精确地反映数据的自然聚集情况.基于前面的分析,我们设计了FCHO 算法对所得到的聚类结果进行后续处理, 从而发现数据中更为隐蔽的模式.

为便于对算法进行描述,表1列出了算法所使用的主要符号.

Table 1 Symbols 表1 算法使用符号

No. Symbol Signification 1S Data space 2 A Bounded interval 3X Data set 4Current _cluster Cluster number 5Cluster i Cluster i

6

q

i D q th fractal dimension of Cluster i 7Cluster ij Merge of Cluster i and Cluster j 8q

ij D q th fractal dimension of Cluster ij

9

G i Cluster set for merging

10 εq Threshold value of q th fractal dimension for grouping 11

δq Threshold value of q th fractal dimension for merging

2.2 FCHO 算法描述

分形维数是反映数据分布复杂程度的一个重要特征参数,随着数据集结构形态的不同而变化,在一定程度上定量地描述了数据集内部结构的复杂性,并且同一数据集的分形维数不会因嵌入空间维数及嵌入位置不同 而发生显著变化.表2列出了图1中的聚类所对应的分形维数)10,2,10(?=q D q i ,图4为合成数据集初始聚类 结果对应的q ?D q 曲线,容易看出,位于四角的交叉矩形框和中心交叉矩形框所对应的分形维数基本接近,而位于4个象限内的4个四分之一圆环所对应的分形维数基本接近.考虑到多重分形维数的性质,位于同一数据空间的聚类如果具有比较接近的多重分形维数,并且合并之后聚类所对应的分形维数与原聚类对应的分形维数相比变化较小,则根据分形维数的性质可知合并后的聚类内部结构特征与合并前的聚类内部结构特征相似,相应地,这两个聚类从相似性角度而言应该合并.

1290 Journal of Software 软件学报 V ol.19, No.6, June 2008

Table 2 D2-20K data set clusters and their fractal dimension

表2 D2-20K 数据集聚类及其对应的分形维数

Cluster ID

C 10 C 2 C 10 Cluster description

C 1 1.461 57 1.274 07 1.159 0

Centre cross square, |C 1|=4000 C 2 1.401 9 1.298 6 1.215 3Low left cross square, |C 2|=2000 C 3 1.411 7 1.297 8 1.210 2Low right cross square, |C 3|=2000 C 4 1.446 2 1.297 0 1.198 0Upper left cross square, |C 4|=2000 C 5 1.420 1 1.292 6 1.164 8Upper right cross square, |C 5|=2000 C 6 2.677 4 1.836 5 1.652 2Low left quarter cirque, |C 6|=2000 C 7 2.653 6 1.828 1 1.658 6Low right quarter cirque, |C 7|=2000 C 8 2.727 0 1.827 6 1.621 7Upper left quarter cirque, |C 8|=2000

C 9

2.697 5

1.822 2

1.643 6

Upper right quarter cirque, |C 9|=2000

Fig.4 q ?D q plots of the initial cluster results

图4 初始聚类结果对应q ?D q 曲线

FCHO 算法主要分为初始聚类和优化聚类两个过程.其中初始聚类过程可以利用当前任何一种聚类算法,为了与优化聚类过程共用数据结构,我们设计了基于网格与密度的初始聚类过程.下面主要说明聚类优化的处理过程.

具体处理过程如下:

依据式(3)和式(4)确定聚类优化及合并的阈值参数q ε和q δ:

max()min()_/2q q i i q D D Current cluster ε?=

????

(3)

q q εδ?=2 (4)

其中,)min(q i D 及)max(q i D 分别对应当前所有聚类的q 次分形维数的最小和最大值.

计算两两聚类分形维数的差值,按照式(5)生成可能合并聚类集合.对至少包含两个聚类的集合,选择集合中

差值最小的两个聚类,进行可能的聚类合并操作,利用式(6)确认相关的合并工作,并从集合中删除合并的聚类,重复以上操作直至可能合并聚类集合为空.

||,10,2,10q q i j q D D q ε?≤=? (5)

||||,2,10q q q q ij i q ij j q D D and D D q δδ?≤?≤=

(6)

其中,q i D ,q j D 和q ij D 分别对应聚类i Cluster ,j Cluster 和ij Cluster 的q 次分形维数,q ε和q δ参照式(2)与式(3)定义. 初始化聚类步骤见算法1,一遍聚类层次优化过程见算法2,其中构造可能合并聚类集合的过程见算法3,聚类合并操作见算法4.

闫光辉 等:基于多重分形的聚类层次优化算法

1291

算法1. Initialization step. 算法2. Optimization step. Input: normalized data set Input: grid structure of the initial clusters Output: initial cluster results Output: grid structure of the merged result Begin

Begin

construct the bottom grid structure optimize the initial clusters

set cluster number as 1 calculate q i D and ascending sort

for all the grids unlabelled initialize

εq and δq set true label generate the possibly merge cluster sets recursively check the neighbors call merge operation increase the cluster number by 1 End

End

算法3. Generate the possibly merge cluster sets.

Input: ascending sequence of clusters G , εq and δq Output: sets of possibly merge clusters

Begin

(),1,2,...,_1,1,10,2,10q q q ij j i D D D i Current cluster j i q ?=?=?=+=?

1st step for the maximal 10ij D ??satisfied with 1010ij D ?δ??>, group G into two sets 1i G and 2i G

repeat the group operation on 1i G and 2i G , get the cluster groups which satisfied with 10?i D

2nd step for the result groups of the first step, execute the same operation according to 10i D ,and get the

cluster groups which satisfied with 10?i D and 10i D

3rd step for the result groups of the second step, execute the same operation according to 2i D ,and get the

cluster groups which satisfied with 10,i D ?10i D and 2i D

End

算法4. Merge operation.

Input: groups of clusters for merging G i Output: merging result of G i Begin

i G ′=?,flag=false; while 2||≥i G and not flag flag=true;

for all (){}

i j i i j i G D G D D D ∈∈,|,

j i ij Cluster Cluster Cluster ∪=

if q j ij q i ij q q q q D D and D D σσ≤?≤?|||| flag=false;

2,10

2

q q q q

ij i ij j ij q D D D D D ?=?+?=

if ij D ? is

minimum

1292 Journal of Software 软件学报 V ol.19, No.6, June 2008

j i i Cluster Cluster =,ij i D D =

i i i D G G ?=,j i i D G G ?=,i i i G G D ′′=+

if i G ≠? i i i G G G ′′=∪

End

从算法2可以看出,聚类层次合并算法耗费时间取决于聚类对应的分形维数计算工作,对于合并操作最多

需要计算

Max _21

i

group

c i C =∑

次分形维数,其中i i G c =,而

Max _1

_group

i i c Current cluster ==∑

,Max _group 为当前最大的可能

合并聚类分组数目,对于实际应用而言,初始化得到的聚类数目比较少,并且分形维数计算过程共享网格聚类算法所采用的多层网格结构,聚类层次合并工作完全基于主存进行.此外,根据最后得到的'i G 中所包含的合并后聚类结果,递推执行聚类优化算法,最终可以得到初始聚类的合并家族树,有利于用户对初始聚类进行后续处理 工作.

3 实验与分析

基于图1对应的D2-20K 数据集与聚类操作经常使用的标准数据集t8-8K 及t7-10K 从算法有效性和算法执行效率两个方面进行了相关的实验工作,算法代码利用Delphi 编写,操作系统为Windows Server 2003,硬件环境为PIII 1.7G,512MB RAM. 3.1 算法的有效性测试

D2-20K 数据集实验针对图1所示的初始聚类结果进行聚类的优化工作.其中,初始聚类对应的分形维数见表2,阈值参数100.33ε?≈,100.66δ?≈;20.14ε≈,20.28δ≈;100.12ε≈,100.24δ≈.算法第1遍执行得到两个 可能合并聚类集合分别为G 1={C 1,C 2,C 3,C 4,C 5}和G 6={C 6,C 7,C 8,C 9},聚类合并结果为:C 1与C 3合并,C 2与C 4合并,C 6与C 8合并,C 7与C 9合并.为对比起见,我们把任意两个聚类合并之后的分形维数以表3列出.

Table 3 Fractal dimensions and their differences of the clusters and the merged clusters of D2-20K data set

表3 D2-20K 数据集初始聚类对应的分形维数及两两合并以后之差

C 1 C 2 C 3 C 4 C 5 C 6 C 7 C 8 C 9 C 1 1.461 6 1.274 0 1.159 0 0.069 9 0.028 2 0.041 7 0.054 7 0.026 4 0.028 3 0.083 8 0.031 3 0.052 4 0.063 4 0.028 6 0.034 8 0.527 8 0.281 2 0.246 6 0.526 8 0.277 0 0.249 8 0.508 1 0.276 8 0.231 4 0.516 4 0.274 1 0.242 3 C 2 1.653 9 1.314 5 1.228 8 1.401 9 1.298 6 1.215 3 0.059 1 0.031 6 0.027 4 0.078 5 0.031 4 0.047 1 0.092 0 0.043 8 0.048 1 0.487 4 0.268 9 0.218 5 0.486 4 0.264 7 0.221 7 0.467 7 0.264 5 0.203 2 0.548 6 0.261 8 0.286 C 3 1.616 4 1.312 3 1.212 9 1.590 2 1.329 9 1.240 2 1.411 7 1.297 8 1.210 2 0.077 5 0.040 8 0.036 6 0.066 8 0.032 0 0.034 8 0.490 4 0.269 3 0.221 0 0.489 3 0.265 1 0.224 2 0.557 2 0.264 9 0.292 3 0.478 9 0.262 2 0.216 7 C 4 1.681 7 1.316 9 1.230 9 1.608 1 1.329 2 1.253 7 1.553 0 1.256 6 1.167 4 1.446 2 1.297 0 1.198 0 0.079 6 0.033 8 0.045 8 0.496 9 0.269 8 0.227 1 0.548 5 0.265 5 0.283 0 0.477 2 0.265 3 0.211 9 0.485 4 0.262 6 0.222 8 C 5 1.644 1 1.311 9 1.196 7 1.558 7 1.251 7 1.141 9 1.600 5 1.327 2 1.222 3 1.600 7 1.328 6 1.227 2 1.420 1 1.292 6 1.164 8 0.590 5 0.272 0 0.318 5 0.514 6 0.267 7 0.246 9 0.495 9 0.267 5 0.228 4 0.504 2 0.264 8 0.239 4 C 6 2.154 1 1.473 6 1.382 7 2.442 1.629 4 1.398 3 2.286 5 1.441 1 1.222 1 2.212 6 1.441 7 1.219 1 2.086 4 1.327 1 1.090 0 2.677 4 1.836 5 1.652 2 0.161 8 0.080 0 0.081 8 0.143 1 0.079 7 0.063 4 0.599 8 0.314 4 0.285 4 C 7 2.171 1 1.473 3 1.381 7 2.275 4 1.440 6 1.224 4 2.423 8 1.630 9 1.399 1 2.099 1 1.332 5 1.145 3 2.223 5 1.436 8 1.181 7 2.492 8 1.752 3 1.573 6 2.653 6 1.828 1 1.658 6 0.569 0 0.306 3 0.262 7 0.115 2 0.078 1 0.037 1 C 8 2.157 5 1.471 8 1.380 1 2.285 4 1.440 0 1.235 8 2.102 7 1.330 6 1.123 6 2.514 6 1.629 0 1.400 5 2.267 1 1.432 7 1.181 12 2.519 6 1.753 4 1.605 5 2.624 4 1.521 5 1.377 5 2.727 0 1.827 6 1.621 7 0.096 8 0.074 5 0.022 3 C 9

2.165 2 1.466 5 1.370 9 2.090 0 1.329 8 1.142 6 2.180 7 1.434 6 1.218 5 2.185 9 1.436 5 1.226 5 2.382 9 1.622 6 1.359 8 2.671 2 1.515 0 1.362 5 2.514 8 1.747 0 1.614 0 2.484 4 1.750 4 1.610 4 2.697 5 1.822 2 1.643 6

表3中主对角线及左下角各单元分别对应聚类各自的分形维数及两两合并之后的分形维数(第1行对应

闫光辉 等:基于多重分形的聚类层次优化算法

1293

D ?10,第2行对应D 2,第3行对应D 10),而右上角单元分别对应聚类合并之后与合并之前的分形维数差值(其中第2行元素为相应的D 2差值的均值,第3行元素为相应的D 10差值的均值,而第1行元素为第2行元素与第3行元素之和).图5给出了相关聚类合并前后的q ?Dq 曲线的对比情况,第3.3节的图12A 为相应的实验结果

.

Fig.5 Post-Processing results of the clusters of D2-20K data set

图5 D2-20K 数据集聚类后续处理结果

标准数据集验证工作我们选择t8-8K 和t7-10K 进行.其中,t7-10K 数据集包含10 000个数据点,分别对应9个形状各异、密度变化较小的聚类及一些噪声数据点;而t8-8K 数据集包含8 000格数据点,分别对应8个不同形状、不同大小、不同密度的非球形聚类及大量的噪声数据点.我们的主要目的是对初始聚类结果做进一步的处理,并期望发现未知的、有趣的模式.

图6A 为t7-10K 数据集聚类初始结果,图6B 为对应的q ?Dq 曲线.聚类相应的分形维数及合并之后的变化列于表4.聚类优化算法对应阈值参数100.18ε?≈,20.08ε≈,100.08ε≈,100.36δ?≈,20.16δ≈,100.16δ≈.算法第1遍执行得到可能合并的聚类集合分别为: G 1={C 1,C 4,C 7,C 9},G 2={C 2,C 3,C 6},G 5={C 5,C 8};对应的合并结果为C 1与

C 4合并,C 7与C 9合并,C 5与C 8合并,C 2与C 6合并,其中每个集合中所包含聚类两两合并之后分形维数变化情况如图6C ~图6K 所示.最终的实验结果见第3.3节的图13A 所示.

图7A 为t8-8K 数据集的初始聚类结果,图7B 为对应的q ?D q 曲线.聚类相应的分形维数及合并之后的变化列于表5.聚类优化算法参数:16.010≈?ε,07.02≈ε,07.010≈ε,32.010≈?δ,14.02≈δ,14.010≈δ.算法第1遍执行的可能分组为:},,,{65411C C C C G =,},{822C C G =,}{33C G =,}{77C G =,得到的聚类合并结果为1C 与5C 合并,4C 与6C 合并.值得注意的是,从图7I 明显可以看出2C 与8C 对应的多重分形维数曲线非常接近,如果仅仅考虑这一

点,我们很容易得到2C 与8C 也能合并的结论,但合并之后聚类对应的分形维数与合并之前的分形维数变化程度非常剧烈,因此,我们可以断定在第1遍算法执行时不应该合并2C 与8C .最终得到的实验结果如第3.3节的图

14A 所示.

1294 Journal of Software 软件学报 V ol.19, No.6, June 2008

Fig.6 Post-Processing results of the clusters of t7-10K data set

图6 t7-10K 数据集聚类后续处理结果

Table 4 Fractal dimensions and their differences of the clusters and the merged clusters of t7-10K data set

表4 t7-10K 数据集聚类对应分形维数及两两合并以后之差

C 1 C 2 C 3 C 4 C 5 C 6 C 7 C 8 C 9 C 1 2.157 7 1.719 7 1.662 5 0.392 3 0.223 8 0.168 5 0.087 1 0.027 6 0.059 5 0.115 4 0.069 4 0.046 1 0.542 1 0.289 5 0.252 6 0.281 8 0.180 6 0.101 2 0.089 3 0.024 7 0.064 7 0.547 7 0.288 9 0.258 8 0.090 4 0.047 4 0.043 0 C 2 1.939 4 1.530 1 1.470 2 2.817 1 1.788 1 1.614 8 0.696 0 0.381 4 0.314 6 0.083 7 0.047 1 0.036 7 0.742 1 0.403 9 0.338 2 0.216 3 0.145 6 0.070 7 0.645 5 0.363 0 0.282 5 0.599 0 0.323 9 0.275 1 0.751 1 0.408 1 0.343 0 C 3 1.846 6 1.755 7 1.661 4 1.903 8 1.380 8 1.264 6 2.777 8 1.736 4 1.543 5 0.111 4 0.085 2 0.026 2 0.759 7 0.426 1 0.333 6 0.596 4 0.322 4 0.274 0 0.277 0 0.174 1 0.102 9 0.677 1 0.368 1 0.308 9 0.505 7 0.281 7 0.224 0 C 4 2.011 1 1.637 5 1.583 2 2.328 1 1.734 6 1.642 0 2.448 0 1.629 9 1.544 8 2.289 9 1.722 6 1.595 9 0.338 1 0.193 0 0.145 1 0.097 0 0.074 4 0.022 6 0.174 5 0.098 4 0.076 0 0.241 3 0.133 3 0.108 0 0.191 5 0.102 8 0.088 6 C 5 2.008 1 1.538 2 1.482 1 1.839 9 1.458 0 1.372 6 1.657 6 1.409 9 1.341 6 2.268 0 1.621 8 1.556 2 2.321 7 1.935 6 1.806 8 0.789 4 0.447 5 0.341 8 0.430 2 0.257 0 0.173 2 0.066 0 0.043 5 0.022 5 0.351 2 0.186 4 0.164 8 C 6 2.162 6 1.600 6 1.544 2 2.411 0 1.669 8 1.550 8 2.352 8 1.467 1 1.311 9 2.361 6 1.733 3 1.634 6 2.132 4 1.441 7 1.375 7 2.672 0 1.842 7 1.628 2 0.459 3 0.263 6 0.195 7 0.658 7 0.369 8 0.288 9 0.491 1 0.277 0 0.214 1 C 7 2.401 6 1.719 8 1.623 1 1.769 3 1.366 3 1.291 5 1.704 3 1.529 3 1.435 4 2.000 9 1.583 8 1.488 6 2.112 9 1.546 1 1.496 8 1.793 9 1.493 0 1.385 0 2.294 3 1.670 6 1.533 2 0.310 4 0.171 0 0.139 4 0.047 3 0.014 8 0.032 5 C 8 2.017 7 1.532 4 1.478 5 1.958 7 1.531 6 1.438 3 1.694 9 1.461 5 1.368 8 2.426 7 1.675 1 1.603 4 2.735 4 1.885 8 1.786 9 2.111 2 1.513 0 1.431 1 2.147 8 1.625 7 1.544 2 2.376 1 1.922 8 1.812 0 0.312 9 0.180 1 0.132 8 C 9

2.360 2 1.659 8 1.583 0 2.051 1 1.333 3 1.252 6 1.981 3 1.433 8 1.336 1 2.081 0 1.591 5 1.497 6 1.924 9 1.628 7 1.526 9 2.115 9 1.491 7 1.388 3 2.644 0 1.697 4 1.587 4 2.196 6 1.628 7 1.561 5 2.320 0 1.694 7 1.576 6

闫光辉等:基于多重分形的聚类层次优化算法

1295

Fig.7 Post-Processing results of the clusters of t8-8K data set

图7 t8-8K数据集聚类后续处理结果

Table 5Fractal dimensions and their differences of the clusters and the merged clusters of t8-8K data set 表5t8-8K数据集聚类对应分形维数及两两合并以后之差

C1C2C3C4C5C6C7C8

C12.579 4

1.822 2

1.680 2

0.058 3

0.045 7

0.012 6

0.301 7

0.178 5

0.123 2

0.398 3

0.200 3

0.198 1

0.049 0

0.028 0

0.021 0

0.250 2

0.143 7

0.106 6

0.734 8

0.389 8

0.345 0

0.300 8

0.186 2

0.114 5

C22.501 0

1.776 9

1.663 7

2.373 5

1.823 1

1.655 1

0.157 7

0.086 9

0.070 8

0.635 4

0.331 4

0.304 0

0.033 2

0.012 7

0.020 4

0.579 9

0.332 3

0.247 6

0.680 2

0.313 0

0.367 1

1.264 9

0.643 5

0.621 4

C32.078 6

1.557 2

1.473 7

2.126 0

1.692 3

1.558 7

2.098 7

1.649 2

1.513 6

0.306 7

0.155 1

0.151 7

0.342 1

0.194 7

0.147 4

0.288 9

0.160 5

0.128 4

0.296 0

0.144 4

0.151 6

0.455 8

0.274 9

0.180 8

C42.388 1

1.632 7

1.524 0

2.064 5

1.502 0

1.405 5

2.207 5

1.591 4

1.487 0

2.662 3

1.843 8

1.763 9

0.264 3

0.117 3

0.147 0

0.033 9

0.011 8

0.022 1

0.384 0

0.181 4

0.202 5

0.224 3

0.124 5

0.099 9

C52.364 4

1.837 9

1.709 1

2.3735

1.823 1

1.655 1

2.411 0

1.528 7

1.457 3

2.232 3

1.703 4

1.582 9

2.590 0

1.797 6

1.696 0

0.182 5

0.069 8

0.112 7

0.636 0

0.327 4

0.308 5

0.109 3

0.091 1

0.018 2

C62.318 6

1.679 7

1.596 6

2.031 6

1.491 4

1.443 0

1.839 3

1.576 3

1.491 4

2.479 3

1.845 9

1.722 9

2.322 3

1.741 2

1.598 3

2.741 1

1.824 5

1.726 1

0.586 6

0.297 5

0.289 0

0.167 3

0.085 5

0.081 8

C72.063 5

1.490 3

1.403 5

2.243 0

1.567 5

1.368 8

2.175 6

1.721 5

1.592 7

2.196 8

1.709 4

1.587 8

2.131 6

1.540 4

1.447 8

2.284 0

1.583 7

1.482 4

2.285 6

1.938 0

1.816 8

1.079 1

0.521 6

0.557 5

C82.021 4

1.650 1

1.555 4

1.622 1

1.193 3

1.036 0

1.765 1

1.474 9

1.405 8

2.067 0

1.722 7

1.611 9

2.526 5

1.732 9

1.676 2

2.260 9

1.752 0

1.611 0

2.328 4

1.372 6

1.180 6

2.370 0

1.850 5

1.659 6

1296

Journal of Software 软件学报 V ol.19, No.6, June 2008

3.2 算法效率分析 3.2.1 时间复杂度分析

FCHO 算法主要目的在于对能基本反映数据集分布情况的初始聚类结果进行后续处理,进而发现数据集自然聚集情况.因此,我们着重分析聚类后续处理过程的时间复杂度,其中,计算聚类结果的分形维数是影响聚类后续处理过程效率的关键因素.

根据式(1)可知,计算分形维数需要得到不同层次网格所包含数据点的统计信息,因而需要对不同层次的网格进行扫描工作,在固定网格对应的维坐标顺序的情况下,为快速统计具有相同坐标值网格所包含的数据点数目,我们对网格队列基于坐标值进行快速排序,快速排序的时间复杂度为(log )O N N ?,其中,N 为参与排序的数据点数目.对FCHO 算法而言,相应地,N 为每层网格的数目(最大为数据点数目),分形维数计算时间复杂度为

(log )O Level N N ??,其中,Level 为多层嵌套网格的层次数目,通常情况下N Level <<.因此,在仅存储底层网格结构情况下,基于Z-ordering 技术计算分形维数的时间复杂度为(log )O N N ?.

算法2中,FCHO 算法执行一遍的时间主要在于需要计算分形维数

Max _21

i group

c i C =∑

次,即对每一个可能合并聚类

集合计算其成员两两合并后所对应的分形维数,其中i i G c =,而

Max _1

_group

i i c Current cluster ==∑

,_Current cluster 为

当前聚类的数目.

对初始聚类的最佳可能合并分组与最坏可能合并分组的执行情况分别分析如下:

最坏可能合并分组对应为:一个聚类独立构成一个集合,其余聚类形成一个可能合并的聚类集合.此时,对于仅包含一个聚类的分组,不需要计算分形维数,而对于包含其余聚类的分组,其分形维数的计算次数为

(_1)(_2)

2

Current cluster Current cluster ???.

此外,为了得到可能合并聚类分组,需要计算每个聚类对应的分形维数,次数为Current _cluster ,因而,总的分形维数计算次数为

Current _cluster +

(_1)(_2)

2

Current cluster Current cluster ???,

即2(_)O Current cluster .

最佳可能合并分组对应为:得到???

???2_cluster Current 个可能合并的聚类集合,其中每个可能合并聚类集合包含初始聚类数目最多为 2.此时,所对应的分形维数计算次数为??

????2_cluster Current ,加上计算每个初始聚类结果的分形维数次数cluster Current _,总的分形维数计算次数为cluster Current _2

3

?,即)_(cluster Current Ο.

最坏情况下,FCHO 算法一遍执行对应的分形维数计算次数为cluster Current cluster Current _2

_2

+,相应地,

创建聚类合并家族树需要计算cluster Current cluster Current cluster Current _22log _2_????

?

????+次分形维数. 考虑计算分形维数对应的时间复杂度)log (N N ?Ο,则FCHO 算法总的时间复杂度为: O (Current _ 2log )cluster N N ??,由于N cluster Current <<_,因而总体时间复杂度为)log (N N ?Ο.

图8为数据集规模与处理时间关系,其中,规模比例按照如下规则设置:比例系数为1对应原始的聚类结果,比例系数小于1表示对初始聚类结果按照对应比例进行采样,比例系数大于1表示对初始聚类结果按照对应比例减去1进行采样,然后增加采样得到的数据点拷贝,之所以这样做的目的在于维持数据集的分形维数基本不变,从而保证对所有比例规模的初始聚类结果其后续处理过程中分形维数的计算次数恒定.此外,将3个数据集

闫光辉 等:基于多重分形的聚类层次优化算法

1297

分别嵌入到不同维度的超平面中

,所得到实验结果如图9

所示.

Fig.8 Data set scale vs. CPU time Fig.9 Data set feature number vs. CPU time

图8 规模与运行时间 图9 属性数目与运行时间

分析算法2的聚类合并处理过程,分形维数的计算次数是影响FCHO 算法执行时间的关键因素.为了尽量减少分形维数的计算次数,FCHO 算法首先对初始聚类基于分形维数的接近程度进行分组,从而得到可能合并的聚类集合,这一过程可以显著减少分形维数的计算次数.如果不对初始聚类结果按照分形维数接近程度进行分组,则3个数据集对应的分形维数计算次数分别为(D2-20K:66;t7-10K:65;t8-8K:56),而分组以后对应的分形维数计算次数分别为(D2-20K:29;t7-10K:26;t8-8K:27).由此可见,虽然t8-8K 的数据点数目小于t7-10K 的数据点数目,但整个合并过程中t8-8K 对应的分形维数计算次数为27,大于t7-10K 对应的分形维数计算次数26.因此,在图8和图9中t8-8K 数据集的运行时间超过t7-10K 数据集的相应运行时间,这充分体现了分形维数计算次数对算法执行时间的影响程度.

3.2.2 空间复杂度分析

如第 2.1节所述,初始聚类过程采用基于网格和密度的聚类技术,则聚类后续处理过程可以与初始聚类过程共享同一个嵌套多层网格结构,所增加的存储空间仅为每个初始聚类结果对应的网格结构的拷贝.如果无法与初始聚类结果共享存储空间,则聚类后续处理过程需要构建相应的底层网格结构,由于只需要存储非空的网格结构信息,所对应的存储空间的最大需求正比于数据点数目.假定数据集不包含异常数据点和稀疏数据点(异常点和稀疏点在初始聚类过程中已经排除),初始聚类结果共包含数据点数目为N ,则初始网格结构对应的存储空间正比于N .在聚类后续过程中通过计算合并聚类所对应的分形维数来判断合并操作是否合法,需要保存每个聚类的拷贝,所需存储空间同样正比于N .因此,算法总的存储空间需求与数据点数目呈线性关系,即N ?2,相应地

,算法的空间复杂度为O (N ),合并算法空间需求与底层网格数目呈线性关系.数据集规模及属性数目与存储空间的关系如图10及图11所示.

Fig.10 Data set scale vs. memory Fig.11 Data set feature number vs. memory

图10 规模与存储空间 图11 属性数目与存储空间

1298

Journal of Software 软件学报 V ol.19, No.6, June 2008

3.3 与传统层次聚类方法的对比分析

根据第 1.2节,采用传统意义上的网格与密度聚类技术无法有效解决聚类的后续处理问题,基于划分的聚类技术如K-Means 也无法成功应对这一问题.当前的层次聚类技术如BIRCH 无法应用于非球形聚类情况;CURE 算法选择两个聚类代表点对之间的最小距离作为聚类合并依据,忽略了两个不同聚类中对象的聚集互连性等信息;ROCK 技术则仅仅强调对象间的互连性,完全不考虑对象之间近似度的信息;Chameleon 算法虽然综合考虑聚类之间的互连性与聚类内部特征,从而确定最相似的聚类进行合并操作,但需要用户确定如最近邻居数目、结果聚类数目及稀疏图划分平衡限制因子等参数.从本质上分析,层次聚类操作中通常使用各种距离如欧式距离作为相似性度量的主要依据,虽然进行初始聚类操作比较有效,但无法应用于相互之间差异较大的聚类的后续处理问题.

图12~图14分别给出了FCHO 算法与基于距离度量机制的层次聚类算法的对比实验结果,其中,子图A 对应FCHO 算法的运行结果,子图B 对应单连接实验结果,子图C 对应全连接实验结果.图中横线连接参与合并的聚类,竖线的位置表示聚类合并的先后顺序,位置相同的竖线表示聚类合并操作在同一遍聚类优化算法中 进行.

需要指出的是,在图13A 中,聚类3C 与97+C 的合并操作看来比较奇怪,对照图6A,按照人们的习惯性思维,应该将3C 与62+C 合并,通过分析合并过程我们得知,聚类合并算法执行时确实将2C ,3C 及6C 划分为一个分组,但在合并过程中判断2C 和6C 合并是满足条件的,这里的合并操作非常鲜明地体现出在形状一致的情况下优先考虑聚类之间距离的特点,而一旦2C 和6C 合并完成,在3C 与97+C 的合并过程中,算法又显示出在聚类间距离基本一致的情况下优先考虑形状的特性(此时,97+C 比62+C 更加类似于3C ),从而体现算法综合考虑距离与形状的特点.此外,对于图14A 而言,当聚类合并中间结果为6451+++C ,32+C ,7C 与8C 时,利用原有的聚类分组算法我们得到4个可能合并分组,其中每个分组各包含一个聚类,按照判断聚类合并的标准此时已经不存在可能的合并聚类了,为了生成聚类合并的家族树,我们在对聚类分组时减少所使用的分形维数(仅利用10?i D 和10i D ,也可以仅利用其中之一),从而得到如图14A 所示的结果

.

Fig.12 Result of D2-20K Fig.13 Result of t7-10K Fig.14 Result of t8-8K 图12 D2-20K 数据集运行结果

图13 t7-10K 数据集运行结果

图14 t8-8K 数据集运行结果

对于图12而言,容易看出单连接与全连接的聚类合并结果无法精确反映数据集的自然聚集情况,而FCHO 算法的执行结果则可以揭示数据集中隐藏的模式.分析图13及图14我们可以发现,FCHO 算法的执行结果与全连接算法的运行结果更为接近,而与单连接算法的运行结果相差较大.图14中,1C 与5C 及2C 与3C 的合并操作在所有运行结果中都发生,并且合并层次也基本类似.图13中,7C 与9C 及5C 与8C 的合并操作也存在类似情况,尤其是对于FCHO 算法和全连接算法而言,7C 与9C 及5C 与8C 的合并操作发生在相同的层次或非常接近的层次.而大多数情况下基于全连接的层次聚类算法比单连接层次聚类技术更倾向于发现有效的聚类层次结构,这也间接证明了FCHO 算法的有效性.

4 结论及展望

FCHO 算法利用多重分形技术,综合考虑聚类形状、聚类间距离及聚类整体数据分布等特征进行聚类的层次合并操作,并最终生成反映数据自然聚集状态的聚类家族树,从而支持用户对聚类结果做进一步的分析工作.

闫光辉等:基于多重分形的聚类层次优化算法1299

算法与基于网格和密度的聚类算法共享存储结构,因而不需要增加大量额外的存储空间,同时具有参数自适应及易于实现的特点.在合成数据集及实际数据集上的实验表明FCHO算法不失为一种简单、高效的聚类后续处理方法.

References:

[1] H an JW, Kamber M,Wrote; Fan M, Meng XF, et al., Trans. Data Mining: Concepts and Techniques. Beijing: China Machine Press,

2001. 223?253 (in Chinese).

[2] J ain AK, Murty MN, Flynn PJ. Data clustering: A review. ACM Computing Surveys, 1999,31(3):264?323.

[3] K otsiants SB, Pintelas PE. Recent advances in clustering: A brief survey. WSEAS Trans. on Information Science and Applications,

2004,1(1):73?81.

[4] M acqueen J. Some methods for classification and analysis of multivariate observations. In: LeCam L, Neyman J, eds. Proc. of the

5th Berkeley Symposium on Mathematical Statistics and Probability. 1967. 281?297.

[5] H uang ZX. Extensions to the k-Means algorithm for clustering large data sets with categorical values. Data Mining and Knowledge

Discovery, 1998,2(3):283?304.

[6] N g RT, Han JW. Efficient and effective clustering methods for spatial data mining. In: Bocca J, Jarke M, Zaniolo C. eds. Proc. of the

20th VLDB Conf. 1994. 144?155.

[7] Z hang T, Ramakrishnan R, Livny M. BIRCH: an efficient data clustering method for very large databases. In: Jagadish HV, Mumick

IS, eds. Proc. of the 1996 ACM SIGMOD Int’l Conf. on Management of Data. Quebec: ACM Press, 1996. 103?114.

[8] G uha S, Rastogi R, Shim K. CURE: an efficient clustering algorithm for large databases. In: Haas LM, Tiwary A, eds. Proc. of the

1998 ACM SIGMOD Int’l Conf. on Management of Data. Seattle: ACM Press, 1998. 73?84.

[9] G uha S, Rastogi R, Shim K. ROCK: A robust clustering algorithm for categorical attributes. Information Systems, 2000,25(5):

345?366.

[10] K arypis G, Han EH, Kumar V. CHAMELEON: A hierarchical clustering algorithm using dynamic modeling. IEEE Computer,

1999,32(8):68?75.

[11] E ster M, Kriegel H-P, Sander J, Xu XW. A density-based algorithm for discovering clusters in large spatial databases with noises. In:

Simoudis E, Han JW, Fayyad UM, eds. Proc. of the 2nd Int’l Conf. on Knowledge Discovery and Data Mining (KDD’96). AAAI Press, 1996. 226?231.

[12] A nkerst M, Breunig MM, Kriegel H-P, Sander J. OPTICS: ordering points to identify the clustering structure. In: Delis A, Faloutsos

C, Ghandeharizadeh S, eds. Proc. of the 1999 ACM SIGMOD Int’l Conf. on Management of Data. Philadelphia: ACM Press, 1999.

49?60.

[13] W ang W, Yang J, Muntz R. STING: a statistical information grid approach to spatial data mining. In: Jarke M, Carey MJ, Dittrich

KR, et al., eds. Proc. of the 23rd Int’l Conf. on Very Large Data Bases. Athens: Morgan Kaufmann Publishers, 1997. 186?195. [14] S heikholeslami G, Chatterjee S, Zhang AD. WaveCluster: a multi-resolution clustering approach for very large spatial databases. In:

Gupta A, Shmueli O, Widom J, eds. Proc. of the 24th Int’l Conf. on Very Large Data Bases. New York: Morgan Kaufmann Publishers, 1998. 428?438.

[15] A grawal R, Gehrke J, Gunopulos D, Raghavan P. Automatic subspace clustering of high dimensional data for data mining

applications. In: Haas LM, Tiwary A, eds. Proc. of the 1998 ACM SIGMOD Int’l Conf. on Management of Data. Seattle: ACM Press, 1998. 94?105.

[16] L auritzen SL. The EM algorithm for graphical association models with missing data. Computational Statistics and Data Analysis,

1995,19(2):191?201.

[17] C heeseman P, Stutz J. Baysian classification (autoclass): Theory and results. In: Fayyad UM, Piatetsky-Shapiro G, Smith P,

Uthurusamy R, eds. Advances in Knowledge Discovery and Data Mining. AAAI/MIT Press, 1996. 153?180.

[18] F aloutsos C, Seeger B, Traina A, Traina Jr C. Spatial join selectivity using power laws. In: Proc. of the 2000 ACM SIGMOD

international Conf. on Management of Data. Dallas: ACM Press, 2000. 177?188.

[19] B elussi A, Faloutsos C. Estimating the selectivity of spatial queries using the ‘Correlation’ fractal dimension. In: Proc. of the 21st

Intl. Conf. on Very Large Data Bases (VLDB). 1995. 299?310.

1300 Journal of Software软件学报 V ol.19, No.6, June 2008

[20] F aloutsos C, Kamel I. Beyond uniformity and independence: Analysis of R-trees using the concept of fractal dimension. In: Proc. of

the 13th ACM SIGACT-SIGMOD-SIGART Symp. on Principles of Database Systems. Minneapolis, Minnesota: ACM Press, 1994.

4?13.

[21] W u MJ. Multifractal entropy and multifractal dimension spectrum. Acta Electronic Sinica, 1993,21(10):7?13 (in Chinese with

English abstract).

[22] Q ian WN, Gong XQ, Zhou AY. Clustering in very large databases based on distance and density. Journal of Computer Science and

Technology, 2003,18(1):67?76.

[23] M a S, Wang TJ, TG SW, Yang DQ, Gao J. A fast clustering algorithm based on reference and density. Journal of Software,

2003,14(6):1089?1095 (in Chinese with English abstract). https://www.360docs.net/doc/7314219627.html,/1000-9825/14/1089.htm

[24] R en YG, Yu G. Clustering for multi-dimensional data and its visualization. Chinese Journal of Computers, 2005,28(11):1861?1865

(in Chinese with English abstract).

[25] Y ue SH, Wang ZY. Bisecting grid-based clustering approach and its validity. Journal of Computer Research and Development,

2005,42(9):1505?1510 (in Chinese with English abstract).

[26] B arbará D, Chen P. Using the fractal dimension to cluster datasets. In: Proc. of the 6th ACM SIGKDD Int’l Conf. on Knowledge

discovery and data mining (KDD-2000). ACM Press, 2000. 260?264.

[27] Y an GH, Li ZH, Yuan L. The practical method of fractal dimensionality reduction based on Z-Ordering technique. In: Li X, Zaiane

OR, Li ZH, eds. Proc. of the 2nd Int’l Conf. on Advanced Data Mining and Applications. Berlin: Springer-Verlag, 2006. 542?549.

附中文参考文献:

[1] Han JW, Kamber M,著.范明,孟小峰,等,译.数据挖掘:概念与技术.北京:机械工业出版社,2001.223?253.

[21] 吴敏金.多重分形熵与多重分形谱.电子学报,1993,21(10):7?13.

[23] 马帅,王腾蛟,唐世渭,杨东青,高军.一种基于参考点和密度的快速聚类算法.软件学报,2003,14(6):1089?1095. http://www.jos. https://www.360docs.net/doc/7314219627.html,/1000-9825/14/1089.htm

[24] 任永功,于戈.一种多维数据的聚类算法及其可视化研究.计算机学报,2005,28(11):1861?1865.

[25] 岳士弘,王正友.二分网格聚类方法及有效性.计算机研究与发展,2005,42(9):1505?1510.

闫光辉(1970-),男,河南商丘人,博士生,

副教授,主要研究领域为数据挖掘,分形技

术及应用.

党建武(1963-),男,博士,教授,博士生导

师,主要研究领域为神经网络理论与应用,

智能信息处理.

李战怀(1961-),男,博士,教授,博士生导

师,CCF高级会员,主要研究领域为数据库

理论与技术,网络存储.

K - M e a n s 聚 类 算 法

基于K-means聚类算法的入侵检测系统的设计 基于K-means聚类算法的入侵检测系统的设计 今天给大家讲述的是K-means聚类算法在入侵检测系统中的应用首先,介绍一下 聚类算法 将认识对象进行分类是人类认识世界的一种重要方法,比如有关世界的时间进程的研究,就形成了历史学,有关世界空间地域的研究,则形成了地理学。 又如在生物学中,为了研究生物的演变,需要对生物进行分类,生物学家根据各种生物的特征,将它们归属于不同的界、门、纲、目、科、属、种之中。 事实上,分门别类地对事物进行研究,要远比在一个混杂多变的集合中更清晰、明了和细致,这是因为同一类事物会具有更多的近似特性。 通常,人们可以凭经验和专业知识来实现分类。而聚类分析(cluster analysis)作为一种定量方法,将从数据分析的角度,给出一个更准确、细致的分类工具。 (聚类分析我们说得朴实一点叫做多元统计分析,说得时髦一点叫做数据挖掘算法,因为这个算法可以在一堆数据中获取很有用的信息,这就不就是数据挖掘吗,所以大家平时也不要被那些高大上的名词给吓到了,它背后的核心原理大多数我们都是可以略懂一二的,再

比如说现在AI这么火,如果大家还有印象的话,以前我们在大二上学习概率论的时候,我也和大家分享过自然语言处理的数学原理,就是如何让机器人理解我们人类的自然语言,比如说,苹果手机上的Siri系统,当时还让杨帆同学帮我在黑板上写了三句话,其实就是贝叶斯公式+隐含马尔可夫链。估计大家不记得了,扯得有点远了接下来还是回归我们的正题,今天要讨论的聚类算法。) K-Means是常用的聚类算法,与其他聚类算法相比,其时间复杂度低,结果稳定,聚类的效果也还不错, 相异度计算 在正式讨论聚类前,我们要先弄清楚一个问题:如何定量计算两个可比较元素间的相异度。用通俗的话说,相异度就是两个东西差别有多大,例如人类与章鱼的相异度明显大于人类与黑猩猩的相异度,这是能我们直观感受到的。但是,计算机没有这种直观感受能力,我们必须对相异度在数学上进行定量定义。 要用数量化的方法对事物进行分类,就必须用数量化的方法描述事物之间的相似程度。一个事物常常需要用多个特征变量来刻画,就比如说我们举一个例证,就有一项比较神奇的技术叫面部识别技术,其实听起来很高大上,它是如何做到的,提取一个人的面部特征,比如说嘴巴的长度,鼻梁的高度,眼睛中心到鼻子的距离,鼻子到嘴巴的距离,这些指标对应得数值可以组成一个向量作为每一个个体的一个标度变量(),或者说叫做每一个人的一个特征向量。 如果对于一群有待分类的样本点需用p 个特征变量值描述,则每

(完整word版)各种聚类算法介绍及对比

一、层次聚类 1、层次聚类的原理及分类 1)层次法(Hierarchical methods)先计算样本之间的距离。每次将距离最近的点合并到同一个类。然后,再计算类与类之间的距离,将距离最近的类合并为一个大类。不停的合并,直到合成了一个类。其中类与类的距离的计算方法有:最短距离法,最长距离法,中间距离法,类平均法等。比如最短距离法,将类与类的距离定义为类与类之间样本的最短距离。 层次聚类算法根据层次分解的顺序分为:自下底向上和自上向下,即凝聚的层次聚类算法和分裂的层次聚类算法(agglomerative和divisive),也可以理解为自下而上法(bottom-up)和自上而下法(top-down)。自下而上法就是一开始每个个体(object)都是一个 类,然后根据linkage寻找同类,最后形成一个“类”。自上而下法就是反过来,一开始所有个体都属于一个“类”,然后根据linkage排除异己,最后每个个体都成为一个“类”。这两种路方法没有孰优孰劣之分,只是在实际应用的时候要根据数据特点以及你想要的“类”的个数,来考虑是自上而下更快还是自下而上更快。至于根据Linkage判断“类” 的方法就是最短距离法、最长距离法、中间距离法、类平均法等等(其中类平均法往往被认为是最常用也最好用的方法,一方面因为其良好的单调性,另一方面因为其空间扩张/浓缩的程度适中)。为弥补分解与合并的不足,层次合并经常要与其它聚类方法相结合,如循环定位。 2)Hierarchical methods中比较新的算法有BIRCH(Balanced Iterative Reducing and Clustering Using Hierarchies利用层次方法的平衡迭代规约和聚类)主要是在数据量很大的时候使用,而且数据类型是numerical。首先利用树的结构对对象集进行划分,然后再利用其它聚类方法对这些聚类进行优化;ROCK(A Hierarchical Clustering Algorithm for Categorical Attributes)主要用在categorical的数据类型上;Chameleon(A Hierarchical Clustering Algorithm Using Dynamic Modeling)里用到的linkage是kNN(k-nearest-neighbor)算法,并以此构建一个graph,Chameleon的聚类效果被认为非常强大,比BIRCH好用,但运算复杂度很高,O(n^2)。 2、层次聚类的流程 凝聚型层次聚类的策略是先将每个对象作为一个簇,然后合并这些原子簇为越来越大的簇,直到所有对象都在一个簇中,或者某个终结条件被满足。绝大多数层次聚类属于凝聚型层次聚类,它们只是在簇间相似度的定义上有所不同。这里给出采用最小距离的凝聚层次聚类算法流程: (1) 将每个对象看作一类,计算两两之间的最小距离; (2) 将距离最小的两个类合并成一个新类; (3) 重新计算新类与所有类之间的距离; (4) 重复(2)、(3),直到所有类最后合并成一类。

各种聚类算法及改进算法的研究

论文关键词:数据挖掘;聚类算法;聚类分析论文摘要:该文详细阐述了数据挖掘领域的常用聚类算法及改进算法,并比较分析了其优缺点,提出了数据挖掘对聚类的典型要求,指出各自的特点,以便于人们更快、更容易地选择一种聚类算法解决特定问题和对聚类算法作进一步的研究。并给出了相应的算法评价标准、改进建议和聚类分析研究的热点、难点。上述工作将为聚类分析和数据挖掘等研究提供有益的参考。 1 引言随着经济社会和科学技术的高速发展,各行各业积累的数据量急剧增长,如何从海量的数据中提取有用的信息成为当务之急。聚类是将数据划分成群组的过程,即把数据对象分成多个类或簇,在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别较大。它对未知数据的划分和分析起着非常有效的作用。通过聚类,能够识别密集和稀疏的区域,发现全局的分布模式,以及数据属性之间的相互关系等。为了找到效率高、通用性强的聚类方法人们从不同角度提出了许多种聚类算法,一般可分为基于层次的,基于划分的,基于密度的,基于网格的和基于模型的五大类。 2 数据挖掘对聚类算法的要求(1)可兼容性:要求聚类算法能够适应并处理属性不同类型的数据。(2)可伸缩性:要求聚类算法对大型数据集和小数据集都适用。(3)对用户专业知识要求最小化。(4)对数据类别簇的包容性:即聚类算法不仅能在用基本几何形式表达的数据上运行得很好,还要在以其他更高维度形式表现的数据上同样也能实现。(5)能有效识别并处理数据库的大量数据中普遍包含的异常值,空缺值或错误的不符合现实的数据。(6)聚类结果既要满足特定约束条件,又要具有良好聚类特性,且不丢失数据的真实信息。(7)可读性和可视性:能利用各种属性如颜色等以直观形式向用户显示数据挖掘的结果。(8)处理噪声数据的能力。(9)算法能否与输入顺序无关。 3 各种聚类算法介绍随着人们对数据挖掘的深入研究和了解,各种聚类算法的改进算法也相继提出,很多新算法在前人提出的算法中做了某些方面的提高和改进,且很多算法是有针对性地为特定的领域而设计。某些算法可能对某类数据在可行性、效率、精度或简单性上具有一定的优越性,但对其它类型的数据或在其他领域应用中则不一定还有优势。所以,我们必须清楚地了解各种算法的优缺点和应用范围,根据实际问题选择合适的算法。 3.1 基于层次的聚类算法基于层次的聚类算法对给定数据对象进行层次上的分解,可分为凝聚算法和分裂算法。 (1)自底向上的凝聚聚类方法。这种策略是以数据对象作为原子类,然后将这些原子类进行聚合。逐步聚合成越来越大的类,直到满足终止条件。凝聚算法的过程为:在初始时,每一个成员都组成一个单独的簇,在以后的迭代过程中,再把那些相互邻近的簇合并成一个簇,直到所有的成员组成一个簇为止。其时间和空间复杂性均为O(n2)。通过凝聚式的方法将两簇合并后,无法再将其分离到之前的状态。在凝聚聚类时,选择合适的类的个数和画出原始数据的图像很重要。 [!--empirenews.page--] (2)自顶向下分裂聚类方法。与凝聚法相反,该法先将所有对象置于一个簇中,然后逐渐细分为越来越小的簇,直到每个对象自成一簇,或者达到了某个终结条件。其主要思想是将那些成员之间不是非常紧密的簇进行分裂。跟凝聚式方法的方向相反,从一个簇出发,一步一步细化。它的优点在于研究者可以把注意力集中在数据的结构上面。一般情况下不使用分裂型方法,因为在较高的层很难进行正确的拆分。 3.2 基于密度的聚类算法很多算法都使用距离来描述数据之间的相似性,但对于非凸数据集,只用距离来描述是不够的。此时可用密度来取代距离描述相似性,即基于密度的聚类算法。它不是基于各种各样的距离,所以能克服基于距离的算法只能发现“类圆形”的聚类的缺点。其指导思想是:只要一个区域中的点的密度(对象或数据点的数目)大过某个阈值,就把它加到与之相近的聚类中去。该法从数据对象的分布密度出发,把密度足够大的区域连接起来,从而可发现任意形状的簇,并可用来过滤“噪声”数据。常见算法有DBSCAN,DENCLUE 等。[1][2][3]下一页 3.3 基于划分的聚类算法给定一个N个对象的元组或数据库,根据给定要创建的划分的数目k,将数据划分为k个组,每个组表示一个簇类(<=N)时满足如下两点:(1)每个组至少包含一个对象;(2)每个对

改进的K-means聚类算法及应用

改进的K-means聚类算法及应用 摘要:传统的k-means算法需要事先确定初始聚类中心,聚类精确程度不高。针对以上问题,本文结合熵值法和动态规划算法来对传统的k-means算法进行改进,提出了基于熵值法及动态规划的改进k-means算法。熵值法用来修订算法的距离计算公式,以提高算法的聚类精确程度, 动态规划算法用来确定算法的初始聚类中心。将改进算法应用于矿井监测传感器聚类中,结果显示较传统的k-means算法,改进算法效率有了明显提高,聚类精确程度有较大增强。 关键词:k-means;动态规划;熵值法;聚类精确度;矿井监测传感器 【abstract】the traditional k-means has sensitivity to the initial clustering centers, and its clustering accuracy is low. to against these short comings, an improved k-means algorithm based on the combination of dynamic programming algorithm and entropy method is proposed. the entropy method is used to amend the distance calculating formula to improve the clustering accuracy, and dynamic programming algorithm is used to define the initial cluster centers. the result of the simulation on the clustering in the mine monitoring sensors shows that the proposed algorithm has better

CLOPE-快速有效的聚类算法

CLOPE:针对交易的数据快速有效聚类算法 摘要 本文研究分类数据的聚类问题,特别针对多维和大型的交易数据。从增加聚簇直方图的高宽比的方法得到启发,我们开发了一种新的算法---CLOPE,这是一种非常快速、可伸缩,同时又非常有效的算法。我们展示了算法对两个现实数据集聚类的性能,并将CLOPE与现有的聚类算法进行了比较。 关键词 数据挖掘,聚类,分类数据,可伸缩性 1.简介 聚类是一种非常重要的数据挖掘技术,它的目的是将相似的交易[12, 14, 4, 1]分组在一起。最近,越来越多的注意力已经放到了分类数据[10,8,6,5,7,13]的聚类上,分类数据是由非数值项构成的数据。交易数据,例如购物篮数据和网络日志数据,可以被认为是一种特殊的拥有布尔型值的分类数据,它们将所有可能的项作为项。快速而精确地对交易数据进行聚类的技术在零售行业,电子商务智能化等方面有着很大的应用潜力。 但是,快速而有效聚类交易数据是非常困难的,因为这类的数据通常有着高维,稀疏和大容量的特征。基于距离的算法例如k-means[11]和CLARANS[12]都是对低维的数值型数据有效。但是对于高维分类数据的处理效果却通常不那么令人满意[7]。像ROCK这类的分层聚类算法在分类数据聚类中表现的非常有效,但是他们在处理大型数据库时表现出先天的无效。 LargeItem[13]算法通过迭代优化一个全局评估函数对分类数据进行聚类。这个评估函数是基于大项概念的,大项是在一个聚簇内出现概率比一个用户自定义的参数——最小支持度大的项。计算全局评估函数要远比计算局部评估函数快得多,局部评估函数是根据成对相似性定义的。这种全局方法使得LargeItem算法非常适合于聚类大型的分类数据库。 在这篇文章中,我们提出了一种新的全局评估函数,它试图通过增加聚簇直方图的高度与宽度之比来增加交易项在聚簇内的重叠性。此外,我们通过引用一个参数来控制聚簇紧密性的方法来泛化我们的想法,通过修改这个参数可以得到

[改进的聚类算法在农业经济类型划分中的应用] kmeans聚类算法改进

[改进的聚类算法在农业经济类型划分中的应用] kmeans聚类算法改进 一、引言 吉林省各地自然、经济、社会条件各有差异,对农业经济的 影响很大。为了稳定提高粮食综合生产能力,促进农业经济结构 进一步优化。就需要准确地对省内各市县农业经济类型进行划 分,以期做到合理的资源优化配置。本文采用一种改进的k-均值 聚类分析技术对所采集的吉林省各县市农业生产的相关数据进行 分析,目的是对吉林省各地农业经济类型进行划分,揭示各地区 农业生产的特点和优势,为加快全省农业经济发展提供依据。 二、改进的聚类算法基本原理 改进的聚类算法的基本思想是:首先对数据集合进行系统聚 类分析,得到聚类树及相应的聚类中心矩阵;接着从聚类树中查 找较早形成的大类,并计算其聚类中心,这样我们就得到了较好 的聚类数k及比较具有代表性的初试聚类中心集合;最后通过k- 均值算法进行聚类分析。 虽然此改进算法需要我们人为的设定条件,但是这些条件都 是在进行系统聚类分析之后的数据基础上得来的,比经典的k-均 值算法的直接判断聚类数和随机抽取初始聚类中心要具有明显的 优势。根据本文待挖掘的数据量和系统聚类的结果,初始条件设

定如下:被判定为较早形成的大类聚类,其包含的数据对象应大于4,与下一次合并的聚类间距越小越好,且应小于所有聚类过程中的聚类间距均值。 三、改进的聚类算法在吉林农业经济类型划分中的应用 分类指标的选择 农业经济系统是一个多因素、多层次、结构复杂的系统,要正确地划分农业经济类型,首先必须选择一套能全面反映当前农业经济状况的指标体系。为此我们根据吉林农业的实际情况,选择对农业经济发展起主导作用的因子作为聚类指标,通过实地调查和对统计资料的综合分析,选定以下10个指标:X1 ,年平均降水量;X2 ,年平均温度;X3 ,农业人口;X4 ,每公顷粮食产量;X5 ,农业机械总动力;X6 ,粮食面积占耕地面积比例; X7 ,林业产值占农业总产值比例;X8 ,牧业产值占农业总产值比例;X9,渔业产值占农业总产值比例;X10 ,人均收入。 数据准备 根据以上10项指标,我们通过查阅xx年《吉林省统计年鉴》可以得到吉林省各地区农业经济各项指标的原始数据,如表1所示。 数据来源:根据xx年《吉林省统计年鉴》整理。 数据挖掘结果 首先对以上数据进行标准化转换,之后采用系统聚类分析法得到聚类树,分析聚类树及聚类间距我们可以得到初始聚类数为

一种基于密度的快速聚类算法

第37卷第11期 2000年11月计算机研究与发展JOU RNAL O F COM PU T ER R ESEA RCH &D EV ELO PM EN T V o l 137,N o 111N ov .2000 原稿收到日期:1999209220;修改稿收到日期:1999212209.本课题得到国家自然科学基金项目(项目编号69743001)和国家教委博士点教育基金的资助.周水庚,男,1966年生,博士研究生,高级工程师,主要从事数据库、数据仓库和数据挖掘以及信息检索等的研究.周傲英,男,1965年生,教授,博士生导师,主要从事数据库、数据挖掘和W eb 信息管理等研究.曹晶,女,1976年生,硕士研究生,主要从事数据库、数据挖掘等研究.胡运发,男,1940年生,教授,博士生导师,主要从事知识工程、数字图书馆、信息检索等研究. 一种基于密度的快速聚类算法 周水庚 周傲英 曹 晶 胡运发 (复旦大学计算机科学系 上海 200433) 摘 要 聚类是数据挖掘领域中的一个重要研究方向.聚类技术在统计数据分析、模式识别、图像处理等领域有广泛应用.迄今为止人们提出了许多用于大规模数据库的聚类算法.基于密度的聚类算法DBSCAN 就是一个典型代表.以DBSCAN 为基础,提出了一种基于密度的快速聚类算法.新算法以核心对象邻域中所有对象的代表对象为种子对象来扩展类,从而减少区域查询次数,降低I O 开销,实现快速聚类.对二维空间数据测试表明:快速算法能够有效地对大规模数据库进行聚类,速度上数倍于已有DBSCAN 算法. 关键词 空间数据库,数据挖掘,聚类,密度,快速算法,代表对象 中图法分类号 T P 311.13;T P 391 A FAST D ENSIT Y -BASED CL USTER ING AL G OR ITH M ZHOU Shu i 2Geng ,ZHOU A o 2Y ing ,CAO J ing ,and HU Yun 2Fa (D ep a rt m en t of Co mp u ter S cience ,F ud an U n iversity ,S hang ha i 200433) Abstract C lu stering is a p rom ising app licati on area fo r m any fields including data m in ing ,statistical data analysis ,p attern recogn iti on ,i m age p rocessing ,etc .In th is paper ,a fast den sity 2based clu stering algo rithm is developed ,w h ich con siderab ly speeds up the o riginal DB SCAN algo rithm .U n like DB SCAN ,the new DB SCAN u ses on ly a s m all num ber of rep resen tative ob jects in a co re ob ject’s neighbo rhood as seeds to exp and the clu ster so that the execu ti on frequency of regi on query can be decreased ,and con sequen tly the I O co st is reduced .Experi m en tal resu lts show that the new algo rithm is effective and efficien t in clu stering large 2scale databases ,and it is faster than the o riginal DB SCAN by several ti m es . Key words spatial database ,data m in ing ,clu stering ,den sity ,fast algo rithm ,rep resen tative ob jects 1 概 述 近10多年来,数据挖掘逐渐成为数据库研究领域的一个热点[1].其中,聚类分析就是广为研究的问题之一.所谓聚类,就是将数据库中的数据进行分组,使得每一组内的数据尽可能相似而不同组内的数据尽可能不同.聚类技术在统计数据分析、模式识别、图像处理等领域都有广泛的应用前景.迄今为止,人们已经提出了许多聚类算法[2~7].所有这些算法都试图解决大规模数据的聚类问题.以基于密度的聚类算法DB SCAN [4]为基础,本文提出一种基于密度的快速聚类算法.通过选用核心对象附近区域包含的所有对象的代表对象作为种子对象来扩展类,快速算法减少了区域查询的次数,从而减低了聚类时间和I O 开销 .本文内容安排如下:首先在第2节中介绍基于密度的聚类算法DB SCAN 的基本思想,并分析它的局限

改进C均值聚类算法

改进C 均值聚类算法 C 均值算法属于聚类技术中一种基本的划分方法,具有简单、快速的优点。其基本思想是选取c 个数据对象作为初始聚类中心,通过迭代把数据对象划分到不同的簇中,使簇内部对象之间的相似度很大,而簇之间对象的相似度很小。对C 均值算法的初始聚类中心选择方法进行了改进,提出了一种从数据对象分布出发动态寻找并确定初始聚类中心的思路以及基于这种思路的改进算法。 1、C-均值聚类算法 ① 给出n 个混合样本,令1=I ,表示迭代运算次数,选取c 个初始聚合中心)1(j Z ,c j ,...,2,1=; ② 计算每个样本与聚合中心的距离))(,(I Z x D j k ,n k ,....,2,1=,c j ,...,2,1=。 若},...,2,1)),(,({min ))(,(,...,2,1n k I Z x D I Z x D j k c j i k ===,则i k w x ∈。 ③ 计算c 个新的集合中心:∑== +j n k j k j j x n I Z 1 )(1)1(,c j ,...,2,1=。 ④ 判断:若)()1(I Z I Z j j ≠+,c j ,...,2,1=,则1+=I I ,返回②,否则算法结束。 2、C-均值改进算法的思想 在C-均值算法中,选择不同的初始聚类中心会产生不同的聚类结果且有不同的准确率,此方法就是如何找到与数据在空间分布上尽可能相一致的初始聚类中心。对数据进行划分,最根本的目的是使得一个聚类中的对象是相似的,而不同聚类中的对象是不相似的。如果用距离表示对象之间的相似性程度,相似对象之间的距离比不相似对象之间的距离要小。如果能够寻找到C 个初始中心,它们分别代表了相似程度较大的数据集合,那么就找到了与数据在空间分布上相一致的初始聚类中心。 目前,初始聚类中心选取的方法有很多种,在此仅介绍两种: 1)基于最小距离的初始聚类中心选取法 其主要思想: (1) 计算数据对象两两之间的距离; (2) 找出距离最近的两个数据对象,形成一个数据对象集合A1 ,并将它们从总的数据集合U 中删除; (3) 计算A1 中每一个数据对象与数据对象集合U 中每一个样本的距离,找出在U 中与A1 中最近的数据对象,将它并入集合A1 并从U 中删除, 直到A1 中的数据对象个数到达一定阈值; (4) 再从U 中找到样本两两间距离最近的两个数据对象构成A2 ,重复上面的过程,直到形成k 个对象集合; (5) 最后对k 个对象集合分别进行算术平均,形成k 个初始聚类中心。 这种方法和Huffman 算法一样。后一种算法介绍是是基于最小二叉树的方法,看

一种基于K-Means局部最优性的高效聚类算法

ISSN 1000-9825, CODEN RUXUEW E-mail: jos@https://www.360docs.net/doc/7314219627.html, Journal of Software, Vol.19, No.7, July 2008, pp.1683?1692 https://www.360docs.net/doc/7314219627.html, DOI: 10.3724/SP.J.1001.2008.01683 Tel/Fax: +86-10-62562563 ? 2008 by Journal of Software. All rights reserved. ? 一种基于K-Means局部最优性的高效聚类算法 雷小锋1,2+, 谢昆青1, 林帆1, 夏征义3 1(北京大学信息科学技术学院智能科学系/视觉与听觉国家重点实验室,北京 100871) 2(中国矿业大学计算机学院,江苏徐州 221116) 3(中国人民解放军总后勤部后勤科学研究所,北京 100071) An Efficient Clustering Algorithm Based on Local Optimality of K-Means LEI Xiao-Feng1,2+, XIE Kun-Qing1, LIN Fan1, XIA Zheng-Yi3 1(Department of Intelligence Science/National Laboratory on Machine Perception, Peking University, Beijing 100871, China) 2(School of Computer Science and Technology, China University of Mining and Technology, Xuzhou 221116, China) 3(Logistics Science and Technology Institute, P.L.A. Chief Logistics Department, Beijing 100071, China) + Corresponding author: E-mail: leiyunhui@https://www.360docs.net/doc/7314219627.html, Lei XF, Xie KQ, Lin F, Xia ZY. An efficient clustering algorithm based on local optimality of K-Means. Journal of Software, 2008,19(7):1683?1692. https://www.360docs.net/doc/7314219627.html,/1000-9825/19/1683.htm Abstract: K-Means is the most popular clustering algorithm with the convergence to one of numerous local minima, which results in much sensitivity to initial representatives. Many researches are made to overcome the sensitivity of K-Means algorithm. However, this paper proposes a novel clustering algorithm called K-MeanSCAN by means of the local optimality and sensitivity of K-Means. The core idea is to build the connectivity between sub-clusters based on the multiple clustering results of K-Means, where these clustering results are distinct because of local optimality and sensitivity of K-Means. Then a weighted connected graph of the sub-clusters is constructed using the connectivity, and the sub-clusters are merged by the graph search algorithm. Theoretic analysis and experimental demonstrations show that K-MeanSCAN outperforms existing algorithms in clustering quality and efficiency. Key words: K-MeanSCAN; density-based; K-Means; clustering; connectivity 摘要: K-Means聚类算法只能保证收敛到局部最优,从而导致聚类结果对初始代表点的选择非常敏感.许多研究 工作都着力于降低这种敏感性.然而,K-Means的局部最优和结果敏感性却构成了K-MeanSCAN聚类算法的基 础.K-MeanSCAN算法对数据集进行多次采样和K-Means预聚类以产生多组不同的聚类结果,来自不同聚类结果的 子簇之间必然会存在交集.算法的核心思想是,利用这些交集构造出关于子簇的加权连通图,并根据连通性合并子 簇.理论和实验证明,K-MeanScan算法可以在很大程度上提高聚类结果的质量和算法的效率. 关键词: K-MeanSCAN;基于密度;K-Means;聚类;连通性 中图法分类号: TP18文献标识码: A ? Supported by the National High-Tech Research and Development Plan of China under Grant No.2006AA12Z217 (国家高技术研究发 展计划(863)); the Foundation of China University of Mining and Technology under Grant No.OD080313 (中国矿业大学科技基金) Received 2006-10-09; Accepted 2007-07-17

(完整版)X-means:一种针对聚类个数的K-means算法改进

X-means:一种针对聚类个数的K-means算法改进 摘要 尽管K-means很受欢迎,但是他有不可避免的三个缺点:1、它的计算规模是受限的。2、它的聚类个数K必须是由用户手动指定的。3、它的搜索是基于局部极小值的。在本文中,我们引入了前两种问题的解决办法,而针对最后一个问题,我们提出了一种局部补救的措施。根据先前有关算法改进的工作,我们引入了一种根据BIC(Bayesian Information Criterion)或者AIC(Akaike information criterion)得分机制而确定聚类个数的算法,本文的创新点包括:两种新的利用充分统计量的方式,还有一种有效地测试方法,这种方法在K-means算法中可以用来筛选最优的子集。通过这样的方式可以得到一种快速的、基于统计学的算法,这种算法可以实现输出聚类个数以及他们的参量值。实验表明,这种技术可以更科学的找出聚类个数K值,比利用不同的K值而重复使用K-means算法更快速。 1、介绍 K-means算法在处理量化数据中已经用了很长时间了,它的吸引力主要在于它很简单,并且算法是局部最小化收敛的。但是它有三点不可避免的缺点:首先,它在完成每次迭代的过程中要耗费大量的时间,并且它所能处理的数据量也是很少的。第二,聚类个数K值必须由用户自身来定义。第三,当限定了一个确定的K值时,K-means算法往往比一个动态K值的算法表现的更差。我们要提供针对这些问题的解决办法,通过嵌入树型的数据集以及将节点存储为充分统计变量的方式来大幅度提高算法的计算速度。确定中心的分析算法要考虑到泰森多边形边界的几何中心,并且在估计过程的任何地方都不能存在近似的方法。另外还有一种估计方法,“黑名单”,这个列表中将会包含那些需要在指定的区域内被考虑的图心。这种方法不仅在准确度上以及处理数据的规模上都表现的非常好,而这个快速算法在X-means 聚类算法当中充当了结构算法的作用,通过它可以很快的估计K值。这个算法在每次使用 K-means算法之后进行,来决定一个簇是否应该为了更好的适应这个数据集而被分开。决定的依据是BIC得分。在本文中,我们阐述了“黑名单”方法如何对现有的几何中心计算BIC 得分,并且这些几何中心所产生的子类花费不能比一个单纯的K-means聚类算法更高。更进一步的,我们还通过缓存状态信息以及估计是否需要重新计算的方法来改善估计方法。 我们已经用X-means算法进行了实验,验证了它的确比猜K值更加科学有效。X-means 算法可以在人造的或者是真实数据中表现的更好,通过BIC得分机制。它的运行速度也是比K-means更快的。 2、定义 我们首先描述简单的K-means算法应该考虑哪些因素。通过K-means可以把一定量的数据集分为K个数据子集,这K个数据子集分别围绕着K个聚类中心。这种算法保持着K个聚类中心不变,并且通过迭代不断调整这K个聚类中心。在第一次迭代开始之前,K个聚类中心都是随机选取的,算法当聚类中心不再变化的时候返回最佳的结果,在每一次迭代中,算法都要进行如下的动作: 1、对于每一个节点向量,找到距离它最近的聚类中心,归入此类。 2、重新评估每一个图心的位置,对于每一个图心,必须是簇的质心。 K-means聚类算法通过局部最小化每个向量到对应图心的距离来实现聚类。同时,它处理真实数据时是非常慢的。许多情况下,真实的数据不能直接用K-means进行聚类,而要经过二次抽样筛选之后再进行聚类。Ester曾经提出了一种可以从树形数据中获得平衡的抽样数据的方法。Ng和Han曾经提出了一种可以指导概率空间对输入向量的检索模拟模型。

数据挖掘层次聚类算法研究综述

数据挖掘层次聚类算法研究综述 摘要聚类问题是数据挖掘中的重要问题之一,是一种非监督的学习方法。分层聚类技 术在图像处理、入侵检测和生物信息学等方面有着极为重要的应用,是数据挖掘领域的研究热点之一。本文总结了分层聚类算法技术的研究现状,分析算法性能的主要差异,并指出其今后的发展趋势。 关键词层次聚类,数据挖掘,聚类算法 Review of hierarchical clustering algorithm in Data Mining Abstract Clustering problem of data mining is one of important issues, it is a kind of unsupervised learning methods. Stratified cluster technology in image processing, intrusion detection and bioinformatics has extremely important application and is data mining area of research one of the hotspots. This paper summarizes the layered clustering algorithm technology research, analyzes the main difference arithmetic performance, and pointed out the future development trend. Keywords Hierarchical clustering,Data mining,Clustering algorithm 1引言 随着计算机技术的发展,信息数据越来越多,如何从海量数据中提取对人们有价值的信息已经成为一个非常迫切的问题。由此产生了数据挖掘技术,它是一门新兴的交叉学科,汇集了来自机器学习、模式识别、数据库、统计学、人工智能等各领域的研究成果。聚类分析是数据挖掘中的一个重要研究领域。它在图像处理、入侵检测和生物信息学等方面有着极为重要的应用。数据挖掘是从大量数据中提取出可信、新颖、有效并能被人理解的模式的高级处理过程。其目标是从数据库中发现隐含的、有意义的知识。聚类分析作为一个独立的工具来获得数据分布的情况,是数据挖掘的一个重要研究分支。 在数据挖掘领域,研究工作己经集中在为大型数据库的有效和实际的聚类分析寻找适当的方法。活跃的主题集中在聚类方法的可伸缩性,方法对聚类复杂形状和类型的数据的有效性,高维聚类分析技术,以及针对大型数据库中混合数值和分类数据的聚类方法。迄今为止,人们己经提出了很多聚类算法,它们可以分为如下几类:划分方法、层次方法、基于密度的方法、基于网格的方法和基于模型的方法,这些算法对于不同的研究对象各有优缺点。在聚类算法当中,划分方法和层次方法是最常见的两类聚类技术,其中划分方法具有较高的执行效率,而层次方法在算法上比较符合数据的特性,所以相对于划分方法聚类的效果比较好。[1] 层次聚类算法和基于划分的K-Means聚类算法是实际应用中聚类分析的支柱,算法简单、快速而且能有效地处理大数据集。层次聚类方法是通过将数据组织为若干组并形成一个相应的树来进行聚类的。根据层是自底而上还是自顶而下形成。一个完全层次聚类的质量由于无法对己经做的合并或分解进行调整而受到影响。但是层次聚类算法没有使用准则函数,它所潜含的对数据结构的假设更少,所以它的通用性更强。 2 基于层次的聚类算法 2.1 凝聚的和分裂的层次聚类 层次聚类是聚类问题研究中一个重要的组成部分。分层聚类的基本原则可以表述为:如

一种快速聚类算法的GPU加速

Chapter43 Fast Clustering of Radar Re?ectivity Data on GPUs Wei Zhou,Hong An,Hongping Yang,Gu Liu,Mu Xu and Xiaoqiang Li Abstract In short-term weather analysis,we use clustering algorithm as a fun-damental tool to analyze and display the radar re?ectivity data.Different from ordinary parallel k-means clustering algorithms using compute uni?ed device architecture,in our clustering of radar re?ectivity data,we face the dataset of large scale and the high dimension of texture feature vector we used as clustering space. Therefore,the memory access latency becomes a new bottleneck in our application of short-term weather analysis which requests real time.We propose a novel parallel k-means method on graphics processing units which utilizes on-chip registers and shared memory to cut the dependency of off-chip global memory. The experimental results show that our optimization approach can achieve409 performance improvement compared to the serial code.It sharply reduces the algorithm’s running time and makes it satisfy the request of real time in appli-cations of short-term weather analysis. Keywords Clustering algorithmáReal timeáShort-term weather forecastáGPUáCUDA W.Zhou(&)áH.AnáG.LiuáM.XuáX.Li Department of Computer Science and Technology, University of Science and Technology of China, 230027Hefei,China e-mail:greatzv@https://www.360docs.net/doc/7314219627.html, H.Yang China Meteorological Administration,Meteorological Observation Centre, 100081Beijing,China W.Zhou Hefei New Star Research Institute of Applied Technology, 230031Hefei,China 487 J.J.Park et al.(eds.),Proceedings of the International Conference on Human-centric Computing2011 and Embedded and Multimedia Computing2011,Lecture Notes in Electrical Engineering102, DOI:10.1007/978-94-007-2105-0_43,óSpringer Science+Business Media B.V.2011

聚类分析中几种算法的比较

聚类分析中几种算法的比较 2009-04-13 23:12 将数据库中的对象进行聚类是聚类分析的基本操作,其准则是使属于同一类的个体间距离尽可能小,而不同类个体间距离尽可能大,为了找到效率高、通用性强的聚类方法人们从不同角度提出了近百种聚类方法,典型的有K-means 方法、K-medoids方法、CLARANS方法,BIRCH方法等,这些算法适用于特定的问题及用户。本文综合提出了评价聚类算法好坏的5个标准,基于这5个标准,对数据挖掘中常用聚类方法作了比较分析,以便于人们更容易、更快捷地找到一种适用于特定问题及用户的聚类算法。 聚类算法研究及比较框架 聚类算法一般有五种方法,最主要的是划分方法和层次方法两种。划分聚类算法通过优化评价函数把数据集分割为K个部分,它需要K作为输人参数。典型的分割聚类算法有K-means算法, K-medoids算法、CLARANS算法。层次聚类由不同层次的分割聚类组成,层次之间的分割具有嵌套的关系。它不需要输入参数,这是它优于分割聚类算法的一个明显的优点,其缺点是终止条件必须具体指定。典型的分层聚类算法有BIRCH算法、DBSCAN算法和CURE算法等。 对各聚类算法的比较研究基于以下5个标准: ①是否适用于大数据量,算法的效率是否满足大数据量高复杂性的要求; ②是否能应付不同的数据类型,能否处理符号属性; ③是否能发现不同类型的聚类; ④是否能应付脏数据或异常数据; ⑤是否对数据的输入顺序不敏感。 下面将在该框架下对各聚类算法作分析比较。 数据挖掘常用聚类算法比较分析 3.1 K-pototypes算法 K-pototypes算法结合了K-means方法和根据K-means方法改进的能够处理符号属性的K-modes方法,同K-means 方法相比,K-pototypes 算法能够处理符号属性。 3.2 CLARANS算法(划分方法) CLARANS算法即随机搜索聚类算法,是一种分割聚类方法。它首先随机选择一个点作为当前点,然后随机检查它周围不超过参数Maxneighbor个的一些邻接点,假如找到一个比它更好的邻接点,则把它移人该邻接点,否则把该点作为局部最小量。然后再随机选择一个点来寻找另一个局部最小量,直至所找到的局部最小量数目达到用户要求为止。该算法要求聚类的对象必须都预先调人内存,并且需多次扫描数据集,这对大数据量而言,无论时间复杂度还是空间复杂度都相当大。虽通过引人R-树结构对其性能进行改善,使之能够处理基于磁盘的大型数据库,但R*-树的构造和维护代价太大。该算法对脏数据和异常数据不敏感,但对数据物人顺序异常敏感,且只能处理凸形或球形边界聚类。 3.3 BIRCH算法(层次方法) BIRCH算法即平衡迭代削减聚类法,其核心是用一个聚类特征3元组表示一个簇的有关信息,从而使一簇点的表示可用对应的聚类特征,而不必用具体的一组点来表示。它通过构造满足分支因子和簇直径限制的聚类特征树来求聚类。BIRCH算法通过聚类特征可以方便地进行中心、半径、直径及类内、类间距离的运算。算法的聚类特征树是一个具有两个参数分枝因子B和类直径T的高度平衡树。分枝因子规定了树的每个节点子女的最多个数,而类直径体现了对一类点的直径大小的限制即这些点在多大范围内可以聚为一类,非叶子结点为它的子女的最大关键字,可以根据这些关键字进行插人索引,它总结了其子女的信息。 聚类特征树可以动态构造,因此不要求所有数据读人内存,而可以在外存上逐个读人。新的数据项总是插人到树中与该数据距离最近的叶子中。如果插人后使得该叶子的直径大于类直径T,则把该叶子节点分裂。其它叶子结点也需要检查是否超过分枝因子来判断其分裂与否,直至该数据插入到叶子中,并且满足不超过类直径,而每个非叶子节点的子女个数不大于分枝因子。算法还可以通过改变类直径修改特征树大小,控制其占内存容量。 BIRCH算法通过一次扫描就可以进行较好的聚类,由此可见,该算法适合于大数据量。对于给定的M兆内存空间,其空间复杂度为O(M),时间间复杂度为O(dNBlnB(M/P)).其中d为维数,N为节点数,P为内存页的大小,B为由P决定的分枝因子。I/O花费与数据量成线性关系。BIRCH算法只适用于类的分布呈凸形及球形的情况,并且由于BIRCH算法需提供正确的聚类个数和簇直径限制,对不可视的高维数据不可行。 3.4 CURE算法(层次方法) CURE算法即使用代表点的聚类方法。该算法先把每个数据点看成一类,然后合并距离最近的类直至类个数为所要求的个数为止。CURE算法将传统对类的表示方法进行了改进,回避了用所有点或用中心和半径来表示一个类,而

相关文档
最新文档