当前位置:文档之家› 数据挖掘层次聚类算法研究综述

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

数据挖掘层次聚类算法研究综述摘要聚类问题是数据挖掘中的重要问题之一,是一种非监督的学习方法。

分层聚类技术在图像处理、入侵检测和生物信息学等方面有着极为重要的应用,是数据挖掘领域的研究热点之一。

本文总结了分层聚类算法技术的研究现状,分析算法性能的主要差异,并指出其今后的发展趋势。

关键词层次聚类,数据挖掘,聚类算法Review of hierarchical clustering algorithm in Data Mining Abstract Clustering problem of data mining is one of important issues, it is a kind ofunsupervised 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 algorithm1引言随着计算机技术的发展,信息数据越来越多,如何从海量数据中提取对人们有价值的信息已经成为一个非常迫切的问题。

由此产生了数据挖掘技术,它是一门新兴的交叉学科,汇集了来自机器学习、模式识别、数据库、统计学、人工智能等各领域的研究成果。

聚类分析是数据挖掘中的一个重要研究领域。

它在图像处理、入侵检测和生物信息学等方面有着极为重要的应用。

数据挖掘是从大量数据中提取出可信、新颖、有效并能被人理解的模式的高级处理过程。

其目标是从数据库中发现隐含的、有意义的知识。

聚类分析作为一个独立的工具来获得数据分布的情况,是数据挖掘的一个重要研究分支。

在数据挖掘领域,研究工作己经集中在为大型数据库的有效和实际的聚类分析寻找适当的方法。

活跃的主题集中在聚类方法的可伸缩性,方法对聚类复杂形状和类型的数据的有效性,高维聚类分析技术,以及针对大型数据库中混合数值和分类数据的聚类方法。

迄今为止,人们己经提出了很多聚类算法,它们可以分为如下几类:划分方法、层次方法、基于密度的方法、基于网格的方法和基于模型的方法,这些算法对于不同的研究对象各有优缺点。

在聚类算法当中,划分方法和层次方法是最常见的两类聚类技术,其中划分方法具有较高的执行效率,而层次方法在算法上比较符合数据的特性,所以相对于划分方法聚类的效果比较好。

[1]层次聚类算法和基于划分的K-Means聚类算法是实际应用中聚类分析的支柱,算法简单、快速而且能有效地处理大数据集。

层次聚类方法是通过将数据组织为若干组并形成一个相应的树来进行聚类的。

根据层是自底而上还是自顶而下形成。

一个完全层次聚类的质量由于无法对己经做的合并或分解进行调整而受到影响。

但是层次聚类算法没有使用准则函数,它所潜含的对数据结构的假设更少,所以它的通用性更强。

2 基于层次的聚类算法2.1 凝聚的和分裂的层次聚类层次聚类是聚类问题研究中一个重要的组成部分。

分层聚类的基本原则可以表述为:如果输入n个数据点(或数集),我们定义n个数簇,其中每个簇含一个数据。

确定距离(簇与簇之间的距离可以通过很多的方法来定义,最常用的是单连接度量。

其定义两个簇之间的距离为一个簇中所有成员与另一簇中所有成员之间的最短距离。

)层次化聚类算法可以进一步地分为两类:凝聚和分裂。

凝聚算法:在每层选择两个最相似的簇被合并,合并后的簇在更高层参与类似的合并。

分裂算法:它首先把整个数据集看成一个簇,然后依据数据集的特性在每一层分成越来越小的簇。

非层次化方法的聚类算法也有很多,其中,K-Means算法是最经典的,还有K-Means的变种。

层次化聚类算法就是将数据对象组成一棵聚类的树。

根据层次分解是自底向上生成还是顶向下生成,层次的聚类方法可以细分为凝聚的和分裂的层次聚类。

凝聚的层次聚类:凝聚的层次聚类是自底向上的策略。

首先将每个对象作为一个类,然后合并这些原子类为越来越大的类,直到所有的对象都在一个类中,或者某个终结条件被满足。

分裂的层次聚类是种自顶向下的策略与凝聚的层次聚类相反,它首先将所有对象置于一个类中,然后逐渐细分为越来越小的类,直到每个对象自成一类,或者达到了某个终结条件,例如达到了某个希望的类数目,或者两个最近的类之间的距离超过了某个闽值。

绝大多数聚类方法属于这一类,它们只是在簇间相似度的定义有所不同。

分裂的层次聚类:这种自顶向下的策略与凝聚的层次聚类相反,它首先将所有对象置于一个簇中,然后逐渐细分为越来越小的簇,直到每个对象自成一簇,或者达到了某个终止条件,例如达到了某个希望的簇数目,或者两个最近的簇之间的距离超过了某个阀值。

层次化聚类方法尽管简单,但如何恰当地选择合并或分裂点,是个很困难的工作,这样的选择是非常关键的,因为一旦一组对象被合并或者分裂,下一步的处理将在新生成的簇上进行。

已做的处理不能被撤消,聚类之间也不能交换对象。

如果在某一步没有很好的选择合并或者分裂的决定,可能会导致低质量的聚类结果。

而且,这种聚类方法不具有很好的可伸缩性,因为合并或者分裂的决定需要检查和估算大量的对象或簇。

