聚类比较

合集下载

各种聚类算法的比较

各种聚类算法的比较

各种聚类算法的比较聚类算法是一种将数据按照相似性分组的无监督学习方法。

在数据分析和机器学习中,聚类算法被广泛应用于数据挖掘、模式识别、图像处理等领域。

本文将介绍几种常见的聚类算法,并对它们进行比较。

1. K-means算法K-means算法是最常见的聚类算法之一,它将数据划分为K个集群,每个集群包含最接近其均值的数据点。

该算法迭代地更新集群的均值,直到满足收敛条件。

K-means算法简单、高效,适用于大型数据集。

然而,它对异常值和噪声敏感,并且对初始聚类中心的选择非常敏感。

2.层次聚类算法层次聚类算法是一种自底向上或自顶向下的聚类方法,它通过计算数据点之间的相似性构建一个聚类层次结构。

这种层次结构可以以树状图的形式表示,称为树状图聚类。

层次聚类算法的优点是不需要指定聚类个数,且能够处理任意形状的聚类。

然而,该算法的计算复杂度较高,并且对输入数据的规模和噪声敏感。

3.密度聚类算法密度聚类算法通过计算数据点周围的密度来确定聚类结构。

DBSCAN是最常见的密度聚类算法之一,它通过指定半径和邻域密度来定义聚类。

DBSCAN能够识别任意形状的聚类,并且对噪声和异常值具有较高的鲁棒性。

然而,密度聚类算法对参数的选择非常敏感,并且对高维数据和不同密度的聚类效果较差。

4.基于概率的聚类算法基于概率的聚类算法假设数据服从其中一种概率分布,并通过最大化似然函数来进行聚类。

GMM (Gaussian Mixture Model) 是一种常见的基于概率的聚类算法,它假设数据由多个高斯分布组成。

GMM算法能够分离具有不同协方差的聚类,适用于高维数据和非球状的聚类。

然而,该算法对初始参数的选择敏感,并且计算复杂度较高。

5.划分聚类算法划分聚类算法将数据划分为互斥的聚类,然后通过迭代地重新分配数据点来优化聚类质量。

PAM (Partitioning Around Medoids) 和CLARA (Clustering Large Applications)是常见的划分聚类算法。

主成分分析、聚类分析比较教学提纲

主成分分析、聚类分析比较教学提纲

主成分分析、聚类分析比较主成分分析、聚类分析的比较与应用主成分分析、聚类分析的比较与应用摘要:主成分分析、聚类分析是两种比较有价值的多元统计方法,但同时也是在使用过程中容易误用或混淆的几种方法。

本文从基本思想、数据的标准化、应用上的优缺点等方面,详细地探讨了两者的异同,并且举例说明了两者在实际问题中的应用。

关键词:spss、主成分分析、聚类分析一、基本概念主成分分析就是设法将原来众多具有一定相关性(比如P个指标),重新组合成一组新的互相无关的综合指标来代替原来的指标。

综合指标即为主成分。

所得出的少数几个主成分,要尽可能多地保留原始变量的信息,且彼此不相关。

因子分析是研究如何以最少的信息丢失,将众多原始变量浓缩成少数几个因子变量,以及如何使因子变量具有较强的可解释性的一种多元统计分析方法。

聚类分析是依据实验数据本身所具有的定性或定量的特征来对大量的数据进行分组归类以了解数据集的内在结构,并且对每一个数据集进行描述的过程。

其主要依据是聚到同一个数据集中的样本应该彼此相似,而属于不同组的样本应该足够不相似。

二、基本思想的异同(一)共同点主成分分析法和因子分析法都是用少数的几个变量(因子) 来综合反映原始变量(因子) 的主要信息,变量虽然较原始变量少,但所包含的信息量却占原始信息的85 %以上,所以即使用少数的几个新变量,可信度也很高,也可以有效地解释问题。

并且新的变量彼此间互不相关,消除了多重共线性。

这两种分析法得出的新变量,并不是原始变量筛选后剩余的变量。

在主成分分析中,最终确定的新变量是原始变量的线性组合,如原始变量为x1 ,x2 ,. . . ,x3 ,经过坐标变换,将原有的p个相关变量xi 作线性变换,每个主成分都是由原有p 个变量线性组合得到。

