数据挖掘中的聚类分析方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机工程应用技术本栏目责任编辑:贾薇薇
数据挖掘中的聚类分析方法
黄利文
(泉州师范学院理工学院,福建泉州362000)
摘要:聚类分析是多元统计分析的重要方法之一,该方法在许多领域都有广泛的应用。本文首先对聚类的分类做简要的介绍,然后给出了常用的聚类分析方法的基本思想和优缺点,并对常用的聚类方法作比较分析,以便人们根据实际的问题选择合适的聚类方法。
关键词:聚类分析;数据挖掘
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)12-20564-02
ClusterAnlaysisMethodsofDataMining
HUANGLi-wen
(SchoolofScience,QuanzhouNormalUniversity,Quanzhou362000,China)
Abstract:Clusteranalysisisoneoftheimportantmethodsofmultivariatestatisticalanalysis,andthismethodhasawiderangeofapplica-tionsinmanyfields.Inthispaper,theclassificationoftheclusterisintroducedbriefly,andthengivessomecommonmethodsofclusteranalysisandtheadvantagesanddisadvantagesofthesemethods,andtheseclusteringmethodwerecomparedandanslyzedsothatpeoplecanchosesuitableclusteringmethodsaccordingtotheactualissues.
Keywords:ClusterAnalysis;DataMining
1引言
聚类分析是数据挖掘中的重要方法之一,它把一个没有类别标记的样本集按某种准则划分成若干个子类,使相似的样品尽可能归为一类,而不相似的样品尽量划分到不同的类中。目前,该方法已经被广泛地应用于生物、气候学、经济学和遥感等许多领域,其目的在于区别不同事物并认识事物间的相似性。因此,聚类分析的研究具有重要的意义。
本文主要介绍常用的一些聚类方法,并从聚类的可伸缩性、类的形状识别、抗“噪声”能力、处理高维能力和算法效率五个方面对其进行比较分析,以便人们根据实际的问题选择合适的聚类方法。
2聚类的分类
聚类分析给人们提供了丰富多彩的分类方法,这些方法大致可归纳为以下几种[1,2,3,4]:划分方法、层次方法、基于密度的聚类方法、基于网格的聚类方法和基于模型的聚类方法。
2.1划分法(partitiongingmethods)
给定一个含有n个对象(或元组)的数据库,采用一个划分方法构建数据的k个划分,每个划分表示一个聚簇,且k≤n。在聚类的过程中,需预先给定划分的数目k,并初始化k个划分,然后采用迭代的方法进行改进划分,使得在同一类中的对象之间尽可能地相似,而不同类的中的对象之间尽可能地相异。这种聚类方法适用于中小数据集,对大规模的数据集进行聚类时需要作进一步的改进。
2.2层次法(hietarchicalmethods)
层次法对给定数据对象集合按层次进行分解,分解的结果形成一颗以数据子集为节点的聚类树,它表明类与类之间的相互关系。根据层次分解是自低向上还是自顶向下,可分为凝聚聚类法和分解聚类法:凝聚聚类法的主要思想是将每个对象作为一个单独的一个类,然后相继地合并相近的对象和类,直到所有的类合并为一个,或者符合预先给定的终止条件;分裂聚类法的主要思想是将所有的对象置于一个簇中,在迭代的每一步中,一个簇被分裂为更小的簇,直到最终每个对象在单独的一个簇中,或者符合预先给定的终止条件。在层次聚类法中,当数据对象集很大,且划分的类别数较少时,其速度较快,但是,该方法常常有这样的缺点:一个步骤(合并或分裂)完成,它就不能被取消,也就是说,开始错分的对象,以后无法再改变,从而使错分的对象不断增加,影响聚类的精度,此外,其抗“噪声”的能力也较弱,但是若把层次聚类和其他的聚类技术集成,形成多阶段聚类,聚类的效果有很大的提高。2.3基于密度的方法(density-basedmethods)
该方法的主要思想是只要临近区域的密度(对象或数据点的数目)超过某个阈值,就继续聚类。也就是说,对于给定的每个数据点,在一个给定范围的区域中必须至少包含某个数目的点。这样的方法就可以用来滤处"噪声"孤立点数据,发现任意形状的簇。2.4基于网格的方法(grid-basedmethods)
这种方法是把对象空间量化为有限数目的单元,形成一个网格结构。所有的聚类操作都在这个网格结构上进行。用这种方法进行聚类处理速度很快,其处理时间独立于数据对象的数目,只与量化空间中每一维的单元数目有关。
2.5基于模型的方法(model-basedmethod)
基于模型的方法为每个簇假定一个模型,寻找数据对给定模型的最佳拟合。该方法经常基于这样的假设:数据是根据潜在的概
收稿日期:2008-02-17
作者简介:黄利文(1979-),男,助教。
率分布生成的。该方法主要有两类:统计学方法和神经网络方法。
3常用的聚类算法
目前,已经提出的聚类算法很多,常用的聚类算法主要有以下几种:系统聚类法、动态聚类法、CLARANS、CURE、DBSCAN、STING和模糊聚类法(FCM)。
3.1系统聚类法
系统聚类法[5]是将n个样品看成n类,即一类包含一个样品;然后将性质最接近的两类合并成一个新类,这样就得到n-1类,再从这n-1类中找出性质最接近的两类加以合并,成了n-2类;如此下去,最后所有的样品均成一类;将上述类的合并过程画成一张图(这图常称为聚类图),这样便可决定分多少类,每类各有什么样品。
系统聚类法的计算简单,而且其聚类结果给出一个谱系图,因此,可以根据该图选择所需要的聚类结果。但是,它也有不足之处,其主要表现在以下几个方面:(1)当样品数量很多时,而且只需要划分为较少的类别时,这种聚类方法的重复计算量很大;(2)当某一样品划归某一个类后,其属性不变,若分类方法的选择不当,对聚类的精度影响很大;(3)对大数据量进行处理时,计算机内存开销很大,有时,计算机受此限制而无法进行聚类分析,而且其速度很慢;(4)抗干扰的能力很弱。
3.2动态聚类算法
动态聚类法[5]就是在开始时先建立一批初始中心,而让待分的各个样品依据某种判别准则向初始中心凝聚,然后再逐步修改调整中心,重新分类;并根据各类离散性统计量(如均方差)和两类间可分离性的统计量(如类间标准化距离、J-M距离等)再进行合并和分裂。此后在修改调整中心,这样不断继续下去,直到分类比较合适为止。
动态聚类法使用随机方式选择作为初始聚类中心,按照算法的迭代执行,整个算法的结束条件是类的重心(或凝聚点)不再改变,它的计算复杂性是O(nkt),其中,n为样本数量,k为聚类数,t为迭代次数。与系统聚类法相比,动态聚类法明显的优势是运算量小,能用于处理庞大的样本数据,也为实时处理提供了一定的可能性,但其也存在一些缺点,主要表现在以下几个方面:(1)动态聚类法要求用户必须事先给出聚类的数目,选择初始划分的最佳方向、更新分区和停止准则,且其结果与数据输入顺序有关,不同的初始值可能会导致不同的结果;(2)对于噪声和孤立点敏感,很容易受例外情况的影响,适用于发现球状类,但不适合发现非凸面状的簇,不适合大小差别较大的簇;(3)一个对象只能属于一个类中,不能多维揭示其多重属性。
3.3CLARANS算法
CLARANS[2,6,9]也叫随机搜索聚类算法,是一种分割聚类方法。该算法是基于CLARA算法的改进,与CLARA算法不同的是:CLARA算法在每个阶段都选取一个固定样本,而CLARANS在搜索的每一步都带一定的随机性选取一个样本,在替换了一个中心点后得到的聚类结果被称为当前聚类结果的邻居,搜索的邻居点数目被用户定义的一个参数加以限制。如果找到一个比它更好的邻居,则把中心点移到该邻居节点上,否则把该点作为局部最小量,然后再随机选择一个点来寻找另一个局部最小量。
该算法能够探测孤立点,并适用于大型数据库,但其计算复杂度复杂度较高,大约为O(n2);此外,该算法对数据输入的顺序敏感,适用于凸形或球形数据。
3.4CURE算法
CURE[6,7,8]算法是一种使用代表点的聚类算法。该方法首先把每个数据点看成一簇,然后再以一个特定的收缩因子向中心“收缩”,即合并两个距离最近的代表点的簇,直至达到预先给定的聚类个数为止。它回避了用所有点或单个质心来表示一个簇的传统方法,将一个簇用多个代表点来表示,使CURE可以适应非球形的几何形状。另外,收缩因子降底了噪音对聚类的影响,从而使CURE对孤立点的处理更加健壮,而且能识别非球形和大小变化比较大的簇。
该算法采用随机抽样与分割相结合的方法来提高聚类效率,对于大型数据库,它也具有良好的伸缩性,运行速度很快,而且有较好的聚类效果,其计算复杂度为O(n)。
3.5DBSCAN算法
DBSCAN算法[6,7,8,9]是一种基于高密度连接区域密度的聚类算法。该方法将密度足够高的区域划分为簇,并可以在带有“噪声”的空间数据库中发现任意形状的聚类。其主要的思想是通过检查数据库中每个点的ε-邻域来寻找聚类。如果第一个点p的ε-邻域包含多于MinPts个点,则创建一个以P作为核心对象的新簇,否则先把它暂时标为噪声点,跳到下一个点,并判断它是否为核心点。然后反复地寻找从这些核心点直接密度可达的对象,当没有新的点可以被添加到任何簇时,该过程结束。
该算法可以数据集中的所有簇和噪声,但其不对数据集进行预处理而直接进行聚类操作,当数据集很大时,占用内存很大,而且I/O消耗也很大,如果采用空间索引,其计算复杂度为O(nlogn),否则,其计算复杂度为O(n2)。
3.6STING算法
STING算法[2,3,8]是一种基于风格的多分辨率聚类技术,它将空间区域划分为矩形单元。针对不同级别的分辨率,通常存在多个级别的矩形单元,这些单元形成了一个层次结构,高层的每个单元被划分为多个低一层的单元,高层单元的统计参数可以很容易地从低层单元计算得到,而统计信息的查询则采用自顶向下的基于网格的方法。这些参数包括:属性无关的参数count;属性相关的参数m(平均值)、s(标准偏差)、min(最小值)、max(最大值)以及该单元中属性值遵循的分布(distribution)类型。该算法预先计算和存储每个单元的统计信息,它不依赖于查询的汇总信息。
该算法主要优点是效率高,有利于并行处理和增量更新;它通过扫描数据库一次来计算单元的统计信息,因而其计算复杂度为O(n)。在层次结构建立后,其查询处理的计算复杂度为O(m),其中m为最低层网格单元的数目。其缺点是聚类质量取决于网格结构最低层的粒度,粒度的大小会明显影响处理代价,特别是当数据集的维数较高时,由于生成网格层次及每一层的单元数较多,算法的效率会降低。
3.7模糊聚类算法(FCM)
(下转第575页)