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

数据挖掘中聚类算法研究综述随着数据量的不断增加,数据挖掘成为了探索数据背后规律的一种重要方法。
而聚类算法作为数据挖掘中的一种基本技术,其在数据分析、模式识别、生物信息学、社交网络分析等领域都有着广泛的应用。
本文就对数据挖掘中的聚类算法进行了研究和总结,旨在对聚类算法的原理、特点、应用等方面进行探讨。
一、聚类算法的基本原理聚类算法是指将一组对象划分为若干个组或类,使得组内对象之间的相似度尽可能大,组间对象之间的相似度尽可能小,从而达到数据分类和分析的目的。
聚类算法的基本原理包括以下三个方面:1. 相似度度量:聚类算法的基础在于相似度度量,即将每个对象之间的相似度进行计算。
相似度度量可以采用欧几里得距离、曼哈顿距离、余弦相似度等多种方法。
2. 聚类分配:聚类分配是指将每个对象划分到合适的聚类中。
聚类分配可以通过最近邻法、k-means算法等实现。
3. 聚类更新:聚类更新是指对各个聚类进行调整,使得聚类内对象之间的相似度尽可能大,聚类间对象之间的相似度尽可能小。
聚类更新可以采用层次聚类法、DBSCAN算法等。
二、聚类算法的分类根据聚类算法的不同特点和应用场景,可以将聚类算法分为以下几种类型:1. 基于距离的聚类算法:包括最近邻法、k-means算法、k-medoid 算法等。
2. 基于密度的聚类算法:包括DBSCAN算法、OPTICS算法等。
3. 基于层次的聚类算法:包括凝聚层次聚类法、分裂层次聚类法等。
4. 基于模型的聚类算法:包括高斯混合模型聚类、EM算法等。
三、聚类算法的应用聚类算法在各种领域中都有着广泛的应用,包括数据分析、模式识别、社交网络分析、生物信息学等。
下面简单介绍一下聚类算法在这些领域中的应用:1. 数据分析:聚类算法可以对数据进行分类和分组,从而提取出数据中的规律和趋势,帮助人们更好地理解和利用数据。
2. 模式识别:聚类算法可以对图像、声音、文本等数据进行分类和分组,从而实现对数据的自动识别和分类。
数据挖掘中聚类算法研究综述

步骤三 :根据当前簇 中心 ( 平均值 ) , 将其 余对 象赋给距离最近的中心点所代表 的簇 ; 步骤 四 :重新 计算每 个簇的平 均值 ; 步 骤 五 :直 到 划 分 不 发 生 变 化 。 优点 K 平均算法 实现 起来比较简单 其计 算复杂度为 (k )其中n n t, 为对象个 数 , k为聚类 个数 , 为循环次数 ,它具有可扩 t
D S ANE 。 B C 等
组就代表一个聚 类 ,其 中 K≤ N。而且这
K 个 分 组 满 足 下 列 条 件 : ( )每 一 个 分 组 1
Hale Waihona Puke K一中心 点算法不采用 簇中对象的平 均 值 作 为 参 照 点 , 是 选 用 簇 中位 置 最 中 而 心的点 ( 中心点 )作为聚类的 中心 点。剩 余的对象根据其与代表点的距离分配给最 近 的 一 个 簇 。 然 后 反 复 地 寻 找 更 好 的 质
展性 。
它们更靠近簇的 中心 。它的时 间复杂度在 最坏情 况下为 n l g 。o n。优点是 选择多个 代表 使得该算 法可 以适应非球状 的几何形 状, 簇的收缩或凝 聚可以有助于控制噪声
的影 响 ,同时 该 方 法 采 用 了随 机 抽 样 与 分 割相结合来提高效率 , 对大型数据库有 良 好的收缩性。
( )K一平 均算法对噪 声和异常数据 4 非 常 敏 感 。因 为 这 类 数 据 可 能 会 影 响 到 簇 中对象的均值 。 1. 2 K-ME I S算法 ( DO D K一中心
点算法 )
缺点。这种方法 的基本 思想是 :只要一个 区域中的点的密度大过某 个阈值 , 就把 它 加 到与之相近 的聚类 中去 。代表算 法有 :
缺 点:K一 平均算 法有以下四个缺 点: ( )K一平 均 算 法 只适 用 于 簇 中对 象 1
数据挖掘层次聚类算法研究综述