在诸多主成分Zi中,Z1 在方差中占的比重最大,说明它综合原有变量的能力最强,越往后主成分在方差中的比重也小,综合原信息的能力越弱。

因子分析是要利用少数几个公共因子去解释较多个要观测变量中存在的复杂关系,它不是对原始变量的重新组合,而是对原始变量进行分解,分解为公共因子与特殊因子两部分。

算法学习中的分类和聚类算法比较

算法学习中的分类和聚类算法比较

算法学习中的分类和聚类算法比较在算法学习的过程中,分类和聚类算法是两个重要的概念。

它们在数据分析和机器学习中扮演着不可或缺的角色。

分类算法和聚类算法虽然都是用来对数据进行分组,但它们的目标和方法却有所不同。

本文将对分类和聚类算法进行比较,探讨它们的应用场景和优缺点。

一、分类算法分类算法是一种监督学习方法,它通过已知的标记样本来训练模型,然后利用该模型对未知数据进行分类。

常见的分类算法包括决策树、朴素贝叶斯、支持向量机等。

1. 决策树决策树是一种基于树结构的分类算法,它通过对数据进行递归分割,构建一个树形模型来进行分类。

决策树算法简单易懂,可解释性强,适用于处理离散型和连续型数据。

然而,决策树容易过拟合,对噪声数据敏感。

2. 朴素贝叶斯朴素贝叶斯是一种基于贝叶斯定理的分类算法,它假设特征之间相互独立,通过计算后验概率来进行分类。

朴素贝叶斯算法计算简单,适用于处理大规模数据集。

但是,朴素贝叶斯算法对特征之间的相关性要求较高,且无法处理连续型数据。

3. 支持向量机支持向量机是一种基于统计学习理论的分类算法,它通过找到一个最优超平面来将数据分为不同的类别。

支持向量机算法具有较好的泛化能力和鲁棒性,适用于处理高维数据。

然而,支持向量机算法对大规模数据集的训练时间较长。

二、聚类算法聚类算法是一种无监督学习方法,它通过对数据进行自动聚类,将相似的数据归为一类。

常见的聚类算法包括K均值聚类、层次聚类、DBSCAN等。

1. K均值聚类K均值聚类是一种基于距离的聚类算法,它将数据分为K个簇,每个簇的中心点为该簇内数据的均值。

K均值聚类算法简单快速,适用于处理大规模数据集。

但是,K均值聚类算法对初始聚类中心的选择敏感,且对离群点较为敏感。

2. 层次聚类层次聚类是一种基于树结构的聚类算法,它通过计算数据点之间的相似度来构建一个层次化的聚类结果。

层次聚类算法不需要预先指定聚类个数,且对噪声和离群点具有较好的鲁棒性。

然而,层次聚类算法在处理大规模数据时计算复杂度较高。

聚类算法:谱聚类和层次聚类的比较

聚类算法:谱聚类和层次聚类的比较

聚类算法:谱聚类和层次聚类的比较聚类是数据挖掘中一种重要的无监督学习方法,其目的是将相似的数据对象分组,形成簇(cluster),并且簇与簇之间差异较大。

聚类算法可以分为分层聚类方法和非分层聚类方法。

其中,谱聚类和层次聚类是两种常见的聚类算法方法,本文将对这两种方法进行比较分析。

1.谱聚类谱聚类是一种基于图论和矩阵分析的聚类方法。

该方法将数据集转化为一个图(Graph),然后通过计算该图对应的拉普拉斯矩阵的特征向量将数据分成不同的类别。

谱聚类算法具有以下三个主要步骤:(1)构建邻接矩阵。

通常情况下,可以使用高斯核函数来计算数据点之间的相似度,并将相似度高于某个阈值的数据点之间的权值赋值为1,否则赋值为0。

(2)计算拉普拉斯矩阵。

对于邻接矩阵A(即关联矩阵),可以构建度矩阵D及其逆矩阵D^(-1),则拉普拉斯矩阵L=D-A。

根据拉普拉斯矩阵的特征值和特征向量,可以得到数据集的降维表示。

(3)对特征向量进行聚类。

根据求得的特征向量,可以使用KMeans等聚类算法来将数据集进行划分。

谱聚类算法的优点是它可以处理非线性的数据结构,并且可以保留数据的全局结构。

另外,在谱聚类中,可以自定义相似性函数,这增加了算法的灵活性。

2.层次聚类层次聚类是一种树状的聚类方法,应用广泛。

