层次聚类算法
层次聚类算法

层次聚类算法层次聚类算法(Hierarchical Clustering Algorithm)是一类数据挖掘的重要方法,它的主要思想是,将最初的n个样本点当成n个单独的聚类,然后依据某一距离度量方式分别计算每两个聚类的距离,从而确定最近距离的两个聚类合并为一个,通过不断合并就可以使得初始点构成的n个聚类缩减成一个。
层次聚类算法可以用来分析数据、挖掘隐藏的知识,它主要包含以下几个步骤:一、算法准备1.计算原始数据集中每个样本之间的距离,通常有曼哈顿距离、欧氏距离等方式可以实现计算,这是层次聚类算法的核心步骤;2.设定阈值,用以控制聚类的数量,实现算法的有效性。
二、算法开始1.将每个样本作为一个单独的簇;2.计算每两个簇之间的距离(根据第一步计算出来的距离);3.将最相近的两个簇合并,更新聚类的数量和距离;4.若聚类的数量不等于预设的数量,则重复步骤2、3,否则结束迭代,给出聚类结果。
三、层次聚类的应用1.人脸识别:用层次聚类算法帮助计算机系统将相近的人脸归为一类;2.文本聚类:在虚拟空间中用层次聚类算法对文本进行聚类,例如聚类微博、聚类博客文章等;3.推荐系统:层次聚类可以在推荐系统中用来分析用户的兴趣点,从而提供更契合用户意愿的服务。
四、层次聚类的优点1.易于控制聚类的数量:用户可以通过设定阈值来控制想要的聚类数量;2.易于可视化:结果可以通过树状图等方式直观可视化;3.准确性较高:可以准确实现用户所关心的目标。
五、层次聚类的缺点1.数据资源要求高:层次聚类算法每次迭代中都需要计算所有数据样本之间的距离,对数据资源要求非常高;2.聚类结果影响大:层次聚类的结果受初始选择的聚类数量的影响很大,可能会出现收敛于局部最优点,不能达到全局最优点;3.高维数据聚类效果不佳:高维数据的距离计算比较复杂,容易导致聚类效果不理想。
总结:层次聚类算法是一类数据挖掘的重要方法,它的核心是将最初的n个样本点当成n 个单独的聚类,依据某一距离度量方式计算每两个聚类之间的距离,然后将最相近的两个聚类合并,不断迭代,最终输出聚类结果,主要应用于人脸识别、文本聚类和推荐系统等。
常见的六大聚类算法

常见的六大聚类算法六大常见的聚类算法包括K-means聚类算法、层次聚类算法、DBSCAN 算法、OPTICS算法、谱聚类算法和高斯混合模型聚类算法。
1. K-means聚类算法:K-means聚类算法是一种基于距离的聚类算法,它通过最小化数据点与聚类中心之间的欧氏距离来划分数据点。
算法的步骤如下:a.随机选择K个聚类中心。
b.将每个数据点分配到距离最近的聚类中心。
c.更新聚类中心为选定聚类的平均值。
d.重复步骤b和c直到聚类中心不再改变或达到最大迭代次数。
2.层次聚类算法:层次聚类算法是一种自底向上或自顶向下递归地将数据划分成不同的聚类的方法。
它通过计算数据点之间的距离或相似度来判断它们是否应该被合并到同一个聚类中。
算法的步骤如下:a.初始化每个数据点为一个单独的聚类。
b.计算两个最近的聚类之间的距离或相似度。
c.合并两个最近的聚类,形成一个新的聚类。
d.重复步骤b和c直到所有数据点都被合并到一个聚类中。
3.DBSCAN算法:DBSCAN(Density-Based Spatial Clustering of Applicationswith Noise)算法是一种基于密度的聚类算法,它通过寻找具有足够密度的数据点来划分聚类。
算法的步骤如下:a.随机选择一个未被访问的数据点。
b.如果该数据点的密度达到预设的阈值,则将其归为一个聚类,同时将其相邻且密度达到阈值的数据点添加到聚类中。
c.重复步骤a和b直到所有数据点都被访问。
4.OPTICS算法:OPTICS(Ordering Points To Identify the Clustering Structure)算法是一种基于密度的聚类算法,它通过将数据点按照密度排序来划分聚类。
算法的步骤如下:a.计算每个数据点的可达距离和局部可达密度。
b.根据可达距离和局部可达密度排序所有数据点。
c.根据可达距离和阈值划分聚类。
d.重复步骤b和c直到所有数据点都被访问。
层次聚类 matlab