数据挖掘层次聚类算法研究综述层次聚类是一种常用的数据挖掘算法,通过逐步将样本进行聚合或分割,形成有层次结构的聚类结果。
在层次聚类中,主要有两种方法:凝聚法和分裂法。
凝聚法从每个样本作为一个独立的簇开始,不断将最相似的簇进行合并,直到满足预定的停止准则。
而分裂法则从整个数据集作为一个簇开始,不断将最不相似的簇进行分裂,直到达到预定的停止准则。
层次聚类算法的优点是可以根据不同的需要得到不同层次的聚类结果。
同时,它不需要预先指定聚类簇的个数,可以根据数据的特点自动进行聚类。
此外,层次聚类还具有易于理解和解释的优点。
然而,层次聚类算法也存在一些缺点。
首先,由于算法的复杂性,时间复杂度较高,处理大规模数据集时会产生较高的计算开销。
其次,聚类结果的质量与初始聚类的选择有很大关系,不同的初始聚类可能得到不同结果,因此,选择合适的初始聚类是一个比较困难的问题。
近年来,研究人员对层次聚类算法进行了很多改进和扩展。
一方面,一些学者提出了基于密度的层次聚类算法,如DBSCAN层次聚类算法。
这些算法通过考虑样本的密度来进行聚类,避免了对簇个数的设定。
另一方面,还有一些学者提出了基于聚类中心的层次聚类算法,如K-means层次聚类算法。
这些算法通过考虑样本与聚类中心之间的距离来进行聚类,能够得到更好的聚类效果。
值得注意的是,层次聚类算法还有一些应用上的注意事项。
首先,由于层次聚类可能在所有数据上进行计算,因此,对于大规模数据集来说,算法的计算开销会很大。
其次,层次聚类算法对距离度量的选择较为敏感,不同的距离度量会对聚类结果产生较大影响。
此外,如果数据中存在离群点,层次聚类算法可能会将其作为一个独立的簇进行处理,从而影响最终聚类结果的准确性。
综上所述,层次聚类是一种常用的数据挖掘算法,通过逐步将样本进行聚合或分割,形成有层次结构的聚类结果。
该算法具有一定的优点,但也存在一些缺点和应用上的注意事项。
随着研究的深入,层次聚类算法还有很大的发展空间,可以通过引入新的聚类准则、优化计算方式等方面来进一步提高算法的性能和效果。
数据挖掘常用聚类算法分析与研究

数据挖掘常用聚类算法分析与研究数据挖掘是从大量的数据中挖掘出有价值的信息和知识的过程。
而聚类算法作为数据挖掘中的一种常用技术,被广泛应用于分析不同领域的数据集。
聚类算法通常可以将具有类似特征的数据对象归为一类,并将不具有相似特征的数据对象划分到不同的类别中。
本文将对数据挖掘中常用的几种聚类算法进行分析与研究。
1.K均值聚类算法K均值聚类算法是最为经典的聚类算法之一、该算法以欧式距离作为相似度度量,并以样本点与其所属类均值之间的距离之和最小化为目标,将数据点划分到K个不同的类别中。
算法的步骤包括初始化聚类中心、计算样本点与聚类中心的距离、更新聚类中心和重新划分样本点等。
K均值聚类算法简单易实现,但对初始聚类中心的选择敏感,并且对于非球形或半径不等的聚类簇效果较差。
2.DBSCAN聚类算法DBSCAN(Density-Based Spatial Clustering of Applications with Noise)聚类算法是一种基于密度的聚类算法。
该算法通过计算数据对象的密度来确定聚类簇的分布情况,并将具有足够高密度的样本对象划分到同一聚类簇中。
DBSCAN算法不需要预先指定聚类数量,能够发现任意形状的聚类簇,并对噪声数据具有较好的容忍性。
但该算法对于数据密度变化较大的数据集效果较差。
3.层次聚类算法层次聚类算法是一种自底向上或自顶向下的聚类方法。
该算法首先将每个数据点看作是一个簇,然后逐步合并相似的簇,直到得到预定的聚类数量。
层次聚类算法可以根据不同的相似性度量进行分类,如单链接、完全链接和平均链接等。
该算法不需要预先设定聚类数量,且能够构建聚类层次结构,但在处理大规模数据集时运算复杂度较高。
4.密度聚类算法密度聚类算法是基于数据点之间密度的一种聚类方法。
该算法通过计算数据点的密度来决定聚类簇的边界,并将密度相连的数据点划分到同一聚类簇中。
密度聚类算法对于噪声数据具有较好的鲁棒性,并且能够发现任意形状的聚类簇。
数据挖掘中聚类算法研究综述