层次聚类分为两种子类型:聚合(自下而上)和分裂(自上而下)。

在聚合过程中,每个数据点开始时被视为一个单独的组,然后逐步合并为一个大的组。

在分裂过程中,则是将整个数据集视为一个大组,然后将其逐步分裂为较小的组。

层次聚类算法的基本步骤如下:(1)计算两个最相似(或距离度量最小)群体之间的距离。

(2)合并这两个最相似的群体为一个新的群体。

(3)重复步骤1、2,直到所有样本都被分配到同一个簇中。

与谱聚类相比,层次聚类的优点在于其聚类结果易于直观理解并且不需要设置参数。

另外,它可以用于任何样本之间的相似性度量。

3.比较分析谱聚类和层次聚类算法在处理聚类问题时有不同的优缺点。

聚类算法:K-Means和DBSCAN的比较

聚类算法:K-Means和DBSCAN的比较

聚类算法:K-Means和DBSCAN的比较聚类是一种无监督学习的方法,它将数据分组成具有相似特征的集合,称为簇(cluster)。

簇分析是统计学、计算机科学、机器学习和数据挖掘等领域中的常用技术之一。

目前,聚类算法已广泛应用于用户行为分析、市场营销、图像处理、生物信息学、搜索引擎、社交网络等领域。

在聚类算法中,K-Means和DBSCAN是两种具有代表性的算法。

本文将从算法原理、优缺点、适用场景等方面对它们进行比较分析。

一、K-Means算法K-Means算法是一种基于距离的聚类算法。

它的基本思想是从数据集中选取k个初始聚类中心,不断迭代,把每个数据点归为距离最近的聚类中心所在的簇。

K-Means算法的优点是计算简单、速度快、可并行计算,适用于处理大规模数据集。

但是K-Means算法的聚类结果受初始聚类中心的影响较大,算法的性能对于簇的形状、大小和分布较为敏感。

算法流程:1.选择k个聚类中心2.对于每个数据点,计算距离最近的聚类中心,将其划分到相应的簇中3.对于每个簇,重新计算该簇的聚类中心4.重复步骤2和步骤3,直到聚类中心不再变化或达到最大迭代次数二、DBSCAN算法DBSCAN算法是一种基于密度的聚类算法。

它的基本思想是将密度高于某一阈值的数据点定义为核心点(Core Points),将与核心点距离不超过一定距离的数据点归为同一个簇(Cluster),将距离较远的数据点称为噪声点(Noise)。

DBSCAN算法的优点是可以自动识别任意形状的簇,对初始聚类中心不敏感,适用于处理稠密数据集。

但是DBSCAN算法的聚类结果对于数据点密度分布的敏感度较高,平均时间复杂度较高。

算法流程:1.对于每个数据点,计算其邻域(Neighborhood)内的数据点个数,如果邻域内的数据点个数大于等于密度阈值,则该点为核心点,否则该点为噪声点2.将所有核心点加入到一个簇中,对每个核心点进行扩展,将邻域内的数据点加入到该簇中,直到不能再扩展3.继续处理下一个未被归类的核心点,直到所有核心点都在某个簇中或被标记为噪声点三、K-Means和DBSCAN的比较1.聚类精度K-Means算法适用于簇形状较为规则且大小相似的数据集,但对于不规则形状、大小差异较大的数据集,其聚类效果并不理想。

主成分分析,聚类分析比较

主成分分析,聚类分析比较

主成分分析、聚类分析的比较与应用主成分分析、聚类分析的比较与应用摘要:主成分分析、聚类分析是两种比较有价值的多元统计方法,但同时也是在使用过程中容易误用或混淆的几种方法。

本文从基本思想、数据的标准化、应用上的优缺点等方面,详细地探讨了两者的异同,并且举例说明了两者在实际问题中的应用。

关键词:spss、主成分分析、聚类分析一、基本概念主成分分析就是设法将原来众多具有一定相关性(比如P个指标),重新组合成一组新的互相无关的综合指标来代替原来的指标。

综合指标即为主成分。

所得出的少数几个主成分,要尽可能多地保留原始变量的信息,且彼此不相关。

因子分析是研究如何以最少的信息丢失,将众多原始变量浓缩成少数几个因子变量,以及如何使因子变量具有较强的可解释性的一种多元统计分析方法。