层次聚类matlabMatlab中的层次聚类算法层次聚类是一种无监督学习算法,它将数据集中的样本按照相似度进行分组。
Matlab提供了丰富的函数和工具箱来实现层次聚类算法。
本文将一步一步回答如何使用Matlab进行层次聚类,并介绍一些相关的概念和技术。
第一步:准备数据首先,我们需要准备要聚类的数据。
一般来说,数据可以是一个矩阵,其中每一行表示一个样本,每一列表示一个特征。
例如,我们可以有一个100x3的矩阵,其中有100个样本和3个特征。
第二步:计算相似度矩阵层次聚类需要通过计算样本之间的相似度来确定它们的聚类关系。
常见的相似度计算方法包括欧几里得距离、曼哈顿距离和相关系数等。
在Matlab中,可以利用pdist函数来计算样本之间的距离。
例如,使用欧几里得距离可以使用以下代码计算相似度矩阵:matlabdistMatrix = pdist(data, 'euclidean');这将返回一个距离矩阵,其中包含了样本之间的欧几里得距离。
第三步:构建聚类树在得到相似度矩阵之后,接下来需要使用linkage函数构建聚类树。
聚类树是一棵二叉树,每个节点表示一个聚类组合。
在Matlab中,聚类树可以通过以下方式构建:matlabtree = linkage(distMatrix);这将返回一个聚类树,其中包含了每个节点的连接关系和连接距离。
第四步:确定聚类结果最后,我们可以使用cluster函数来确定聚类结果。
Matlab中的cluster 函数可以根据给定的聚类树和聚类数量来划分样本。
例如,可以使用以下代码将数据分成3个聚类:matlabclusters = cluster(tree, 'maxclust', 3);这将返回一个向量,其中元素的值表示每个样本所属的聚类。
除了上述介绍的基本步骤之外,Matlab提供了更多高级功能和选项来定制层次聚类算法。
例如,我们可以选择不同的相似度度量方法、聚类算法、距离阈值等。
层次聚类算法总结

层次聚类算法总结层次聚类算法的总结一、引言层次聚类算法是一种常用的数据聚类方法,它通过逐步合并或分割数据来构建聚类层次结构。
本文将对层次聚类算法进行总结,包括算法原理、应用领域以及算法的优缺点。
二、算法原理层次聚类算法主要包括凝聚型层次聚类和分裂型层次聚类两种类型。
其中,凝聚型层次聚类是自底向上的合并过程,而分裂型层次聚类是自顶向下的分割过程。
1. 凝聚型层次聚类凝聚型层次聚类从每个数据点作为一个独立的类开始,然后逐步合并最相似的类,直到达到预设的聚类数目或者合并所有数据点为止。
常用的合并策略有单链接、完全链接和平均链接等。
- 单链接:将两个最相似的类合并,其中最相似的类定义为两个类中最近的两个数据点之间的距离。
- 完全链接:将两个最相似的类合并,其中最相似的类定义为两个类中最远的两个数据点之间的距离。
- 平均链接:将两个最相似的类合并,其中最相似的类定义为两个类中所有数据点之间距离的平均值。
2. 分裂型层次聚类分裂型层次聚类从所有数据点作为一个类开始,然后逐步将类分裂成更小的子类,直到达到预设的聚类数目或者每个类只包含一个数据点为止。
常用的分裂策略有K-means算法、二分K-means算法等。
三、应用领域层次聚类算法在许多领域都有广泛的应用,下面列举几个常见的应用领域。
1. 生物学层次聚类算法可以用于基因表达谱数据的聚类分析,帮助研究人员发现不同基因的表达模式,从而揭示基因之间的相互关系。
2. 图像处理层次聚类算法可以用于图像分割,将相似的像素点聚类到同一个区域,实现图像的分割和识别。
3. 社交网络层次聚类算法可以用于社交网络中的用户聚类,将具有相似兴趣和行为模式的用户聚集在一起,为推荐系统和个性化推送提供基础。
四、优缺点分析层次聚类算法具有以下优点:1. 不需要预先指定聚类数目,能够自动构建聚类层次结构。
2. 可以处理任意形状和大小的聚类。
3. 聚类结果具有层次结构,方便后续的分析和解释。
聚类算法层次方法ppt课件

