《第6章聚类分析方法与应用.ppt》由会员分享,可在线阅读,更多相关《第6章聚类分析方法与应用.ppt(71页珍藏版)》请在三一办公上搜索。
1、数据挖掘技术与应用,陈燕教授,第6章 聚类分析方法与应用,大连海事大学,本章提纲,6.1聚类分析的基础理论,6.1.1 聚类分析的定义,6.1.2 对聚类算法性能的要求,6.1.1 聚类分析的定义,聚类(Clustering)是将数据划分成群组的过程。研究如何在没有训练的条件下把对象化分为若干类。通过确定数据之间在预先制定的属性上的相似性来完成聚类任务,这样最相似的数据就聚集成簇(Cluster)。聚类与分类不同,聚类的类别取决于数据本身,而分类的类别是由数据分析人员预先定义好的。使用聚类算法的用户不但需要深刻地了解所用的特殊技术,而且还要知道数据收集过程的细节及拥有应用领域的专家知识。用户对
2、手头数据了解地越多,用户越能成功的评估它的真实结构。,6.1.1 聚类分析的定义,聚类分析方法可以应用在数据挖掘的各个过程之中,比如在数据预处理操作中,针对数据需求,对于数据结构简单或者是与运量分析有单属性和较少属性关联的数据可以在经过数据清理等预处理后直接整合入数据仓库。对于复杂结构的多维数据可以通过聚类的方法将数据聚集后构造出逻辑库,使复杂结构数据标准化,为某些数据挖掘方法(如关联规则、粗糙集方法)提供预处理。为了满足某些数据挖掘算法的需要,我们需要对连续的数据进行离散化处理,使条件属性和决策属性值简约化、规范化。这时我们就需要对数据进行聚类处理。,6.1.2 对聚类算法性能的要求,聚类就
3、是将数据对象分组成为多个类或簇的过程,在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别较大。相似度是根据描述对象的属性值来计算的。聚类是经常采用的度量方式。聚类分析源于许多研究领域,包括数据挖掘、统计学、生物学以及机器学习等。,6.1.2 对聚类算法性能的要求,1.伸缩性 这里的可伸缩性是指算法要能够处理大数据量的数据库对象,比如处理上百万条记录的数据库,这就要求算法的时间复杂度不能太高,最好是多项式时间的算法。值得注意的是,当算法不能处理大数据量时,用抽样的方法来弥补也不是一个好主意,因为它通常会导致歪曲的结果。2.处理不同字段类型的能力 算法不仅要能处理数值型的字段,还要有处理
4、其他类型字段的能力。如布尔型、枚举型、序数型及混合型等。,6.1.2 对聚类算法性能的要求,3.发现具有任意形状的聚类的能力 很多聚类分析算法采用基于欧几里德距离的相似性度量方法,这一类算法发现的聚类通常是一些球状的、大小和密度相近的类,但可以想象,显示数据库中的聚类可能是任意形状的,甚至是具有分层树的形状,故要求算法有发现任意形状的聚类的能力。,6.1.2 对聚类算法性能的要求,4.输入参数对领域知识的依赖性 很多聚类算法都要求用户输入一些参数,例如需要发现的聚类数、结果的支持度及置信度等。聚类分析的结果通常都对这些参数很敏感,但另一方面,对于高维数据,这些参数又是相当难以确定的。这样就加重
5、了用户使用这个工具的负担,导致分析的结果很难控制。一个好的聚类算法应当针对这个问题,给出一个好的解决方法。,6.1.2 对聚类算法性能的要求,5.能够处理异常数据 现实数据库中常常包含有异常数据,例如数据不完整、缺乏某些字段的值,甚至是包含错误数据现象。有一些数据算法可能会对这些数据很敏感,从而导致错误的分析结果。6.结果对输入记录顺序的无关性 有些分析算法对记录的输入顺序是敏感的,即对同一个数据集,将它以不同的顺序输入到分析算法,得到的结果会不同,这是我们不希望的。,6.1.2 对聚类算法性能的要求,7.处理高维数据的能力 每个数据库或者数据仓库都有很多的字段或者说明,一些分析算法对处理维数
6、较少的数据集时表现不错,但是对于高维数据的聚类分析就会稍显不足。因为在高维空间中,数据的分布是极其稀疏的,而且形状也可能是极其不规则的。,6.1.2 对聚类算法性能的要求,8.增加限制条件后的聚类分析能力 现实的应用中经常会出现各种各样的限制条件,我们希望聚类算法可以在考虑这些限制的情况下,仍旧有很好的表现。9.结果的可解释性和可用性 聚类的结果最终都是要面向用户的,所以结果应该是容易解释和理解的,并且是可应用的。这就要求聚类算法必须与一定的语义环境及语义解释相关联。领域知识如何影响聚类分析算法的设计是很重要的一个研究方面。,6.2聚类分析的方法,6.2.1 基于划分的聚类方法,6.2.2 基
7、于层次的聚类方法,6.2.3 基于密度的聚类方法,6.2.4 基于网格的聚类方法,6.2.5 基于模型的聚类方法,6.2.1 基于划分的聚类方法,给定一个含有N个对象的数据集,以及要生成的簇的数目K。每一个分组就代表一个聚类,KN。这K个分组满足下列条件:每一个分组至少包含一个数据记录;每一个数据记录属于且仅属于一个分组(注意:这个要求在某些模糊聚类算法中可以放宽)。,6.2.1 基于划分的聚类方法,对于给定的K,算法首先的任务就是将数据构建成K个划分,以后通过反复迭代从而改变分组的重定位技术,使得每一次改进之后的分组方案都较前一次好。将对象在不同的划分间移动,直至满足一定的准则。一个好的划分
8、的一般准则是:在同一个簇中的对象尽可能“相似”,不同簇中的对象则尽可能“相异”。在划分方法中,最经典的就是k-平均(k-means)算法和k-中心(k-medoids)算法,很多算法都是由这两个算法改进而来的。,6.2.1 基于划分的聚类方法,k-means算法只有在平均值被定义的情况下才能使用,因此该算法容易受到孤立点的影响,k-medoids算法采用簇中最中心的位置作为代表点而不是采用对象的平均值。因此,与k-means算法相比,当存在噪声和孤立点数据时,k-medoids算法要较k-means算法健壮,而且没有k-means算法那样容易受到极端数据的影响。、在时间复杂度上,k-means
9、算法的时间复杂度为O(nkt),而k-medoids算法的时间复杂度大约为O(n2),后者的执行代价要高得多。此外,这两种方法都要求用户指定聚类数目K。,6.2.1 基于划分的聚类方法,基于划分的聚类方法优点是收敛速度快,缺点是它要求类别数目K可以合理的估计,并且初始中心的选择和噪声会对聚类结果产生很大影响。,6.2.2基于层次的聚类方法,基于层次的聚类方法对给定的数据进行层次的分解,直到某种条件满足为止。首先将数据对象组成一棵聚类树,然后根据层次,自底向上或是自顶向下分解。层次的方法可以分为凝聚的方法和分裂的方法。,6.2.2基于层次的聚类方法,凝聚的方法,也称为自底向上的方法,初始时每个对
10、象都被看成是单独的一个簇,然后通过逐步的合并相近的对象或簇形成越来越大的簇,直到所有的对象都在一个簇中,或者达到某个终止条件为止。层次凝聚的代表是AGNES(AGglomerative NESting)算法。分裂的方法,也称为自顶向下的方法,它与凝聚层次聚类恰好相反,初始时将所有的对象置于一个簇中,然后逐渐细分为更小的簇,直到最终每个对象都在单独的一个簇中,或者达到某个终止条件为止。层次分裂的代表是DIANA(DIvisive ANAlysis)算法。,6.2.2基于层次的聚类方法,为了改进层次聚类算法的聚类质量,新的研究从层次聚类与其他聚类技术结合入手,将层次聚类和其他聚类技术进行集成,形成
11、多阶段的聚类。比较常见的方法有四种:BIRCH、CURE、ROCK和CHAMELEON。下面介绍最具代表性的BIRCH算法和CURE算法。,6.2.2基于层次的聚类方法,BIRCH(Balanced Iterative Reducing and Clustering using Hierarchies)算法是一个综合性的层次聚类方法,它利用层次方法的平衡迭代进行归约和聚类。其核心是用一个聚类特征三元组表示一个簇的有关信息,从而使簇中的点可用对应的聚类特征表示。它通过构造满足分支因子和簇直径限制的聚类特征树来求聚类。该算法通过聚类特征可以方便地进行中心、半径、直径及类内、类间距离的运算。,6.2
12、.2基于层次的聚类方法,该算法的优点是具有对象数目的线性易伸缩性及良好的聚类质量,一次扫描就可以进行较好的聚类,其计算复杂度为O(n),n是对象的数目。缺点是BIRCH算法只适用于类的分布呈凸形及球形的情况,对不可视的高维数据则是不可行的。,6.2.2基于层次的聚类方法,CURE(Clustering Using REprisentatives)算法中既有层次部分,也有划分部分,所以CURE是一个综合性的聚类算法。CURE算法过程为:首先从每个簇中选择c(常数)个点,然后通过应用收缩因子a,将这些分散的点向簇的质心方向收缩。当a为1的时候,所有点都收缩成一点,即质心。通过多个有代表性的点,簇的
13、形状可以更好地被表示出来。再使用层次聚类算法中的凝聚算法。在凝聚算法中的每一步,距离最近的代表性点所对应的簇将被合并。它们之间的距离被定义为两个簇中代表性点之间距离的最小值。,6.2.2基于层次的聚类方法,CURE算法的优点是它回避用所有点或单个质心来表示一个簇的传统方法,而是将一个簇用多个具有代表性的点来表示,使CURE可以适应非球形的几何形状。另外,收缩因子降底了噪音对聚类的影响,从而使CURE对孤立点的处理更加健壮,而且能识别非球形和大小变化比较大的簇,对于大型数据库具有良好的伸缩性。缺点是参数设置对聚类结果有很大的影响,不能处理分类属性。CURE的复杂度是O(n),其中n是对象的数目。
14、,6.2.3基于密度的聚类方法,基于密度的方法与其它方法的一个根本区别是:它不是基于各种各样的距离的,而是基于密度的,这样就能克服基于距离的算法只能发现球状聚类,对发现任意形状的聚类则显得不足的缺点。基于密度的聚类方法从对象分布区域的密度着手,对于给定类中的数据点,如果在给定范围的区域中,对象或数据点的密度超过某一阈值就继续聚类。这样通过连接密度较大区域,就能形成不同形状的聚类,而且还可以消除孤立点和噪声对聚类质量的影响,发现任意形状的簇。基于密度的聚类方中最具代表性的是DBSCAN算法、OPTICS算法和DENCLUE算法。,6.2.3基于密度的聚类方法,DBSCAN(Density-Bas
15、ed Spatial Clustering of Applacations with Noise)算法可以将足够高密度的区域划分为簇,并可以在带有“噪声”的空间数据库中发现任意形状的聚类。该算法定义簇为密度相连的点的最大集合。,6.2.3基于密度的聚类方法,DBSCAN通过检查数据库中每个点的邻域来寻找聚类。如果一个点p的邻域中包含数据项的个数多于最小阈值,则创建一个以p作为核心对象的新簇。然后反复地寻找从这些核心对象直接密度可达的对象,当没有新的点可以被添加到任何簇时,该过程结束。不被包含在任何簇中的对象被认为是“噪声”。DBSCAN算法不进行任何的预处理而直接对整个数据集进行聚类操作。,6
16、.2.3基于密度的聚类方法,DBSCAN算法的优点是能够发现空间数据库中任意形状的密度连通集;在给定合适的参数条件下,能很好地处理噪声点;对用户领域知识要求较少;对数据的输入顺序不太敏感;适用于大型数据库。缺点是要求事先指定领域和阈值;具体使用的参数依赖于应用的目的。,6.2.4基于网格的聚类方法,首先将数据空间划分成有限个单元(Cell)的网格结构,所有的处理都是以单个单元为对象,在这个网格结构上进行的。这类方法的主要优点就是它的处理速度很快,处理时间独立于数据对象的数目,仅依赖于量化空间中每一维的单元数目;聚类的精度取决于单元格的大小,也就是说通常与目标数据库中记录的个数无关,只与把数据空
17、间分为多少个单元有关。缺点是只能发现边界是水平或垂直的簇,而不能检测到斜边界。此外,在处理高维数据时,网格单元的数目会随着属性维数的增长而成指数增长。,6.2.4基于网格的聚类方法,常见的基于网格的方法有:STING算法、CLIQUE算法和WAVE-CLUSTER算法。STING利用存储在网格单元中的统计信息来聚类;WAVE-CLUSTER用一种小波变换的方法来聚类;CLIQUE是在高维数据空间中基于网格和密度的聚类方法。,6.2.4基于网格的聚类方法,STING(STatistical INformation Grid)算法是一种格的多分辨率聚类技术,它将空间区域划分为矩形单元。针对不同级别
18、的分辨率,通常存在多个级别的矩形单元,这些单元形成了一个层次结构,高层的每个单元被划分为多个低一层的单元。高层单元的统计参数可以很容易地从低层单元的计算得到。这些参数包括:属性无关的参数count,属性相关的参数m(平均值),s(标准偏差),min(最小值),max(最大值),以及该单元中属性值遵循的分布(Distribution)类型。,6.2.4基于网格的聚类方法,STING算法效率高,是独立于查询的,且利于并行处理和增量更新。但由于STING采用了一个多分辨率的方法来进行聚类分析,聚类的质量取决于网格结构的最低层粒度。如果数据粒度比较细,处理的代价会明显增加,而且该算法没有考虑子单元和其
19、他相邻单元之间的关系。尽管该算法处理速度较快,但是可能会降低簇的质量和精确性。,6.2.5 基于模型的聚类方法,基于模型的聚类方法试图优化给定的数据和某些数学模型之间的适应性。给每一个聚类假定一个模型,然后去寻找能够很好的满足这个模型的数据集。这样一个模型可能是数据点在空间中的密度分布函数或者其它。它的一个潜在的假定就是:目标数据集是由一系列潜在的概率分布所决定的。在这类算法中,聚类的数目也根据统计数字自动决定,噪声和孤立点也是通过统计数字来分析。基于模型的聚类方法主要有三类:统计学方法、神经网络方法以及基于群的聚类方法。,6.2.5 基于模型的聚类方法,1.统计学方法从统计学的观点看,聚类分
20、析是通过数据建模简化数据的一种方法。概念聚类就是其中的一种。概念聚类的绝大多数方法都采用了统计学的途径,在决定概念或聚类时,使用概率度量。它将数据分成多组,对一组未标记的数据对象产生一个分类模式,并对每个分类模式给出其特征描述,即每组对象代表了一个概念或类。在这里,聚类质量不再只是单个对象的函数,而是加入了如导出的概念描述的简单性和一般性等因素。,6.2.5 基于模型的聚类方法,1.统计学方法COBWEB是一种典型的简单增量概念聚类算法,以一个分类树的形式创建层次聚类。它的输入对象用“分类属性值”对来描述。在给定一个新的对象后,COBWEB沿一条适当的路径向下,修改计数,以寻找可以分类该对象的
21、最好节点。该判定将对象临时置于每个节点,并计算划分结果的分类效用。产生最高分类效用的位置应当是对象节点的一个好的选择。,6.2.5 基于模型的聚类方法,1.统计学方法COBWEB可以自动修正划分中类的数目,不需要用户提供输入参数。缺点是COBWEB基于这样一个假设:在每个属性上的概率分布是彼此独立的。但这个假设并不总是成立。分类树对于偏斜的输入数据不是高度平衡的,它可能导致时间和空间复杂性的剧烈变化。COBWEB不适用于聚类大型数据库的数据。,6.2.5 基于模型的聚类方法,2.神经网络方法神经网络以其分布式存储、并行协同处理以及自学习等特性被用于聚类分析领域。在聚类分析中经常被用到的神经网络
22、的方法有:Kohonen自组织神经网络 竞争神经网络 自组织共振神经网络这些方法都涉及有竞争的神经单元。,6.2.5 基于模型的聚类方法,2.神经网络方法竞争学习(Competitive Learning)采用了若干个单元的层次结构,它们以一种“胜者全取”的方式对系统当前处理的对象进行竞争。在一个簇中获胜的单元成为活跃的,而其他单元是不活跃的。各层之间的连接是激发式的,即在某个给定层次中的单元可以接收来自低一层次所有单元的输入。在一层中活动单元的布局代表了高一层的输入模式。,6.2.5 基于模型的聚类方法,2.神经网络方法在某个给定层次中,一个簇中的单元彼此竞争,对低一层的输出模式做出反应。一
23、个层次内的联系是抑制式的,以便在任何簇中只有一个单元是活跃的。获胜的单元修正它与簇中其他单元连接上的权重,以便未来它能够对与当前对象相似或一样的对象做出较强的反应。如果我们将权重看作定义的一个标本,那么新的对象被分配给具有最近标本的簇。结果簇的数目和每个簇中单元的数目是输入参数。,6.2.5 基于模型的聚类方法,2.神经网络方法在聚类过程结束时,每个簇可以被看作一个新的“特征”,它检测对象的某些规律性。这样产生的结果簇可以被看作一个底层特征向高层特征的映射。神经网络聚类方法与实际的大脑处理有很强的理论联系。由于较长的处理时间和数据的复杂性,需要进行进一步的研究来使它适用于大型数据库。,6.2.
24、5 基于模型的聚类方法,3.基于群的聚类方法基于群的聚类方法是进化计算的一个分支。模拟生物界中蚁群、鱼群和鸟群在觅食或逃避敌人时的行为。主要分为两类:一类是蚁群算法或蚁群优化(Ant Colony Optimization,ACO),另一类称为粒子群算法(Particle Swarm Optimization,PSO)。,6.2.5 基于模型的聚类方法,3.基于群的聚类方法蚁群算法是将数据挖掘概念和原理与生物界中蚁群行为结合起来形成的新算法。基于蚁群算法的聚类方法从原理上可以分为四种:运用蚂蚁觅食的原理,利用信息素来实现聚类;利用蚂蚁自我聚集行为来聚类;基于蚂蚁堆的形成原理实现数据聚类;运用蚁
25、巢分类模型,利用蚂蚁化学识别系统进行聚类。,6.2.5 基于模型的聚类方法,3.基于群的聚类方法粒子群算法模拟了鱼群或鸟群的行为。PSO将群中的个体称为particles,整个群称为swarm。要将其应用到实际的大规模数据挖掘的聚类分析中还需要做大量研究工作。,6.3应用聚类分析方法,6.3.1 k-means聚类方法,6.3.2 k-medoids聚类方法,6.3.3 AGNES聚类方法,6.3.4 DIANA聚类方法,6.3.5 DBSCAN聚类方法,6.3.1 k-means聚类方法,k-means算法接受输入量k,然后将n个数据对象划分为k个聚类以便使得所获得的聚类满足:同一聚类中的对
26、象相似度较高,而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。k-means算法的工作过程说明如下:首先从n个数据对象任意选择k个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的聚类中心所代表的聚类;,6.3.1 k-means聚类方法,然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数,即准则函数。k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。样本点
27、分类和聚类中心的调整是迭代交替进行的两个过程。,6.3.1 k-means聚类方法,k-means算法描述:输入:聚类个数k,以及包含n个数据对象的数据库输出:满足方差最小标准的k个聚类处理流程:Step1 从n个数据对象任意选择k个对象作为初始聚类中心;Step2 根据簇中对象的平均值,将每个对象重新赋给最类似的簇;Step3 更新簇的平均值,即计算每个簇中对象的平均值;Step4 循环Step2到Step3直到每个聚类不再发生变化为止。,6.3.1 k-means聚类方法,定义6.1 两个数据对象间的距离1.明氏距离(Minkowski Distance)(6.1)这里的xi=(xi1,x
28、i2,.,xip)和xj=(xj1,xj2,.,xjp)是两个p维的数据对象并且ij。,6.3.1 k-means聚类方法,2.欧氏距离(Euclidean Distance)当明氏距离中q=2时,公式6.1即为欧氏距离。,6.3.1 k-means聚类方法,3.马氏距离(Mahalanobis Distance)(6.3)其中,i,j=1,2,p。如果-1存在,则马氏距离为(6.4),6.3.1 k-means聚类方法,4.兰氏距离(Canberra Distance)(6.5)定义6.2 准则函数(6.6),设待聚类的数据集为X=x1,x2,.,xn,将其划分为k个簇Ci,均值分别为zi,
29、即zi为簇Ci的中心(i=1,2,k)。E是所有对象的平方误差的总和,xX是空间中的点,d(x,zi)为点x与zi间的距离,可以利用明氏、欧氏、马氏或者兰氏距离求得。,6.3.2 k-medoids聚类方法,围绕中心的划分(Partitioning Around Medoid,PAM)是最早提出的k-medoids算法之一,它选用簇中位置最中心的对象作为代表对象,试图对n个对象给出k个划分。代表对象也被称为是中心点,其他对象则被称为非代表对象。最初随机选择k个对象作为中心点,然后反复地用非代表对象来代替代表对象,试图找出更好的中心点,以改进聚类的质量。,6.3.2 k-medoids聚类方法,
30、在每次迭代中,所有可能的对象对被分析,每个对中的一个对象是中心点,而另一个是非代表对象。对可能的各种组合,估算聚类结果的质量。一个对象Oi可以被使最大平方误差值E(计算方法如公式6.6所示)减少的对象代替。在一次迭代中产生的最佳对象集合成为下次迭代的中心点。为了判定一个非代表对象Oh是否是当前一个代表对象Oi的好的代替,对于每一个非中心点对象Oj,下面的四种情况被考虑:,6.3.2 k-medoids聚类方法,第一种情况:假设Oi被Oh代替作为新的中心点,Oj当前隶属于Oi。如果Oj离某个中心点Om最近,im,那么Oj被重新分配给Om;第二种情况:假设Oi被Oh代替作为新的中心点,Oj当前隶属
31、于Oi。如果Oj离这个新的中心点Oh最近,那么Oj被重新分配给Oh;,6.3.2 k-medoids聚类方法,第三种情况:假设Oi被Oh代替作为新的中心点,但是Oj当前隶属于另一个中心点对象Om,im。如果Oj依然离Om最近,那对象的隶属不发生变化;第四种情况:假设Oi被Oh代替作为新的中心点,但是Oj当前隶属于另一个中心点对象Om,im。如果Oj离这个新的中心点Oh最近,那么Oj被重新分配给Oh。,6.3.2 k-medoids聚类方法,每当重新分配发生时,E所产生的差别对代价函数会有影响。因此,如果一个当前的中心点对象被非中心点对象所代替,代价函数计算E所产生的差别。替换的总代价是所有非中
32、心点对象所产生的代价之和。如果总代价是负的,那么实际的E将会减少,Oi可以被Oh替代。如果总代价是正的,则当前的中心点Oi被认为是可以接受的,在本次迭代中没有变化。总代价定义如下:(6.7)其中Cjih表示Oi被Oh替代后产生的代价。,6.3.2 k-medoids聚类方法,在PAM算法中,可以把过程分为两个步骤:(1)建立:随机寻找k个中心点作为初始的簇中心点。(2)交换:对于所有可能的对象对进行分析,找到 交换后可以使平方误差值E减少的对象,代替 原中心点。,6.3.2 k-medoids聚类方法,k-medoids算法描述:输入:聚类个数k,以及包含n个数据对象的数据库输出:满足方差最小
33、标准的k个聚类处理流程:Step1 从n个数据对象任意选择k个对象作为初始簇中心点;Step2 指派每个剩余的对象给离它最近的中心点所代表的簇;Step3 选择一个未被选择的中心点对象Oi;Step4 选择一个未被选择过的非中心点对象Oh;Step5 计算用Oh替代Oi的总代价并记录在集合S中;Step6 循环Step4到Step5直到所有的非中心点都被选择过;Step7 循环Step3到Step6直到所有的中心点都被选择过;Step8 IF在S中的所有非中心点代替所有中心点后计算出的总代价有小于0的存在,THEN找出S的中心点,形成一个新的k个中心点的集合。Step9 循环Step3到Ste
34、p8直到没有再发生簇的重新分配,即S中所有的元素都大于0。,6.3.3 AGNES聚类方法,AGNES算法是凝聚的层次聚类方法。AGNES算法最初将每个对象作为一个簇,然后这些簇根据某些准则被一步步地合并。这是一种单链接方法,其每个簇可以被簇中所有对象代表,两个簇间的相似度由这两个不同簇中距离最近的数据点对的相似度来确定。聚类的合并过程反复进行直到所有的对象最终合并形成一个簇。在聚类中,用户能定义希望得到的簇数目作为一个结束条件。,6.3.3 AGNES聚类方法,AGNES算法描述:输入:包含n个数据对象的数据库,终止条件簇的数目k输出:达到终止条件规定的k个簇处理流程:Step1 将每个对象
35、当成一个初始簇;Step2 根据两个簇中最近的数据点找到最近的两个簇;Step3 合并两个簇,生成新的簇的集合;Step4 循环Step3到Step4直到达到定义的簇的数目。,6.3.4 DIANA聚类方法,DIANA算法属于分裂的层次聚类。与凝聚的层次聚类相反,它采用一种自顶向下的策略,它首先将所有对象置于一个簇中,然后逐渐细分为越来越小的簇,直到每个对象自成一簇,或者达到了某个终结条件,例如达到了某个希望的簇数目,或者两个最近簇之间的距离超过了某个阈值。在DIANA方法处理过程中,所有的对象初始都放在一个簇中。根据一些原则(如簇中最临近对象的最大欧式距离),将该簇分裂。簇的分裂过程反复进行
36、,直到最终每个新的簇只包含一个对象。,6.3.4 DIANA聚类方法,在聚类中,用户能定义希望得到的簇数目作为一个结束条件。同时,它使用下面两种测度方法。1.簇的直径:在一个簇中的任意两个数据点都有一个距离(如欧氏距离),这些距离中的最大值是簇的直径。2.平均相异度(平均距离):(6.8)其中:davg(x,C)表示点x在簇C中的平均相异度,n为簇C中点的个数,d(x,y)为点x与点y之间的距离(如欧式距离)。,6.3.4 DIANA聚类方法,DIANA算法描述:输入:包含n个数据对象的数据库,终止条件簇的数目k输出:达到终止条件规定的k个簇处理流程:Step1 将所有对象整个当成一个初始簇;
37、Step2 在所有簇中挑出具有最大直径的簇;Step3 找出所挑簇里与其他点平均相异度最大的一个点放入splinter group,剩余的放入old party中;Step4 在old party里找出到splinter group中点的最近距离不大于到old party中点的最近距离的点,并将该点加入splinter group。Step5 循环Step2到Step4直到没有新的old party的点分配给splinter group;Step6 splinter group和old party为被选中的簇分裂成的两个簇,与其他簇一起组成新的簇集合。,6.3.5 DBSCAN聚类方法,DBS
38、CAN是一个比较有代表性的基于密度的聚类算法。与划分和层次聚类方法不同,它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在有“噪声”的空间数据库中发现任意形状的聚类。下面首先介绍关于密度聚类涉及的一些定义。,6.3.5 DBSCAN聚类方法,定义6.3 对象的-邻域:给定对象在半径 内的区域。定义6.4 核心对象:如果一个对象的-邻域至少包含最小数目MinPts个对象,则称该对象为核心对象。定义6.5 直接密度可达:给定一个对象集合D,如果p是在q的-邻域内,而q是一个核心对象,我们说对象p从对象q出发是直接密度可达的。,6.3.5 DBSCAN聚类方法,定义6.6
39、 间接密度可达的:如果存在一个对象链p1,p2,pn,p1=q,pn=p,对piD,1in,pi+1是从pi关于 和MitPts直接密度可达的,则对象p是从对象q关于 和MinPts密度可达的。例如,已知半径,MitPts,q是一个核心对象,p1是从q关于 和MitPts直接密度可达的,若p是从p1关于 和MitPts直接密度可达的,则对象p是从q关于 和MitPts间接密度可达的。,6.3.5 DBSCAN聚类方法,定义6.7 密度相连的:如果对象集合D中存在一个对象o,使得对象p和q是从o关于和MitPts密度可达的,那么对象p和q是关于 和MinPts密度相连的。定义6.8 噪声:一个基
40、于密度的簇是基于密度可达性的最大的密度相连对象的集合。不包含在任何簇中的对象被认为是“噪声”。,6.3.5 DBSCAN聚类方法,DBSCAN通过检查数据集中每个对象的-邻域来寻找聚类。如果一个点p的-邻域包含多余MinPts个对象,则创建一个p作为核心对象的新簇。然后,DBSCAN反复地寻找从这些核心对象直接密度可达的对象,这个过程可能涉及一些密度可达簇的合并。当没有新的点可以被添加到任何簇时,该过程结束。,6.3.5 DBSCAN聚类方法,DBSCAN算法描述:输入:包含n个数据对象的数据库,半径,最少数目MinPts输出:所有达到密度要求的簇处理流程:Step1 从数据库中抽取一个未处理
41、的点;Step2 IF抽出的点是核心点 THEN找出所有从该点密度可达的对象,形成一个簇;Step3 ELSE抽出的点是边缘点(非核心对象),跳出本次循环,寻找下一个点;Step4 循环Step1到Step3直到所有点都被处理;,6.4 小结,聚类分析作为一种非常重要的数据挖掘模型,在很多领域都广泛应用,本章对聚类方法的基本理论、常见分类做出详细说明,主要描述了基于划分的聚类方法、基于层次的聚类方法、基于密度的聚类方法、基于网格的聚类方法和基于模型的聚类方法。同时详细介绍了五种聚类方法(包括k-means、k-mediods、AGNES、DIANA以及DBSCAN算法)的算法模型及实例应用。,本章内容结束!,