聚类分析是依据实验数据本身所具有的定性或定量的特征来对大量的数据进行分组归类以了解数据集的内在结构,并且对每一个数据集进行描述的过程。

其主要依据是聚到同一个数据集中的样本应该彼此相似,而属于不同组的样本应该足够不相似。

二、基本思想的异同(一)共同点主成分分析法和因子分析法都是用少数的几个变量(因子) 来综合反映原始变量(因子) 的主要信息,变量虽然较原始变量少,但所包含的信息量却占原始信息的85 %以上,所以即使用少数的几个新变量,可信度也很高,也可以有效地解释问题。

并且新的变量彼此间互不相关,消除了多重共线性。

这两种分析法得出的新变量,并不是原始变量筛选后剩余的变量。

在主成分分析中,最终确定的新变量是原始变量的线性组合,如原始变量为x1 ,x2 ,. . . ,x3 ,经过坐标变换,将原有的p个相关变量xi 作线性变换,每个主成分都是由原有p 个变量线性组合得到。

在诸多主成分Zi中,Z1 在方差中占的比重最大,说明它综合原有变量的能力最强,越往后主成分在方差中的比重也小,综合原信息的能力越弱。

因子分析是要利用少数几个公共因子去解释较多个要观测变量中存在的复杂关系,它不是对原始变量的重新组合,而是对原始变量进行分解,分解为公共因子与特殊因子两部分。

各种聚类算法的比较

各种聚类算法的比较

各种聚类算法的比较聚类算法是一种无监督学习方法,用于将样本划分为具有相似特征的不同组别。

在机器学习和数据挖掘中被广泛应用。

有许多不同的聚类算法可供选择,每个算法有其独特的优点和适用范围。

在本文中,我们将比较几种常用的聚类算法,以帮助选择最适合特定问题和数据集的算法。

1.K均值聚类算法:K均值算法是一种经典的聚类算法。

它将数据点分为K个不同的簇,使得同一簇内的数据点之间的距离尽可能小,不同簇之间的距离尽可能大。

该算法计算复杂度较低,适用于大数据集。

然而,该算法对初始聚类中心的选择非常敏感,并且只能处理数值型数据。

2.层次聚类算法:层次聚类算法通过计算数据点之间的相似性将它们逐步聚类成树状结构。

该算法不需要事先指定聚类个数,并且可以处理各种数据类型。

然而,该算法在处理大数据集时计算复杂度较高,并且结果的质量受到相似性度量的影响。

3.密度聚类算法:密度聚类算法使用数据点密度来识别簇。

该算法可以处理不规则形状的簇,并且对初始聚类中心的选择不敏感。

DBSCAN是一种常用的密度聚类算法。

然而,该算法对密度参数的选择敏感,并且在处理高维数据时效果可能不好。

4.基于模型的聚类算法:基于模型的聚类算法将数据点建模为一些概率分布的样本。

该算法可以处理不同形状和大小的簇,并且能够进行概率推断。

高斯混合模型(GMM)是一种常用的基于模型的聚类算法。

然而,该算法对模型的选择和参数估计比较困难。

5.谱聚类算法:谱聚类算法通过矩阵分解来对数据进行聚类。

该算法可以处理非线性可分的数据,并且不需要事先指定聚类个数。

然而,该算法在处理大数据集时计算开销较大,并且对相似度矩阵的构建方法敏感。

以上只是一些常见的聚类算法,实际上还有许多其他聚类算法可供选择,如affinity propagation、BIRCH、OPTICS等。

每种算法都有其独特的特点和适用范围。

在选择聚类算法时,需要考虑数据集的规模、维度、特征类型以及问题的特殊需求等因素。

时间序列聚类方法比较研究

时间序列聚类方法比较研究

时间序列聚类方法比较研究时间序列聚类是一种将时间序列数据进行分类的方法,通过将相似的时间序列归为一类,可以帮助我们更好地理解和分析数据。

在时间序列聚类领域,存在着多种不同的方法,每种方法都有其独特的特点和适用场景。

本文将对几种常见的时间序列聚类方法进行比较研究。

一、K-Means聚类方法K-Means是最常见且简单的聚类方法之一,它通过计算样本点之间的欧氏距离来度量相似性,并将距离较近的样本点划分到同一类别中。

在时间序列聚类中,K-Means可以通过将时间序列转化为欧氏距离或相关系数来度量相似性。