层次聚类方法
一般来说,有两种类型的层次聚类方法:
• 凝聚层次聚类:采用自底向上策略,首先将每个对象作为单独 的一个原子簇,然后合并这些原子簇形成越来越大的簇,直到 所有的对象都在一个簇中(层次的最上层),或者达到一个终 止条件。绝大多数层次聚类方法属于这一类。
• 分裂层次聚类:采用自顶向下策略,首先将所有对象置于一个 簇中,然后逐渐细分为越来越小的簇,直到每个对象自成一个 簇,或者达到某个终止条件,例如达到了某个希望的簇的数目, 或者两个最近的簇之间的距离超过了某个阈值。
不具有很好的可伸缩性,因为合并或分裂的决定需要检查 和估算大量的对象或簇。
Page 16
经营者提供商品或者服务有欺诈行为 的,应 当按照 消费者 的要求 增加赔 偿其受 到的损 失,增 加赔偿 的金额 为消费 者购买 商品的 价款或 接受服 务的费 用
层次聚类的改进
一个有希望的方向是集成层次聚类和其他的聚类技术,形 成多阶段聚类。在下面的内容中会介绍四种这类的方法:
主要内容
凝聚和分裂层次聚类 BIRCH:利用层次方法的平衡迭代归约和聚类
ROCK:分类属性的层次聚类算法 CURE:基于质心和基于代表对象方法之间的中间策略
Chameleon:利用动态建模的层次聚类算法
Page 3
经营者提供商品或者服务有欺诈行为 的,应 当按照 消费者 的要求 增加赔 偿其受 到的损 失,增 加赔偿 的金额 为消费 者购买 商品的 价款或 接受服 务的费 用
某个任意的阈值时聚类过程就会终止,则称其为单连接算
法。
当一个算法使用最大距离
度量簇间距离时,有时
称为最远邻聚类算法。如果当最近簇之间的最大距离超过
某个任意阈值时聚类过程便终止,则称其为全连接算法。
层次聚类算法课件

层次聚类形成的树状图能够直观地展示聚 类的过程和结果,便于理解和分析。
适用于任意形状的簇
对异常值敏感
层次聚类不受簇形状的限制,可以发现任 意形状的簇。
层次聚类对异常值比较敏感,异常值可能 会对聚类结果产生较大影响。
层次聚类算法的分类
01
根据是否进行分裂可以分为凝聚 层次聚类和分裂层次聚类。
02
根据距离度量方式可以分为最小 距离层次聚类、最大距离层次聚 类和平均距离层次聚类等。
对于具有非凸形状的簇,层次 聚类算法可能无法找到最优的 聚类结果。这是因为该算法基 于距离度量来构建簇,而距离 究
CHAPTER
案例一:社交网络用户群体的层次聚类
总结词
社交网络用户群体的层次聚类是利用层次聚类算法对社交网络中的用户进行分类的一种 应用。
特征选择
选择与聚类目标最相关的特征,去除冗余特征。
特征标准化
将特征值缩放到统一尺度,如归一化或标准化。
距离度量的选择
欧氏距离
适用于连续型数据,计算两点之间的直线距 离。
皮尔逊相关系数
适用于连续型数据,衡量两个变量之间的线 性关系。
余弦相似度
适用于连续型数据,衡量两个向量之间的夹 角大小。
Jaccard相似度
索、图像识别、目标检测等应用。
谢谢
THANKS
05 层次聚类算法的优缺点分析
CHAPTER
优点分析
灵活性
层次聚类算法能够处理各种形状和大小的簇,而 不仅仅是圆形或球形的簇。它能够识别出具有复 杂结构的簇,使得聚类结果更加符合实际情况。
稳健性
对于异常值和噪声数据,层次聚类算法通常具有 较好的稳健性。因为异常值和噪声数据对距离计 算的影响较小,所以它们不太可能对聚类结果产 生重大影响。
各种聚类算法的比较