[2]2.2 改进的层次聚类算法基本思想按照原层次聚类算法,当依照最小距离d(i,j)合并了第i和第j簇后,必须重新计算新合并的簇d(i,j)和原有簇的距离,按照最小距离的计算方法,d[(k),(r,s)]=min d[(k),(r)],d[(k),(s)],其中d[(k),(r)]与d[(k),(s)]来源于初始化的距离矩阵,也就是说d[(k),(r,s)]的值必然也就是初始化距离矩阵中的某个值,同理,当合并了一个簇后,新的距离矩阵里的所有值也就都是来源于初始化的距离矩阵,当然新的距离矩阵内的最小值也来源于初始化的距离矩阵。

层次聚类算法是按照最短距离法来进行层次聚类的,当第一次合并了其中最小的一个d(i,j)后,产生了新的距离矩阵,由于新的距离矩阵中的所有值均来源于初始化的距离矩阵,再从新的距离矩阵中取最小值,那么这个最小值必定是除了第一次合并后的最小值外,初始化距离矩阵中的次小值。

也就是说,假定我们合并掉了初始化距离矩阵中的最小值后,下一个要合并的必定就是初始化距离矩阵中的次小值,依次递推下去,直到所有的簇都被合并完为止。

2.3 改进的层次聚类算法改进层次算法的聚类质量的一个主要方向是将层次聚类和其他的聚类技术进行集成,形成多阶段聚类,许多学者在基于多阶段聚类方法的思想之上提出了几种经典的层次聚类方法的改进算法。

这里主要讲BIRCH算法,它首先用树结构对对象进行层次划分,然后采用其他的聚类算法对聚类结果进行求精。

[4]BIRCH(Balanced Iterative Reducing and Clustering using Hierarchies)算法是一个集成的层次聚类方法。

它包含两个重要概念:聚类特征(CF)和聚类特征树(CF tree),它们用于概括聚类描述。

这些结构辅助聚类方法在大型数据库中取得更快的速度和可伸缩性。

BIRCH算法对增量或动态聚类也非常有效。

一个聚类特征CF是一个三元组,给出了对象子聚类的信息的汇总描述。

假设某个子聚类中有N个d维数据或对象。

则该子聚类的CF=(N,LS,SS)其中,N为该子聚类所含对象个数;LS为这N个点的和,SS为数据点的平方和。

聚类特征基本上就是对给定子聚类统计信息的总结。

它包含了聚类计算和空间存储利用所需要的关键信息。

如图2.1所示,一个CF树是高度平衡的树,它存储了层次聚类的聚类特征。

树中的非叶子节点有后代或“孩子”,它们存储了其孩子的CF的总和,即汇总了关于其孩子的聚类信息。

一个CF树有两个参数:分支因子B和阈值T。

分支因子定义了每个非叶子节点孩子的最大数目,而阈值参数给出了存储在树的叶子节点中的子聚类的最大直径。

这两个参数直接影响了结果树的大小。

图2.1 CF树示意图BIRCH方法工作主要包括两个阶段:阶段一:BIRCH扫描数据库,建立一个初始存放于内存的CF树,它可以被看作数据的多层压缩,试图保留数据内在的聚类结构。

阶段二:BIRCH采用某个聚类算法对CF树的叶子节点进行聚类。

在阶段一,随着对象被插入,CF树被动态地构造。

所以这个方法支持增量聚类。

一个对象被插入到最近的叶子条目(子聚类)。

如果在插入后存储在叶子节点中的子聚类的直径大于阈值。

那么该叶子节点(及可能有其他节点)被分裂。

新对象插入后,关于该对象的信息向着树根传递。

通过修改阈值,CF树的大小可以改变。

如果存储CF树需要的内存大于主存的大小,可以定义一个较小的阈值,并重建CF树。

重建过程从旧树的叶子节点建造一个新树。

这样,重建树的过程不需要重读所有的对象。

因此,为了建树,只需读一次数据。

BIRCH采用一些启发式的规则和方法,通过额外的数据扫描来处理孤立点和改进CF树的质量。

CF树建好后,可以在阶段二被用于任何聚类算法。

BIRCH试图利用可用的资源来生成最好的聚类结果。

给定有限的主存,一个重要的考虑是最小的I/0时间。

BIRCH采用了一种多阶段聚类技术:数据集合的单遍扫描产生了一个基本的聚类,一遍或多遍的额外扫描可以进一步地改进聚类质量。

这个算法的计算复杂性是O(n),这里的n是对象的数目。

[5]3 总结现有聚类算法的分类研究还需要继续深入,在数据挖掘的理论及应用实践中,人们已经提出了许多聚类算法,但到目前为止仍没有普遍适用的聚类算法,每种方法在具有某种优点的同时也存在着某些不足,可能适合于处理某些问题却无法处理另一类情况。

这就给人们的选择使用带来了不便,往往会出现面对浩瀚的聚类算法,却不知道哪个可用的困境。

因此,需要对现有聚类算法本身进行分类处理为用户的选择使用提供理论指导,这也许比单纯的提出聚类新算法更有现实意义。

参考文献[1]王里.并行层次聚类技术研究,硕士学位论文.湖南大学.2006.12[2]赵法信,王国业.数据挖掘中聚类分析算法研究.通化师范学院学报,2005(26)[3]段明秀.层次聚类算法的研究与应用,硕士学位论文.中南大学.2009.5[4]汤效琴,戴汝源.数据挖掘中聚类分析的技术方法.微计算机信息,2003(19)[5]李潮健.一种并行分层聚类算法的研究和实现,硕士学位论文.湘潭大学.2007.11。

相关主题