K-Means算法的优点是计算简单、易于实现,并且在处理大规模数据集时具有较高的效率。

然而,K-Means算法对初始类中心的选择较为敏感,容易收敛到局部最优解,且对异常值较为敏感。

二、基于聚类中心的方法与K-Means类似,基于聚类中心的方法也是通过计算样本点之间的距离来度量相似性。

不同的是,在基于聚类中心的方法中,聚类中心的选择不再是随机的,而是采用一种特定的策略。

例如,采用K-Medoids算法时,聚类中心被选取为样本点中具有代表性的点。

K-Medoids算法将相似性定义为两个时间序列之间的曼哈顿距离,并通过交换聚类中心和非中心样本点之间的距离来进行优化。

基于聚类中心的方法在处理大规模数据集时相对于K-Means具有一定的优势,但是也面临着计算复杂度较高的问题。

三、层次聚类方法层次聚类方法将样本点逐步合并,形成一个层次结构,最终形成聚类结果。

在时间序列聚类中,使用层次聚类方法的一个常见策略是自底向上的凝聚型层次聚类。

凝聚型层次聚类首先将每个时间序列作为一个初始类别,然后逐步合并具有较高相似性的类别,直到达到预定的停止条件。

层次聚类方法的优点是不需要提前确定聚类个数,可以自动确定最优聚类个数,并且能够展现聚类结果的层次结构。

然而,层次聚类方法也存在着较高的计算复杂度和较低的可扩展性。

四、密度聚类方法与基于距离的方法不同,密度聚类方法根据样本点的密度来度量相似性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

聚类的目标是使同一类对象的相似度尽可能地大;不同类对象之间的相似度尽可能地小。

目前聚类的方法很多,根据基本思想的不同,大致可以将聚类算法分为五大类:层次聚类算法、分割聚类算法、基于约束的聚类算法、机器学习中的聚类算法和用于高维度的聚类算法。

摘自数据挖掘中的聚类分析研究综述这篇论文。