各种聚类算法的比较聚类算法是一种无监督学习方法,用于将样本划分为具有相似特征的不同组别。
在机器学习和数据挖掘中被广泛应用。
有许多不同的聚类算法可供选择,每个算法有其独特的优点和适用范围。
在本文中,我们将比较几种常用的聚类算法,以帮助选择最适合特定问题和数据集的算法。
1.K均值聚类算法:K均值算法是一种经典的聚类算法。
它将数据点分为K个不同的簇,使得同一簇内的数据点之间的距离尽可能小,不同簇之间的距离尽可能大。
该算法计算复杂度较低,适用于大数据集。
然而,该算法对初始聚类中心的选择非常敏感,并且只能处理数值型数据。
2.层次聚类算法:层次聚类算法通过计算数据点之间的相似性将它们逐步聚类成树状结构。
该算法不需要事先指定聚类个数,并且可以处理各种数据类型。
然而,该算法在处理大数据集时计算复杂度较高,并且结果的质量受到相似性度量的影响。
3.密度聚类算法:密度聚类算法使用数据点密度来识别簇。
该算法可以处理不规则形状的簇,并且对初始聚类中心的选择不敏感。
DBSCAN是一种常用的密度聚类算法。
然而,该算法对密度参数的选择敏感,并且在处理高维数据时效果可能不好。
4.基于模型的聚类算法:基于模型的聚类算法将数据点建模为一些概率分布的样本。
该算法可以处理不同形状和大小的簇,并且能够进行概率推断。
高斯混合模型(GMM)是一种常用的基于模型的聚类算法。
然而,该算法对模型的选择和参数估计比较困难。
5.谱聚类算法:谱聚类算法通过矩阵分解来对数据进行聚类。
该算法可以处理非线性可分的数据,并且不需要事先指定聚类个数。
然而,该算法在处理大数据集时计算开销较大,并且对相似度矩阵的构建方法敏感。
以上只是一些常见的聚类算法,实际上还有许多其他聚类算法可供选择,如affinity propagation、BIRCH、OPTICS等。
每种算法都有其独特的特点和适用范围。
在选择聚类算法时,需要考虑数据集的规模、维度、特征类型以及问题的特殊需求等因素。
五种层次聚类法