1 引言
随着 信息 技术 和计算 机技 术 的迅 猛发 展 。人们面临着越来越 多的文本、图像 、视 频 以及音频数据 , 为帮助用户从这些大量数 据 中分析 出其问所蕴涵的有价值的知识 , 数 据挖掘 ( D a t a M i n i n g , D M) 技术应运而生 。 所谓数据挖掘 , 就是从大量无序 的数据 中发 现 隐含 的、有效的、有价值 的、可理解 的模 式 ,进而发现有用的知识 , 并得 出时 间的趋 向和关联 ,为用户提供 问题求解层次 的决策 支持能力 。与此同时 ,聚类作为数据挖 掘的 主要方法之一 ,也越来越引起人们 的关注 。 俗话说 :“ 人 以群分 ,物以类 聚” 。聚类 就 是利用 计算 机技术 来实 现这 一 目的 的一 种技术 。其输入是一组未分类 的记录 ,且事 先不知道如何分类 , 也可能不知道要分 成几 类。 通过分析数据 , 合 理划分记录集合 ,确 定每个记 录所属 的类别 , 把相似性大 的对象 聚集为一个簇 。聚类 的标准是使簇 内相 似度 尽 可能大 、簇 间相似度尽可能小 。
c l u s t e r i n g ̄g o d t h ms o f he t a d v a n t a g e s nd a d i s a d v a n t a g e s . i n or d e r t o f u r t h e r r c s c a r c h o n he t c l st u e r i n g ̄g or it h m.
一
个簇 用该 簇 中对 象 的平 均值 来表示 。( 2 ) k - m e d o i d s算 法 , 在 该算 法中 ,每个簇用接 近聚类 中心 的一个对象来表示 。这些启发式 聚类 方法 对在 中小规模 的数 据库 中发 现球 状簇很适用 。 为 了对大规模的数据集进行聚 类 ,以及 处理复杂形状 的聚类 , 基于划分 的 方法需要进一步的扩展。 2 . 2层次方法 层次方法 ( h i e r a r c h i c a l h i e t h o d s ) :层次 的方法对给定数据集合进行层次的分解 。 根 据层次 的分解如何形成 , 层次的方法可 以被 分为凝聚的或分裂的方法 。 凝 聚的方法 , 也 称为 自底 向上的方法 , 一开始将每个对象作 为单独 的一个组 , 然后继续地合并相近的对 象或组 ,直到所 有的组合并为一个 ( 层次的 最上层 ) ,或者达 到一个终止条件 。分裂的 方法 ,也称为 自顶向下 的方法 , 一开始将所 有 的对象 置于 一个簇 中 。在 迭代 的每一 步 中,一个 簇被分裂为更小 的簇 , 直到最终每 个对象在单独 的一个簇 中, 或者达到一个终 止条件 。 层次 的方法 的缺陷在于 , 一旦一个步骤 ( 合并或分裂 ) 完成 , 它就不能被撤消 。这 个严格规定是有用 的。由于不用担心组合数 目的不 同选择 , ̄ i - g t 代价会较小 。但是 ,该 技 术的一 个 主要问题 是它不 能更 正错误 的 决 定 。有 两种 方法可 以改进 层次 聚类 的结 果 :( 1 ) 在每层 划分 中 , 仔细分析对象间的 联接 ,例如 c u R E和 C h a m e l e o n 中的做法。 ( 2) 综合层次凝 聚和迭 代的重定位方 法。 首先用 自 底 向上 的层次算法 , 然后用迭代的 重定位来改进结果 。例如在 B I R C H 中的方
数据挖掘中聚类算法研究综述

数据挖掘中聚类算法研究综述一、引言数据挖掘是指从大量的数据中发现有用的信息和知识的过程,是应用于各种领域的热门技术之一。
其中,聚类算法是数据挖掘中最为重要的算法之一,它可以将数据集中相似的对象归为同一类别,不同类别之间具有较大差异性。
本文将对聚类算法进行综述,包括聚类算法的定义、分类以及应用等方面。
二、聚类算法定义聚类算法是指将一个数据集分成若干个互不相交的子集(即簇),使得每个子集内部的对象相似度较高,而不同子集之间的对象相似度较低。
其中,“相似度”可以根据具体问题来定义,例如欧氏距离、余弦相似度等。
三、聚类算法分类目前常见的聚类算法可以分为以下几种:1. 基于原型的聚类算法:该算法通过在空间中生成原型来进行聚类,常见的代表有K-Means和高斯混合模型(GMM)。
2. 层次聚类算法:该算法基于树形结构对数据进行划分,常见代表有凝聚层次聚类和分裂层次聚类。
3. 密度聚类算法:该算法将数据空间看作是由不同密度区域组成的,通过寻找高密度区域来进行聚类,常见代表有DBSCAN和OPTICS。
4. 基于网格的聚类算法:该算法将数据空间划分为网格,并在每个网格中进行聚类,常见代表有STING和CLIQUE。
5. 模型化聚类算法:该算法利用概率模型或者其他模型对数据进行建模,然后根据模型进行聚类,常见代表有EM(期望最大化)算法和谱聚类。
四、应用实例1. 生物信息学在生物信息学领域中,聚类算法可以用于DNA序列分析、基因表达谱分析等方面。
例如,可以利用K-Means对基因表达谱数据进行分类,从而找到具有相似特征的基因集合,并研究它们与疾病之间的关系。
2. 图像处理在图像处理领域中,聚类算法可以用于图像分割、目标识别等方面。
例如,在图像分割中可以利用基于原型的K-Means算法对图像像素进行分类,从而实现自动化图像分割。
3. 社交网络分析在社交网络分析领域中,聚类算法可以用于社区发现、用户行为分析等方面。
例如,在社区发现中可以利用谱聚类对社交网络中的节点进行分类,从而找到具有相似特征的节点集合,并研究它们之间的关系。
基于聚类算法的数据挖掘技术研究