1、层次聚类算法1.1聚合聚类1.1.1相似度依据距离不同:Single-Link:最近距离、Complete-Link:最远距离、Average-Link:平均距离1.1.2最具代表性算法1)CURE算法特点:固定数目有代表性的点共同代表类优点:识别形状复杂,大小不一的聚类,过滤孤立点2)ROCK算法特点:对CURE算法的改进优点:同上,并适用于类别属性的数据3)CHAMELEON算法特点:利用了动态建模技术1.2分解聚类1.3优缺点优点:适用于任意形状和任意属性的数据集;灵活控制不同层次的聚类粒度,强聚类能力缺点:大大延长了算法的执行时间,不能回溯处理2、分割聚类算法2.1基于密度的聚类2.1.1特点将密度足够大的相邻区域连接,能有效处理异常数据,主要用于对空间数据的聚类2.1.2典型算法1)DBSCAN:不断生长足够高密度的区域2)DENCLUE:根据数据点在属性空间中的密度进行聚类,密度和网格与处理的结合3)OPTICS、DBCLASD、CURD:均针对数据在空间中呈现的不同密度分不对DBSCAN作了改进2.2基于网格的聚类2.2.1特点利用属性空间的多维网格数据结构,将空间划分为有限数目的单元以构成网格结构;1)优点:处理时间与数据对象的数目无关,与数据的输入顺序无关,可以处理任意类型的数据2)缺点:处理时间与每维空间所划分的单元数相关,一定程度上降低了聚类的质量和准确性2.2.2典型算法1)STING:基于网格多分辨率,将空间划分为方形单元,对应不同分辨率2)STING+:改进STING,用于处理动态进化的空间数据3)CLIQUE:结合网格和密度聚类的思想,能处理大规模高维度数据4)WaveCluster:以信号处理思想为基础2.3基于图论的聚类2.3.1特点转换为组合优化问题,并利用图论和相关启发式算法来解决,构造数据集的最小生成数,再逐步删除最长边1)优点:不需要进行相似度的计算2.3.2两个主要的应用形式1)基于超图的划分2)基于光谱的图划分2.4基于平方误差的迭代重分配聚类2.4.1思想逐步对聚类结果进行优化、不断将目标数据集向各个聚类中心进行重新分配以获最优解2.4.2具体算法1)概率聚类算法期望最大化、能够处理异构数据、能够处理具有复杂结构的记录、能够连续处理成批的数据、具有在线处理能力、产生的聚类结果易于解释2)最近邻聚类算法——共享最近邻算法SNN特点:结合基于密度方法和ROCK思想,保留K最近邻简化相似矩阵和个数不足:时间复杂度提高到了O(N^2)3)K-Medioids算法特点:用类中的某个点来代表该聚类优点:能处理任意类型的属性;对异常数据不敏感4)K-Means算法1》特点:聚类中心用各类别中所有数据的平均值表示2》原始K-Means算法的缺陷:结果好坏依赖于对初始聚类中心的选择、容易陷入局部最优解、对K值的选择没有准则可依循、对异常数据较为敏感、只能处理数值属性的数据、聚类结构可能不平衡3》K-Means的变体Bradley和Fayyad等:降低对中心的依赖,能适用于大规模数据集Dhillon等:调整迭代过程中重新计算中心方法,提高性能Zhang等:权值软分配调整迭代优化过程Sarafis:将遗传算法应用于目标函数构建中Berkh in等:应用扩展到了分布式聚类还有:采用图论的划分思想,平衡聚类结果,将原始算法中的目标函数对应于一个各向同性的高斯混合模型5)优缺点优点:应用最为广泛;收敛速度快;能扩展以用于大规模的数据集缺点:倾向于识别凸形分布、大小相近、密度相近的聚类;中心选择和噪声聚类对结果影响大3、基于约束的聚类算法3.1约束对个体对象的约束、对聚类参数的约束;均来自相关领域的经验知识3.2重要应用对存在障碍数据的二维空间按数据进行聚类,如COD(Clustering with Obstructed Distance):用两点之间的障碍距离取代了一般的欧式距离3.3不足通常只能处理特定应用领域中的特定需求4、用于高维数据的聚类算法4.1困难来源因素1)无关属性的出现使数据失去了聚类的趋势2)区分界限变得模糊4.2解决方法1)对原始数据降维2)子空间聚类CACTUS:对原始空间在二维平面上的投影CLIQUE:结合基于密度和网格的聚类思想,借鉴Apriori算法3)联合聚类技术特点:对数据点和属性同时进行聚类文本:基于双向划分图及其最小分割的代数学方法4.3不足:不可避免地带来了原始数据信息的损失和聚类准确性的降低5、机器学习中的聚类算法5.1两个方法1)人工神经网络方法自组织映射:向量化方法,递增逐一处理;映射至二维平面,实现可视化基于投影自适应谐振理论的人工神经网络聚类2)基于进化理论的方法缺陷:依赖于一些经验参数的选取,并具有较高的计算复杂度模拟退火:微扰因子;遗传算法(选择、交叉、变异)5.2优缺点优点:利用相应的启发式算法获得较高质量的聚类结果缺点:计算复杂度较高,结果依赖于对某些经验参数的选择K-pototypes算法K-pototypes算法结合了K-means方法和根据K-means方法改进的能够处理符号属性的K-modes方法,同K-means方法相比,K-pototypes 算法能够处理符号属性。

3.2 CLARANS算法(划分方法)CLARANS算法即随机搜索聚类算法,是一种分割聚类方法。

它首先随机选择一个点作为当前点,然后随机检查它周围不超过参数Maxneighbor 个的一些邻接点,假如找到一个比它更好的邻接点,则把它移人该邻接点,否则把该点作为局部最小量。

然后再随机选择一个点来寻找另一个局部最小量,直至所找到的局部最小量数目达到用户要求为止。

该算法要求聚类的对象必须都预先调人内存,并且需多次扫描数据集,这对大数据量而言,无论时间复杂度还是空间复杂度都相当大。

虽通过引人R-树结构对其性能进行改善,使之能够处理基于磁盘的大型数据库,但R*-树的构造和维护代价太大。

该算法对脏数据和异常数据不敏感,但对数据物人顺序异常敏感,且只能处理凸形或球形边界聚类。

3.3 BIRCH算法(层次方法)BIRCH算法即平衡迭代削减聚类法,其核心是用一个聚类特征3元组表示一个簇的有关信息,从而使一簇点的表示可用对应的聚类特征,而不必用具体的一组点来表示。

它通过构造满足分支因子和簇直径限制的聚类特征树来求聚类。