五种层次聚类法
- K均值聚类:这可能是最知名的聚类算法。
在代码中很容易理解和实现。
该算法的优点是速度非常快,因为它的计算复杂度为线性O(n)。
但缺点是必须选择要使用的类/组的数量,而且结果可能因随机初始化聚类中心而异,缺乏一致性。
- K-Medians聚类:与K-Means类似,但不是使用组的中心点来重新计算组的中心点,而是使用组的中值向量。
这种方法对异常值不太敏感,但对于较大的数据集要慢得多,因为在计算中值向量时,每次迭代都需要进行排序。
- Mean-Shift聚类:这是一种基于滑动窗口的算法,试图找到密集的数据点区域。
这是一个基于中心的算法,通过更新中心点的候选者作为滑动窗口内点的平均值来定位每个组/类的中心点。
然后这些候选窗口被过滤到后处理阶段,以消除近似的重复,形成最终的中心点集及其相应的组。
- DBSCAN Density-Based Spatial Clustering of Applications with Noise)聚类:该算法根据数据点的密度来聚类。
它可以识别任意形状的簇,并且可以处理噪声点。
该算法具有简单、高效的优点,但需要选择两个参数:邻域半径和最小密度阈值。
- OPTICS Ordering Points to Identify the Clustering Structure)聚类:该算法通过创建一个基于距离的层次结构来识别聚类。
它可以处理大型数据集,并且可以识别任意形状的簇。
该算法的优点是速度快,但需要选择一个参数:邻域半径。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
24
层次聚类 2013-5-15
ROCK
例:购物篮数据库包含关于商品a,b,…g的事物记录。簇C1涉 及商品{a,b,c,d,e},簇C2涉及商品{a,b,f,g} 假设:只考虑相似度而忽略邻域信息。 C1中{a,b,c}和{b,d,e}之间的Jaccard系数 是0.2 而C1中的{a,b,c}和C2中的{a,b,f}的Jaccard系数 是0.5 说明:仅根据Jaccard系数, 很容易导致错误。
18
层次聚类
2013-5-15
BIRCH算法
BIRCH (Balanced Iterative Reducing and Clustering) 利用层次方法的平衡迭代归约和聚类 用聚类特征(CF)和聚类特征树来概括聚类描述。 该算法通过聚类特征可以方便地进行中心、半径、直径及 类内、类间距离的运算。
7.5层次聚类方法
层次聚类方法概述
层次聚类方法将数据对象组成一棵聚类 树。 根据层次分解是自底向上(合并)还是 自顶向下(分裂),进一步分为凝聚的 和分裂的。
2
层次聚类
2013-5-15
层次聚类方法概述
凝聚的层次聚类:一种自底向上的策略,首 先将每个对象作为一个簇,然后合并这些原 子簇为越来越大的簇,直到某个终结条件被 满足。 分裂的层次聚类:采用自顶向下的策略,它 首先将所有对象置于一个簇中,然后逐渐细 分为越来越小的簇,直到达到了某个终结条 件。 层次凝聚的代表是AGNES算法。层次分裂的 代表是DIANA算法。
14
层次聚类
2013-5-15
DIANA算法
DIANA(Divisive ANAlysis)算法是典型 的分裂聚类方法。 在聚类中,用户能定义希望得到的簇数 目作为一个结束条件。
15
层次聚类
2013-5-15
算法 DIANA(自顶向下分裂算法) 输入:n个对象,终止条件簇的数目k。 输出:k个簇,达到终止条件规定簇数目。 (1)将所有对象整个当成一个初始簇; (2) FOR (i=1; i≠k; i++) DO BEGIN (3) 在所有簇中挑出具有最大直径的簇C; (4) 找出C中与其它点平均相异度最大的一个点p并把p放入splinter group,剩余的放在old party中; (5) REPEAT (6) 在old party里找出到最近的splinter group中的点的距离不 大于到old party中最近点的距离的点,并将该点加入splinter group。 (7) UNTIL 没有新的old party的点被分配给splinter group; (8) splinter group和old party为被选中的簇分裂成的两个簇,与其它 簇一起组成新的簇集合。 (9) END.
层次聚类
2013-5-15
13
层次聚类
2013-5-15
AGNES特点
AGNES算法比较简单,但经常会遇到合 并点选择的困难。假如一旦一组对象被合 并,下一步的处理将在新生成的簇上进行。 已做处理不能撤销,聚类之间也不能交换 对象。如果在某一步没有很好的选择合并 的决定,可能会导致低质量的聚类结果。
Old party {2,3,4,5,6,7,8} {3,4,5,6,7,8} {4,5,6,7,8} {5,6,7,8} {5,6,7,8} 终止
层次聚类方法的改进
层次聚类方法尽管简单,但经常会遇到合并 或分裂点的选择的困难。 改进层次方法的聚类质量的一个有希望的方 向是将层次聚类和其他聚类技术进行集成, 形成多阶段聚类。 下面介绍3个改进的层次聚类方法BIRTH, ROCK和Chameleon。
DIANA算法例题
序号 1 2 3 4 5 6 7 8 属性 1 1 1 2 2 3 3 4 4 属性 2 1 2 1 2 4 5 4 5 第1步,找到具有最大直径的簇,对簇中的每个点计算平均相异度(假定采用 是欧式距离)。 1的平均距离:(1+1+1.414+3.6+4.24+4.47+5)/7=2.96 类似地,2的平均距离为2.526;3的平均距离为2.68;4的平均距离为 2.18;5的平均距离为2.18;6的平均距离为2.68;7的平均距离为 2.526;8的平均距离为2.96。 找出平均相异度最大的点1放到splinter group中,剩余点在old party中。 第2步,在old party里找出到最近的splinter group中的点的距离不大于到 old party中最近的点的距离的点,将该点放入splinter group中,该 点是2。 第3步,重复第2步的工作,splinter group中放入点3。 第4步,重复第2步的工作,splinter group中放入点4。 第5步,没有在old party中的点放入了splinter group中且达到终止条件 (k=2),程序终止。如果没有到终止条件,因该从分裂好的簇中选一 个直径最大的簇继续分裂。
3
4 5 6 7 8
2
2 3 3 4 4
1
2 4 5 4 5
步骤 最近的簇距离 1 1
最近的两个簇 {1},{2}
合并后的新簇 {1,2},{3},{4},{5},{6},{7},{8}
2
3 4 5 6
1
1 1 1
10 1
{3},{4}
{5},{6} {7},{8} {1,2},{3,4} {5,6},{7,8}
层次聚类 2013-5-15
3
簇间距离
最小距离
4
层次聚类
2013-5-15
簇间距离
最大距离
5
层次聚类
2013-5-15
簇间距离
平均距离
6
层次聚类
2013-5-15
簇间距离
均值距离
7
层次聚类
2013-5-15
AGNES算法
AGNES(AGglomerative
NESting) 算法最初将每个对象作为一个簇, 然后这些簇根据某些准则被一步步 地合并。 两个簇间的相似度由这两个不同簇 中距离最近的数据点对的相似度来 确定。 聚类的合并过程反复进行直到所有 的对象最终满足簇数目。
{1,2},{3,4},{5},{6},{7},{8}
{1,2},{3,4},{5,6},{7},{8} {1,2},{3,4},{5,6},{7,8} {1,2,3,4},{5,6},{7,8}
层次聚类 2013-5-15
{1,2,3,4},{5,6,7,8}结束
11
层次聚类
2013-5-15
12
层次聚类 2013-5-15
9
AGNES算法例题
序号 1 2 属性1 1 1 属性2 1 2 第1步:根据初始簇计算每个簇之间的距离,随机找出距离最小的两 个簇,进行合并,最小距离为1,合并后1,2两个点合并为一个簇。 第2步:对上一次合并后的簇计算簇间距离,找出距离最近的两个簇 进行合并,合并后3,4点成为一簇。 第3步:重复第2步的工作,5,6点成为一簇。 第4步:重复第2步的工作,7,8点成为一簇。 第5步:合并{1,2},{3,4}成为一个包含四个点的簇。 第6步:合并{5,6},{7,8},由于合并后的簇的数目已经达到了用户输 入的终止条件,程序终止。
步骤 1 2 3 4 5
具有最大直径的簇 splinter group {1,2,3,4,5,6,7,8} {1} {1,2,3,4,5,6,7,8} {1,2} {1,2,3,4,5,6,7,8} {1,2,3} {1,2,3,4,5,6,7,8} {1,2,3,4} {1,2,3,4,5,6,7,8} {1,2,3,4}
层次聚类 2013-5-15
23
ROCK
两个概念:近邻和链接 近邻:两个点pi和pj是近邻,如果 sim(pi,pj)>=θ,sim是相似度函数,θ是 指定的阈值 链接:两个点pi和pj的链接数定义为这 两点的共同近邻个数。 由于在确定点对之间的关系时考虑邻 近的数据点,因此比只关注相似度的 聚类方法更加鲁棒。
层次聚类 2013-5-15
29
割边
图划分算法划分k近邻图,使得割边最 小,即簇C划分为两个子簇Ci和Cj时需 切断的边的加权和最小。 割边用EC(Ci,Cj)表示,用于评估两个 簇之间的绝对互连度。 Chameleon根据每对簇Ci和Cj的相对互 连度RI(Ci,Cj)和相对接近度RC(Ci,Cj) 来决定它们之间的相似度。
利用动态建模的层次聚类算法。采用动 态建模确定簇之间的相似度。 簇之间的相似度依据簇中对象的互连度 和簇的邻近度,即如果两个簇的互连性 都很高且它们又靠得很近则将其合并。
27
层次聚类
2013-5-15
变色龙算法的聚类步骤
Chameleon 算法首先由数据集构造成 一个K-最近邻图Gk ,再通过一个图的划 分算法将图Gk 划分成大量的子图,每个 子图代表一个初始子簇,最后用一个凝 聚的层次聚类算法反复合并子簇,找到 真正的结果簇;
22
层次聚类 2013-5-15
ROCK
ROCK(Robust Clustering using linKs,使用连 接的鲁棒聚类 大多数聚类算法在进行聚类时只估计点与点 之间的相似度,即在每一步中那些最相似的 几个点合并到一个簇中。这种“局部”方法 很容易导致错误。例如:两个完全不同的簇 可能有少数几个点的距离较近,仅仅依据点 与点之间的相似度来做出聚类决定就会导致 这两个簇合并。 ROCK采用一种比较全局的观点,通过考虑 成对点的邻域情况进行聚类。
另一方面,如果考虑链接数,可以成功地把这些 事务划分到恰当地簇中。 例如: 令θ=0.5,则C2中的事务 {a,b,f}与{a,b,g}的链接数是5 而C2中的事务 {a,b,f}与C1中的事 务{a,b,c}之间的链接数是3. 因此,ROCK能够正确地区分出两个不同 的事务簇。