基于聚类算法的数据挖掘技术研究数据挖掘技术是一种发掘数据的方法,用于寻找数字信息中的隐含模式与关系。
聚类算法是数据挖掘中的一种常见算法,它通过分组或将数据分为几类来使数据更加易于分析。
在本文中,我们将深入研究基于聚类算法的数据挖掘技术。
一、聚类算法的定义聚类算法是一种将数据分组的方法,可以将数据分为各种类别和子集。
这是一种非监督学习技术,其中输入数据并没有被标记,因此算法需要能够自动发现输入数据之间的关系和模式。
二、聚类算法的原理聚类算法的原理是通过使用距离度量的方法来定义数据之间的距离和相似性。
在这里,相似性是指在某些方面上的共性,距离则是指两个数据之间的空间距离。
聚类算法首先通过计算数据之间的距离然后将其分组,每个组内的数据被认为是相互靠近和关联的。
如果两个数据之间的距离很大,则它们被视为不同的类别。
需要注意的是,聚类算法可以分为不同的类型,例如层次聚类和K-Means聚类。
这些算法可能有细微的差异,但它们的基本原理都是通过距离度量将数据分组。
三、聚类算法的应用聚类算法可以用于许多不同领域和应用程序。
例如,在市场营销领域中,聚类可以用于确定客户群的特征和属性,从而让营销人员更好地了解他们的客户并发展更有针对性的营销策略。
在医学领域,它可以用于识别患者的病症相似性,从而帮助医生进行更准确的诊断和治疗。
聚类算法也可以用于图像分割,通过将像素分组,从而识别出图像的不同部分。
在自然语言处理中,聚类可以用于识别文本中的不同主题和类别。
这些都是聚类算法的重要应用领域,为许多不同范围的应用提供了支持。
四、基于聚类算法的数据挖掘技术基于聚类算法的数据挖掘技术是一种将聚类算法应用于大量数据的方法,以便发现隐藏的模式和关系。
该技术可以应用于多种行业和应用程序,可以帮助人们更好地了解数据,并通过找到重要的关系和模式来做出更准确的预测。
在基于聚类算法的数据挖掘技术中,还可采用一些改进算法,例如谱聚类、DBSCAN等。
数据挖掘中的聚类算法综述

数据挖掘中的聚类算法综述
随着数据量不断增加,数据挖掘中的聚类算法变得越来越重要。
聚类是将数据集分成相似的组或簇的过程。
在本文中,我们将综述几种常见的聚类算法。
K均值聚类是一种最常见的聚类算法。
它将数据集分为k个簇,其中每个簇包含最靠近该簇的k个数据点。
该算法的主要优点是易于实现和快速的计算。
层次聚类是另一种常见的聚类算法,它将数据集分为一系列层次结构。
从最高的层次开始,每个簇都包含更小的簇,直到所有数据点都分配到一个单独的簇中。
该算法的主要优点是可以处理任意形状的簇。
DBSCAN是一种基于密度的聚类算法。
它将数据点分为核心点、
边界点和噪声点。
只有核心点可以成为簇的中心。
该算法的主要优点是可以处理任意形状的簇和噪声点。
谱聚类是一种基于图论的聚类算法。
它将数据点视为图中的节点,并使用谱分析来将它们分成簇。
该算法的主要优点是可以处理非球形簇。
总之,不同的聚类算法适用于不同的数据集和应用场景。
在选择聚类算法时,需要根据数据的特征和需求进行综合考虑。
- 1 -。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据挖掘层次聚类算法研究综述摘要聚类问题是数据挖掘中的重要问题之一,是一种非监督的学习方法。
分层聚类技术在图像处理、入侵检测和生物信息学等方面有着极为重要的应用,是数据挖掘领域的研究热点之一。
本文总结了分层聚类算法技术的研究现状,分析算法性能的主要差异,并指出其今后的发展趋势。
关键词层次聚类,数据挖掘,聚类算法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。