BIRCH算法通过聚类特征可以方便地进行中心、半径、直径及类内、类间距离的运算。

算法的聚类特征树是一个具有两个参数分枝因子B和类直径T的高度平衡树。

分枝因子规定了树的每个节点子女的最多个数,而类直径体现了对一类点的直径大小的限制即这些点在多大范围内可以聚为一类,非叶子结点为它的子女的最大关键字,可以根据这些关键字进行插人索引,它总结了其子女的信息。

聚类特征树可以动态构造,因此不要求所有数据读人内存,而可以在外存上逐个读人。

新的数据项总是插人到树中与该数据距离最近的叶子中。

如果插人后使得该叶子的直径大于类直径T,则把该叶子节点分裂。

其它叶子结点也需要检查是否超过分枝因子来判断其分裂与否,直至该数据插入到叶子中,并且满足不超过类直径,而每个非叶子节点的子女个数不大于分枝因子。

算法还可以通过改变类直径修改特征树大小,控制其占内存容量。

BIRCH算法通过一次扫描就可以进行较好的聚类,由此可见,该算法适合于大数据量。

对于给定的M兆内存空间,其空间复杂度为O(M),时间间复杂度为O(dNBlnB(M/P)).其中d为维数,N为节点数,P为内存页的大小,B为由P决定的分枝因子。

I/O花费与数据量成线性关系。

BIRCH算法只适用于类的分布呈凸形及球形的情况,并且由于BIRCH算法需提供正确的聚类个数和簇直径限制,对不可视的高维数据不可行。

3.4 CURE算法(层次方法)CURE算法即使用代表点的聚类方法。

该算法先把每个数据点看成一类,然后合并距离最近的类直至类个数为所要求的个数为止。

CURE算法将传统对类的表示方法进行了改进,回避了用所有点或用中心和半径来表示一个类,而是从每一个类中抽取固定数量、分布较好的点作为描述此类的代表点,并将这些点乘以一个适当的收缩因子,使它们更靠近类的中心点。

将一个类用代表点表示,使得类的外延可以向非球形的形状扩展,从而可调整类的形状以表达那些非球形的类。

另外,收缩因子的使用减小了嗓音对聚类的影响。

CURE算法采用随机抽样与分割相结合的办法来提高算法的空间和时间效率,并且在算法中用了堆和K-d树结构来提高算法效率。

3.5 DBSCAN算法(基于密度的方法)DBSCAN算法即基于密度的聚类算法。

该算法利用类的密度连通性可以快速发现任意形状的类。

其基本思想是:对于一个类中的每个对象,在其给定半径的领域中包含的对象不能少于某一给定的最小数目。

在DBSCAN算法中,发现一个类的过程是基于这样的事实:一个类能够被其中的任意一个核心对象所确定。

为了发现一个类,DBSCAN先从对象集D 中找到任意一对象P,并查找D中关于关径Eps和最小对象数Minpts的从P密度可达的所有对象。

如果P是核心对象,即半径为Eps的P的邻域中包含的对象不少于Minpts,则根据算法,可以找到一个关于参数Eps和Minpts的类。

如果P是一个边界点,则半径为Eps的P邻域包含的对象少于Minpts,P被暂时标注为噪声点。

然后,DBSCAN处理D中的下一个对象。

密度可达对象的获取是通过不断执行区域查询来实现的。

一个区域查询返回指定区域中的所有对象。

为了有效地执行区域查询,DBSCAN算法使用了空间查询R-树结构。

在进行聚类前,必须建立针对所有数据的R*-树。

另外,DBSCAN要求用户指定一个全局参数Eps(为了减少计算量,预先确定参数Minpts)。

为了确定取值,DBSCAN计算任意对象与它的第k 个最临近的对象之间的距离。

然后,根据求得的距离由小到大排序,并绘出排序后的图,称做k-dist图。

k-dist图中的横坐标表示数据对象与它的第k个最近的对象间的距离;纵坐标为对应于某一k-dist距离值的数据对象的个数。

R*-树的建立和k-dist图的绘制非常消耗时间。

此外,为了得到较好的聚类结果,用户必须根据k-dist图,通过试探选定一个比较合适的Eps值。

DBSCAN算法不进行任何的预处理而直接对整个数据集进行聚类操作。

当数据量非常大时,就必须有大内存量支持,I/O消耗也非常大。

相关文档
最新文档