% V, j- u r: Q; }$ T8 n3 G总结:层次的方法的缺陷在于,一旦一个步骤(合并或分裂)完成,它就不能被撤消,该技术的一个主要问题是它不能更正错误的决定。有两种方法可以改进层次聚类的结果:(a)在每层划分中,仔细分析对象间的“联接”,例如CURE中的做法。(b)综合层次凝聚和迭代的重定位方法。首先用自底向上的层次算法,然后用迭代的重定位来改进结果。 # F" k( o) l8 `0 D! n) h 4 \% U- Y! Q7 _5 X3 n5 T/ H1.3 基于密度的方法(density-based method)" H; Z- b8 m# A1 Q4 D. b0 Z F
绝大多数划分方法基于对象之间的距离进行聚类,这样的方法只能发现球状的簇,而在发现任意形状的簇上遇到了困难。随之提出了基于密度的另一类聚类方法,其主要思想是:只要邻近区域的密度(对象或数据点的数目)超过某个阈值,就继续聚类。也就是说,对给定类中的每个数据点,在一个给定范围的区域中必须至少包含某个数目的点。这样的方法可以用来过滤“噪声”孤立点数据,发现任意形状的簇。常见的基于密度的聚类算法有DBSCAN,OPTICS,DENCLUE等。; ^6 @+ o' w5 W! Q2 r$ A$ D
3 f; S y& L$ g% V5 {1. DBSCAN算法3 w8 Z+ d$ k/ ]
9 ~) ^, i( O" C! q, Z! G6 b2 y2 q V5 BDBSCAN(Density-Based Spatial Clustering of Application with Noise)是一个基于高密度连接区域的密度聚类方法。DBSCAN通过检查数据库中每个点的ε-邻域来寻找聚类。如果一个点p的ε-邻域包含多于MinPts个点,则创建一个以p作为核心对象的新簇。然后,DBSCAN反复地寻找从这些核心对象直接密度可达的对象,这个过程可能涉及一些密度可达簇的合并。当没有新的点可以被添加到任何簇时,该过程结束。) b- F6 `1 U! a/ C
& Z( Q- ~- G! H4 c
2. OPTICS算法 1 V5 [+ [6 W$ F" v G) A; n+ a% K. M# W
OPTICS(Ordering Points To Identify the Clustering Structure)通过对象排序识别聚类结构。OPTICS没有显式地产生一个数据集合簇,它为自动和交互的聚类分析计算一个簇次序(cluster ordering)。这个次序代表了数据的基于密度的聚类结构。它包含的信息,等同于从一个宽广的参数设置范围所获得的基于密度的聚类。也就是说,对于一个恒定的参数MinPts值,可以同时处理一组距离参数值。 / A/ [8 U p3 Y X/ v: A; L" X% P! \7 r. Y+ n/ u
OPTICS在选择参数方面具有比DBSCAN较高的灵活性,在采用空间索引时,复杂度为O(nlogn),和DBSCAN时间复杂度相同。但是,它需要额外的空间存储每个对象的核心距离和一个适当的可达距离。% W' k6 A0 k7 M* Z' m
$ |. B5 D2 \9 Z# V
3. DENCLUE算法 & L. |+ D' o. H/ K ) @3 J* V& L; q5 \0 x$ P* z y. CDENCLUE(DENsity based CLUstEring)是一个基于一组密度分布函数的聚类算法。它是对k-means聚类算法的一个推广:k-means算法得到的是对数据集的一个局部最优划分,而DENCLUE得到的是全局最优划分。 7 u- B3 e5 c: J" q9 B- U/ A& \! ~* [ 8 G7 p/ s! ]* o0 [ o4 A9 E4 HDENCLUE算法有一个坚实的数学基础,概括了其他的聚类方法,包括基于划分的、层次的、及基于位置的方法;同时,对于有大量“噪声”的数据集合,它有良好的聚类特征;对于高维数据集合的任意形状的聚类,它给出了一个基于树的存储结构来管理这些单元,因此比一些有影响的算法(如DBSCAN)速度要快。但是,这个方法要求对密度参数σ和噪声阈值ξ进行仔细的选择,如果选择不当则可能显著地影响聚类结果的质量。 k: i% H" o5 d3 D; U " |( V7 }$ O3 ?- u+ Y: D1.4 基于网格的方法(grid-based method) & V: K' n Z- v! P基于网格的方法把对象空间量化为有限数目的单元,形成了一个网格结构。所有的聚类操作都在这个网格结构(即量化的空间)上进行。基于网格的聚类算法主要有STING, WaveCluster, CLIQUE等。 + d2 S Q0 a9 s3 ]5 e, i ; d- ~1 z) g# ^5 Z; j7 H: J1.STING算法; u3 Y H: ]; R: c; f7 @9 w
u7 Y5 B& |/ r" _9 a) _8 `
STING(Statistical Information Grid-based method)是一种基于网格的多分辨率聚类技术,它将空间区域划分为矩形单元。针对不同级别的分辨率,通常存在多个级别的矩形单元,这些单元形成了一个层次结构:高层的每个单元被划分为多个低一层的单元。关于每个网格单元属性的统计信息(例如平均值、最大值和最小值)被预先计算和存储。这些统计信息用于回答查询。0 x0 D5 ~' U, G1 l. U m
' H8 J) z: V% X5 A% B0 _1 N; Y! o
STING有几个优点:(i)由于存储在每个单元中的统计信息提供了单元中的数据不依赖于查询的汇总信息,所以基于网格的计算是独立于查询的;(ii)网格结构有利于并行处理和增量更新;(iii)该方法的主要优点是效率很高:STING扫描数据库一次来计算单元的统计信息,因此产生聚类的时间复杂度是O(n),其中n是对象的数目。在层次结构建立后,查询处理时间是O(g),这里g是最低层网格单元的数目,通常远远小于n。该算法的缺点:由于STING采用了一个多分辨率的方法进行聚类分析,STING聚类的质量取决于网格结构的最低层的粒度。如果粒度比较细,处理的代价会显著增加;但是,如果网格结构最低层的力度太粗,将会降低聚类分析的质量;而且,STING在构建一个父亲单元时没有考虑孩子单元和其相邻单元之间的关系,因此,结果簇的形状是isothetic,即所有的聚类边界或者是水平的,或者是竖直的,没有对角的边界。尽管该技术有快速的处理速度,但可能降低簇的质量和精确性。) O* T0 d! R* ?/ P' Q
5 X' C( F+ n5 f& j
2. WaveCluster算法 / T0 b Q( Z' F9 y; ^, m' r; |# m9 b! o% _# p* l; k6 u
WaveCluster(Clustering with Wavelets)采用小波变换聚类,它是一种多分辨率的聚类算法,它首先通过在数据空间上加一个多维网格结构来汇总数据,然后采用一种小波变换来变换原特征空间,在变换后的空间中找到密集区域。 3 |7 E5 z2 v* B, g" w5 r5 p" u6 z" @* J3 w4 W
WaveCluster的计算复杂度是O(n),能有效地处理大数据集合;发现任意形状的簇;成功地处理孤立点;对于输入的顺序不敏感;不要求指定诸如结果簇的数目或邻域的半径等输入参数;在实验分析中,WaveCluster在效率和聚类质量上优于BIRCH,CLARANS和DBSCAN;实验分析也发现WaveCluster能够处理多达20维的数据。但是,对数学建模的知识要求较高[33]。: q* V( o: R* O& e% F4 E
+ S) T e; g& G3 U3. CLIQUE算法8 ?: m) o9 g0 K/ l$ ?$ V0 K! z
6 P" l* w# j' M$ Z& [CLIQUE(Clustering In QUEst)算法综合了基于密度和基于网格的聚类方法,它的中心思想是:首先,给定一个多维数据点的集合,数据点在数据空间中通常不是均衡分布的。CLIQUE区分空间中稀疏的和“拥挤的”区域(或单元),以发现数据集合的全局分布模式。接着,如果一个单元中的包含数据点超过了某个输入模型参数,则该单元是密集的。在CLIQUE中,簇定义为相连的密集单元的最大集合。4 p' Q9 h. l' I) k5 [: u% s
, B6 D, L, z. gCLIQUE算法能自动发现最高维中所存在的密集聚类;它对输入数据元组顺序不敏感;也不需要假设(数据集中存在)任何特定的数据分布;它与输入数据大小呈线性关系;并当数据维数增加时具有较好的可扩展性。但是,在追求方法简单化的同时往往就会降低聚类的准确性。; Q* k: Y7 y4 e l \# N