聚类算法研究综述
- 格式:pdf
- 大小:61.51 KB
- 文档页数:2
聚类分析方法概述及应用聚类分析是一种常用的数据分析方法,用于将相似的数据点聚集在一起,形成有意义的群组。
它可以帮助我们理解数据的内在结构和模式,揭示隐藏在数据背后的信息。
本文将对聚类分析方法进行概述,并探讨其在不同领域的应用。
一、聚类分析方法概述聚类分析方法有多种类型,其中最常用的是原型聚类、层次聚类和密度聚类。
1. 原型聚类原型聚类是一种利用原型向量(即代表一个簇的中心点)来表示和分类数据的方法。
最常见的原型聚类算法是K均值聚类,它通过迭代过程将数据分成K个簇。
2. 层次聚类层次聚类是一种基于树状结构的聚类方法,它将数据点逐步合并为越来越大的簇,直到所有数据点都合并为一个簇。
层次聚类可以分为凝聚型和分裂型两种。
3. 密度聚类密度聚类是一种基于数据点之间密度的聚类方法。
它通过计算每个数据点周围的密度,将密度较高的数据点归为一类,从而形成簇。
DBSCAN是最常用的密度聚类算法之一。
二、聚类分析的应用聚类分析方法在各个领域都有广泛的应用,以下是其中几个典型的应用示例:1. 市场细分聚类分析可帮助企业将潜在消费者细分为不同的市场群体,根据不同群体的需求进行针对性的市场推广。
例如,一家保险公司可以利用聚类分析将客户分为不同的风险类别,制定相应的保险套餐。
2. 医学研究在医学领域,聚类分析可用于帮助识别患者的疾病风险、预测疾病进展、选择最佳治疗方案等。
通过分析患者的基因数据、病历记录和临床表现等信息,医生可以将患者分为不同的疾病类型,为个体化治疗提供指导。
3. 社交网络分析社交网络中存在着庞大的用户群体和复杂的网络关系。
聚类分析可以帮助我们理解社交网络中的用户群体结构,发现潜在的兴趣群体和社区,并为个性化推荐、社交媒体营销等提供支持。
4. 图像分析聚类分析可以应用于图像分析领域,如图像压缩、图像分类等。
通过对图像中的像素点进行聚类,可以将相似的像素点合并为一个簇,从而实现图像的压缩和分类。
5. 网络安全对于网络安全领域来说,聚类分析可以帮助识别异常网络流量、发现潜在的攻击者并采取相应的安全防护措施。
聚类算法的优缺点分析
一、聚类算法的定义
聚类算法是一种数据挖掘技术,它可以根据数据的相似性将数据分成不同的组。
聚类算法常用于市场分析、生物信息学、搜索引擎优化等领域,研究聚类算法的优缺点有助于更好地理解和应用这一技术。
二、优点分析
1. 数据解释性强:聚类算法可以将数据按照相似性进行分组,这有助于对数据进行解释和理解。
2. 发现隐藏模式:聚类算法可以帮助用户发现数据中的隐藏模式和规律,为决策提供支持。
3. 无监督学习:聚类算法是一种无监督学习方法,不需要预先标记的训练数据,适用于大多数数据挖掘场景。
4. 数据预处理:聚类算法可以用于数据预处理,帮助用户减少数据维度,提高数据处理效率。
三、缺点分析
1. 需要选择合适的距离度量:聚类算法的效果与距离度量的选择有关,不同的距离度量会导致不同的聚类结果。
2. 对初始值敏感:聚类算法对初始值敏感,初始值的选择会影响最终的聚类结果,需要谨慎选择。
3. 处理噪声和异常值困难:聚类算法对噪声和异常值比较敏感,这会影响聚类结果的准确性。
4. 难以处理大规模数据:一些聚类算法在处理大规模数据时效率较低,需要耗费大量的计算资源和时间。
四、结论
聚类算法是一种强大的数据挖掘技术,它可以帮助用户发现数据中的隐藏规律和模式,对于无监督学习和数据预处理都有很好的应用前景。
然而,聚类算法也存在一些缺点,比如对初始值敏感、处理噪声和异常值困难等问题,需要在实际应用中充分考虑。
在未来的研究中,可以进一步探讨聚类算法的改进和优化,以提高其在实际应用中的效率和准确性。
基于机器学习的子空间聚类算法研究与应用随着数据量的不断增长,传统的聚类算法已经无法满足对大规模数据进行快速而准确的聚类的需求。
在这种情况下,基于机器学习的子空间聚类算法被提出,并且得到了广泛的研究与应用。
在传统的聚类算法中,数据点之间的距离是通过欧几里得空间中的距离来计算的。
然而,随着数据维度的增加,欧几里得空间中的距离会变得越来越稀疏,从而导致聚类算法的准确性下降。
基于机器学习的子空间聚类算法解决了这个问题。
子空间聚类算法基于假设,即数据点可以分布在低维子空间中。
因此,对于高维数据,子空间聚类算法会将其分解为多个低维子空间,并在各个子空间中进行聚类。
这种聚类方法在处理高维数据时表现极为出色。
它对空间的局部结构和复杂度作出了准确而合理的模型假设,从而对数据进行分析时能提高精度和有效性。
在子空间聚类算法中,首先需要确定子空间的维度。
传统的方法是通过人工指定维度值来实现,但这种方法需要经验和技巧,效果不稳定。
近年来,基于机器学习的自适应子空间聚类算法被提出,使实现过程更智能化。
自适应子空间聚类算法通过结合聚类结果和数据分布特征,自适应地确定每个子空间的维度。
这种方法能够使聚类结果更加准确、稳定和有效,同时能够避免人工决策的不确定性,提高计算效率。
除了自适应子空间聚类算法,还有一些其他的基于机器学习的子空间聚类算法,比如谱聚类、核聚类、对比传播聚类等。
这些算法都有着不同的适用范围和应用场景,但它们的基本思路都是相似的。
通过有效的降维和聚类方法,它们能够对高维数据进行准确、稳定、有效的聚类,为实际应用提供了有力的支持。
在实际应用中,子空间聚类算法已经被广泛地应用于网络安全、图像识别、音视频分析等领域。
例如,基于子空间聚类算法的网络异常流量检测系统、基于子空间聚类算法的人脸识别系统等。
这些应用展示了子空间聚类算法的巨大潜力和实际价值。
总之,基于机器学习的子空间聚类算法是一种有效的高维聚类方法。
通过自适应子空间聚类算法等技术手段,可以进一步提高算法的准确性、稳定性和效率。
k-means聚类算法研究及应用
K-means聚类算法研究及应用
一、简介
K-means聚类算法是一种非监督学习算法,它是一种广泛应用在模式分类和无监督式学习的数据挖掘技术。
它使用了基于距离的聚类算法,以相似性作为衡量子簇类别的标准,任务是将样本(属性)空间中的数据分为K个不同的类,使聚类的误差平方和最小化:通常假设样本由簇中心所处的子空间所构建,每个子空间由一个簇中心控制,因此K-means算法常常被形象地称为“均值聚类”算法。
二、原理
K-means聚类算法是一种迭代算法,它的基本思想是:首先,随机选取若干个“簇中心”,然后将其他的数据点根据其与“簇中心”的距离,归到最近的“簇中心”所代表的簇中。
然后根据新聚集的簇,重新更新这些“簇中心”;如此不断迭代,最终计算得到一组稳定的“簇中心”,这组“簇中心”所代表的簇就是最后的结果了。
三、应用
1、生物信息学:K-means聚类算法用于基因芯片和定量PCR,以及蛋白质表达数据。
2、计算机视觉:K-means用于图像分割,聚类,像素重新分配等。
3、自然语言处理:K-means用于文本聚类,文档分类,文本挖掘等方面。
4、机器学习:K-means用于各种拟合问题,比如参数估计,探索异常
值等等。
四、总结
K-means聚类算法是一种简单高效的聚类算法,它可以有效地将数据空间分割成几个簇,属于非监督学习算法,它的核心在于划分数据空间,对数据的模式分类和无监督式学习有较好的应用,如生物信息学、计
算机视觉、自然语言处理、机器学习等领域。
聚类分析算法在数据挖掘领域中的应用研究数据分析已经成为了现代社会中非常重要的一部分,它可以用来发现现象之间的联系、挖掘规律和进行预测。
而聚类分析算法则是数据分析领域中非常重要的一种算法,它可以用来对数据集进行分类,并提取出数据中的规律与模式。
在本文中,我们将探讨聚类分析算法在数据挖掘领域中的应用研究。
一、聚类分析算法的概念与类型聚类分析算法,顾名思义,是将数据集中的元素进行分类的算法。
其通过将数据集划分成不同的簇(Cluster),从而将同类数据点聚集在一起,不同类数据点分开归类。
聚类分析算法可以分为以下几种类型:1. 手动聚类:手动聚类是人工输入分类规则并按照该规则划分数据。
2. 层次聚类:层次聚类是根据距离或相似性,将数据点逐步聚合成更大的簇。
3. K-means聚类:K-Means聚类是一种基于质心的聚类算法,它将数据点分为K个簇,并将每个点分配到最近的簇中。
4. 密度聚类:密度聚类是基于密度的聚类算法,它可以识别任意形状、大小和方向的簇。
二、聚类分析算法在数据挖掘领域中的应用研究1. 数据挖掘中的聚类分析在数据挖掘领域中,聚类分析算法经常被用来对大规模数据集进行分类。
通过将数据点划分为不同的簇,可以进一步了解数据集的结构并提取出数据中的隐藏模式。
而且聚类分析算法还可以用来将不同的数据集融合为一个更大的、更全面的数据集。
这个过程可以帮助用户发现数据集中的异常点和噪音,从而更好地理解和分析数据集。
2. 聚类分析在市场分析中的应用在市场分析中,聚类分析算法可以用来帮助企业发现不同类别的用户群体。
通过将买家分为不同的群体,企业可以了解消费者的需求、购买行为和偏好,从而针对性地进行市场营销策略。
基于聚类分析的市场分析可以找到新的销售机会,加强客户忠诚度,最终帮助企业提高销售额和利润率。
3. 聚类分析在医学影像诊断中的应用聚类分析算法在医学影像领域中应用广泛。
它可以用来对患者进行分类、发现不同类型肿瘤病变,并针对性地做出诊断和治疗方案。
聚类分析算法及其应用聚类分析是一种数据挖掘技术,在统计学和机器学习领域应用广泛。
它的主要目的是将相似的数据点分组,以便可以更有效地分析和处理数据。
在本文中,我们将介绍聚类分析的基本概念、不同算法的工作方式以及它们在实际应用中的应用。
一、基本概念聚类分析涉及将数据点划分为不同的群组或簇,群组内的数据点应该彼此相似,而群组之间的数据点则不应该相似。
聚类问题有两个基本的目标:发现数据点之间的相似性和利用这些相似性来组织数据。
一个聚类算法必须满足以下三个条件:1.距离计算:算法需要计算每个数据点之间的距离。
这可以通过欧几里得距离、曼哈顿距离、余弦相似度等方法完成。
2.簇的定义:算法必须定义什么样的数据点可以被归为同一个簇。
这通常是基于距离阈值或数据点之间的相似性波动来完成的。
3.分组方法:算法需要定义如何将数据点划分为不同的簇。
这可以通过层次聚类、K均值聚类、DBSCAN 等算法完成。
二、聚类分析算法现在,我们将介绍几种常用的聚类分析算法,以及它们的工作方式和应用场景。
1. K均值聚类在K均值聚类中,算法尝试将数据点分为K个簇,每个簇由一个中心点代表。
初始时,中心点被随机分配,该算法的主要目标是将每个数据点与它们距离最近的中心点匹配。
具体来说,K平均聚类过程如下:1.随机初始化K个中心点。
2.将每个数据点分配给与其距离最近的中心点。
3.重新计算每个簇的中心点。
4.重复2和3,直到收敛或达到预定次数。
K均值聚类算法的主要优点是简单易用,适用于大规模数据集;然而,它存在以下几个缺点:确定簇数的问题,对数据集中的异常值敏感,易受初始点的影响。
2. 层次聚类层次聚类是一种聚类算法,在这种算法中,簇是树形有序的结构,直到簇中包含单个数据点为止。
层次聚类可分为两种不同的类型:凝聚层次聚类和分裂层次聚类,它们的主要区别在于簇如何被组合或分离。
例如,对于凝聚层次聚类,可以将数据点视为单个簇,并重复以下过程,直到只剩下一个簇:1.找到相邻距离最短的两个簇。
8 聚类分析: 基本概念和算法一、聚类分析概述1)什么是聚类分析聚类分析仅根据在数据中发现的描述对象及其关系的信息,将数据对象分组。
其目标是,组内的对象之间是相似的(相关的),而不同的组中的对象是不同的(不相关的)。
组内的相似性(同质性)越大,组间差别越大,聚类就越好。
聚类分析的应用2)不同的簇类型簇(cluster)的定义是不精确的不同的簇类型3)聚类算法的分类大体上,主要的聚类算法可以划分为如下几类:划分方法、层次方法、基于密度的方法、基于网格的方法1–划分方法▪给定一个有n个元组或者记录的数据集,划分方法将构造k个分组,每一个分组就代表一个聚类,k<n。
而且这k分组满足下列条件:1)每一个分组至少包含一个数据记录;2)每一个数据记录隶属于且仅属于一个分组;▪对于给定的k,算法首先给出一个初始的分组方法,以后通过反复迭代的方法改变分组,使得每一次改进之后分组方案都较前一次好,所谓的“好”的标准就是同一分组的记录越相似越好,而不同分组中的记录则越相异越好。
▪最著名与最常用的划分方法是 k-均值方法和 k-中心点方法。
2–基于层次的方法▪一个层次的聚类方法是将数据对象组成一棵聚类的树。
根据层次分解是自底向上还是自顶向下形成,层次的聚类方法可以进一步分为聚合式层次聚类(agglomerative)和分裂式层次聚类(divisive)。
▪聚合式的层次聚类,其层次过程的方向是自底向上的。
将样本集合中的每个对象作为一个初始簇,然后将最近的两个簇合并,组成新的簇,再将这个新簇与剩余的簇中最近的合并,这种合并过程需要反复进行,直到所有的对象最终被聚到一个簇中。
▪分裂式的层次聚类,其层次过程的方向是自顶向下的,最初先将有关对象放到一个簇中,然后将这个簇分裂,分裂的原则是使两个子簇之间的聚类尽可能的远,分裂的过程也反复进行,直到某个终止条件被满足时结束。
不论是合并还是分解的过程,都会产生树状结构,树的叶子节点对应各个独立的对象,顶点对应一个包含了所有对象的簇。
谱聚类综述论文谱聚类综述论文1. 引言聚类分析是数据分析中最常用的方法之一。
所谓聚类,就是将数据点划分为若干个类或簇,使得同一类中的数据点之间具有较高的相似度,而不同类中的数据点之间具有较高的相异度。
传统的聚类算法,如K-means算法、EM算法等都是建立在凸球形的样本空间上,当样本空间非凸时,算法易陷入局部最优。
为了能在任意形状的样本空间上聚类,且收敛于全局最优,一类新型的聚类算法——谱聚类被提出。
谱聚类根据样本间的相似关系建立矩阵,通过计算特征向量找出数据样本间的内在联系。
与传统的聚类算法相比,谱聚类算法具有诸多优点:(1)直接通过求解拉普拉斯矩阵的特征向量进行划分,不含有凸球形数据分布的隐性假设,从而能够识别非凸类型的簇;(2)用现有的线性代数软件可以直接求解拉普拉斯矩阵的特征向量,实现简单;(3)谱聚类仅与数据点的数目有关,而与维数无关,因而可以避免由高维特征向量造成的奇异性问题;(4)诸多数据集上的对比实验表明,谱聚类的性能优于一般的聚类算法;(5)可用于大规模数据集。
基于上述优点,谱聚类被广泛应用于计算机视觉[1]、语音识别[2]、VLSI设计[3]、文本挖掘[4]等领域。
近年来,谱聚类作为一种非常有前途的聚类算法,吸引了众多学者对其进行研究、改进,出现了许多成功的谱聚类的改进算法。
本文作为一篇综述性的文章,旨在对现有的谱聚类改进算法分类进行详细介绍,使读者能够更加系统、全面地了解该领域的研究现状,促进该领域的发展。
本文首先从图分割的角度介绍了谱聚类的基本原理和经典算法,然后重点分类介绍了谱聚类的改进算法,最后进行归纳总结,提出未来的几个研究向。
2. 谱聚类的基本原理和算法2.1 聚类与图划分问题对于给定的n个d维的数据点x , x , , xn 1 2 L ,聚类的目标是将这n个点分成k个簇,使得同一簇中的数据点比较相似,不同簇中的数据点比较相异。
假设将数据点i x 看作图中的一个顶点i v ,将两点之间的相似度作为边的权重ij W ,这样就得到一个基于相似度的无向图G = (V , E),其中V是顶点的集合,E是边的集合。
电脑知识与技术本栏目责任编辑:闻翔军数据库及信息管理1引言数据挖掘是指从从大量无序的数据中提取隐含的、有效的、可理解的、对决策有潜在价值的知识和规则,为用户提供问题求解层次的决策支持能力。数据挖掘主要的算法有分类模式、关联规则、
决策树、序列模式、聚类模式分析、神经网络算法等等。聚类算法是一种有效的非监督机器学习算法,是数据挖掘中的一个非常重要
的研究课题。当人们使用数据挖掘工具对数据中的模型和关系进行辨识的时候,通常第一个步骤就是聚类,其目的就是将集中的数
据人为地划分成若干类,使簇内相似度尽可能大、簇间相似度尽可
能小,以揭示这些数据分布的真实情况。但任何聚类算法都对数据集本身有一定的预先假设,根据文献[1]的理论,如果数据集本身的
分布并不符合预先的假设,则算法的结果将毫无意义。因此,面对特定的应用问题,如何选择合适的聚类算法是聚类分析研究中的一个重要课题。本文比较了数据挖掘中现有聚类算法的性能,分析
了它们各自的优缺点,并指出了其今后的发展趋势。
2聚类算法分类研究
聚类的目的是把大量数据点的集合分成若干类,使得每个类中的数据之间最大程度地相似,而不同类中的数据最大程度地不同。通常聚类算法可以分为层次聚类、分割聚类、密度型聚类、网格型聚类和其他聚类等几种。
2.1层次聚类层次聚类算法通过将数据组织成若干组并形成一个相应的树状图来进行聚类,它又可以分为两类,即自底向上的聚合层次
聚类和自顶向下的分裂层次聚类。聚结型算法采用自底向上的策略,首先把每个对象单独作为一个聚类,然后根据一定的规则合并成为越来越大的聚类,直到最后所有的对象都归入到一个聚类
中。大多数层次聚类算法都属于聚结型算法,它们之间的区别在于类间相似度的定义不同。与聚结型算法相反,分裂型算法采用自顶向下的方法,它先将所有的对象都看成一个聚类,然后将其
不断分解直至每个对象都独自归入一个聚类。一般情况下不使用分裂型方法,因为在较高的层次很难进行正确的拆分。纯粹的层次聚类算法的缺点在于一旦进行合并或分裂之后,就无法再进行
调整。现在的一些研究侧重于层次聚类算法与循环的重新分配方法的结合。
主要的层次聚类算法有BIRCH,CURE,ROCK
,
CHAMELEON,AMOEBA,COBWEB,ClusteringwithRandomWalks算法等。CURE算法[2]不用单个中心或对象来代表一个聚类,而是选择数据空间中固定数目的、具有代表性的一些点共同
来代表相应的类,这样就可以识别具有复杂形状和不同大小的聚类,从而能很好地过滤孤立点。ROCK算法[3]是对CURE的改进,
除了具有CURE算法的一些优良特性之外,它还适用于类别属性的数据。CHAMELEON算法[4]是Karypis等人于1999年提出来的,它在聚合聚类的过程中利用了动态建模的技术。
2.2分割聚类分割聚类算法是另外一种重要的聚类方法。它先将数据点集分为k个划分,每个划分作为一个聚类,然后从这k个初始划分
开始,通过重复的控制策略,使某个准则最优化,而每个聚类由其质心来代表(k-means算法)
,
或者由该聚类中最靠近中心的一
个对象来代表(k-medoids算法),以达到最终的结果。分割聚类算法收敛速度快,缺点在于它倾向于识别凸形分布大小相近、密度相近的聚类,不能发现分布形状比较复杂的聚类,它要求类别数目k可以合理地估计,并且初始中心的选择和噪声会对聚类结
果产生很大影响。这类方法又可分为基于密度的聚类、基于网格的聚类等。
很多算法中都使用距离来描述数据之间的相似性,但是,对
于非凸数据集,只用距离来描述是不够的。对于这种情况,要用密度来取代相似性,这就是基于密度的聚类算法。基于密度的算法从数据对象的分布密度出发,把密度足够大的区域连接起来,从而可以发现任意形状的类。此类算法除了可以发现任意形状的类,还能够有效去除噪声。
基于网格的聚类算法,把空间量化为有限个单元(即长方体或超长方体),然后对量化后的空间进行聚类。此类算法具有很快的处理速度。缺点是只能发现边界是水平或垂直的聚类,而不能
检测到斜边界。此类算法具有很快的处理速度。时间复杂度一般由网格单元的数目决定,而与数据集的大小无关。此外,聚类的精度取决于网格单元的大小。此类算法不适用于高维情况,因为网
格单元的数目随着维数的增加而呈指数增长。所有基于网格的聚类算法都存在下列问题:一是如何选择合适的单元大小和数目;
二是怎样对每个单元中对象的信息进行汇总。
主要的分割聚类算法有k-means,EM,k-medoids
,
收稿日期:2007-06-10
作者简介:项冰冰(1980-),女,安徽合肥人,安徽大学助教,工学学士,研究方向:数据挖掘,人工智能;钱光超(1982-),男,安徽安徽无为人,
安徽大学计算机科学与技术学院05级研究生,工学学士。
聚类算法研究综述项冰冰1,钱光超2
(1.安徽大学数学与计算科学学院安徽合肥23039;2.安徽大学计算机科学与技术学院安徽合肥230039)
摘要:聚类是数据挖掘中用来发现数据分布和隐含模式的一项重要技术。阐述了聚类算法基本原理,总结了聚类算法的研究现状,按照聚类算法的分类,分析比较了几种典型聚类的性能差异和各自存在的优点及问题,并结合应用需求指出了其今后的发展趋势。
关键词:数据挖掘;聚类分析;聚类算法中图分类号:TP301.6文献标识码:A文章编号:1009-3044(2007)12-21500-02
TheResearchofClusteringAlgorithmsXIANGBing-bing1,QIANGuang-chao2
(1.SchoolofMathematicsandComputationalScience,AnhuiUniversity,Hefei,AnhuiProvince230039,China;2.SchoolofComputerScienceandTechnology,AnhuiUniversity,Hefei,AnhuiProvince230039,China)Abstract:Clusteringisanimportanttechniqueindatamining.It’susedtodiscoverthedatadistributionandconcealedpatterns.Thepaper
elucidatethebasicprincipleoftheclusteringalgorithmsandsumupthecontemporaryresearchoftheclusteringalgorithms.Italsoanalyzeafewrepresentativeclusteringalgorithmsandcomparetheirdifferences,advantagesanddisadvantages.Atlast,thepaperindicatethedevelopmenttrendofclusteringintegratingtheapplicationdemand.Keyword:Datamining;ClusteringAnalysis;ClusteringAlgorithms
1500本栏目责任编辑:闻翔军数据库及信息管理CLARA,CLARANS等。常见的k-medoids算法有PAM算法、
CLARA算法、CLARANS算法。
2.3其他聚类主要有:基于约束的聚类算法、机器学习中的聚类算法、用于高维数据的聚类算法等。基于约束的聚类算法,其约束可以是对个体对象的约束,也可以是对聚类参数的约束,它们均来自相关领域的经验知识。该方法的一个重要应用在于对存在障碍数据的二维空间数据进行聚类。COD(ClusteringwithObstructedDistance)[5]就是处理这类问题的典型算法,其主要思想是用两点之间的障碍距离取代了一般的欧氏距离来计算其间的最小距离。机器学习中的聚类算法是指与机器学习相关、采用了某些机器学习理论的聚类方法,它主要包括人工神经网络方法以及基于进化理论的方法。如自组织特征映射(SOM)网络是利用人工神经网络进行聚类的较早尝试,它也是向量量化方法的典型代表之一。在基于进化理论的聚类方法中,模拟退火的应用较为广泛,SNICC算法[6]就是其中之一。遗传算法也可以用于聚类处理,它主要通过选择、交叉和变异这三种遗传算子的运算以不断优化可选方案从而得到最终的聚类结果。高维数据聚类是目前多媒体数据挖掘领域面临的重大挑战之一,除了降维这一最直接的方法之外,对高维数据的聚类处理还包括子空间聚类以及联合聚类技术等。子空间聚类算法,认为在高维数据集中,聚类往往不是存在于整个空间中,而是存在于某些子空间中。它们针对高维空间数据,寻找子空间中的聚类。主要子空间聚类算法有CLIQUE,PROCLUS等。3典型聚类算法性能比较3.1CLARANS算法CLARANS通过利用多次不同抽样改进了CLARA算法,是一种k-中心点聚类方法。它首先随机选择一个点作为当前点,然后随机检查它周围不超过参数Maxeighbar个的一些邻接点。假如找到一个比它更好的邻接点,则把它移入该邻接点,否则把该点作为局部最小量。然后再随机选择一个点来寻找另一个局部最小量,直至所找到的局部最小量数目达到用户要求为止。该算法要求聚类的对象必须预先调入内存,并且需多次扫描数据集,其时空复杂度都相当大,虽通过引入R*—树结构对其性能进行改善,但构造和维护代价太大。该算法对脏数据和异常数据不敏感,但对数据输入顺序异常敏感,且只能处理凸形或球形边界聚类,效率较高。3.2BIRCH算法BIRCH是一个综合性的层次聚类方法,它利用层次方法的平衡迭代进行归约和聚类。其核心是用一个聚类特征三元组表示一个簇的有关信息,从而使一簇点的表示可用对应的聚类特征。它通过构造满足分支因子和簇直径限制的聚类特征树来求聚类。该算法通过聚类特征可以方便地进行中心、半径、直径及类内、类间距离的运算。算法具有对象数目的线性易伸缩性,及良好的聚类质量。一次扫描就可以进行较好的聚类,其计算复杂度为O(n)。BIRCH算法只适用于类的分布呈凸形及球形的情况,对不可视的高维数据则是不可行的。3.3DBSCAN算法DBSCAN是基于密度的聚类算法,可以将足够高密度的区域划分为簇,并可以在带有“噪声”的空间数据库中发现任意形状的聚类。该算法利用类的密度连通性可以快速发现任意形状的类。其基本思想是:对于一个类中的每个对象,在其给定半径的领域中包含的对象不能少于某一给定的最小数目。DBSCAN算法不进行任何的预处理而直接对整个数据集进行聚类操作。当数据量非常大时,就必须有大量内存支持,I/O消耗也非常大。其时间复杂度为O(nlogn)