常用聚类算法的比较
分类 回归 聚类 常用算法

分类回归聚类常用算法一、分类算法分类算法是机器学习中最常用的算法之一,它用于将数据集划分为不同的类别。
分类算法的目标是通过训练数据集中已知的类别标签来预测未知数据的类别。
常见的分类算法有决策树、朴素贝叶斯、逻辑回归、支持向量机等。
1. 决策树决策树是一种基于树状结构的分类算法。
它通过将数据集划分为不同的子集,使得每个子集中的数据都属于同一类别。
决策树的优点是易于理解和解释,同时对异常值不敏感。
然而,决策树容易过拟合,需要进行剪枝操作来避免这个问题。
2. 朴素贝叶斯朴素贝叶斯算法基于贝叶斯定理和特征之间的独立性假设。
它通过计算每个类别的后验概率来进行分类。
朴素贝叶斯算法的优点是计算简单、速度快,但它对特征之间的相关性较为敏感。
3. 逻辑回归逻辑回归是一种广义线性模型,常用于二分类问题。
它通过将输入特征与权重相乘,并通过一个逻辑函数来预测输出的概率。
逻辑回归的优点是计算简单、易于理解,但它对异常值和噪声数据比较敏感。
4. 支持向量机支持向量机是一种二分类算法,它通过寻找一个超平面来将数据集分割为两个类别。
支持向量机的优点是可以处理高维数据和非线性问题,但它对大规模数据集的训练时间较长。
二、回归算法回归算法用于预测连续型变量的值。
回归算法的目标是通过训练数据集中的自变量和因变量之间的关系来预测未知数据的因变量。
常见的回归算法有线性回归、多项式回归、岭回归、Lasso回归等。
1. 线性回归线性回归是一种最简单的回归算法,它建立了输入特征与输出变量之间的线性关系。
线性回归的优点是计算简单、易于解释,但它对异常值和噪声数据比较敏感。
2. 多项式回归多项式回归是在线性回归的基础上引入了多项式特征的回归算法。
它可以处理非线性关系,并通过增加高次项来拟合数据。
多项式回归的缺点是容易过拟合,需要进行特征选择和模型调优。
3. 岭回归岭回归是一种带有正则化项的线性回归算法。
它通过控制正则化参数来平衡模型的复杂度和拟合能力,从而降低过拟合的风险。
完整版数据挖掘中的聚类分析方法

完整版数据挖掘中的聚类分析方法聚类分析方法是数据挖掘领域中常用的一种数据分析方法,它通过将数据样本分组成具有相似特征的子集,并将相似的样本归为一类,从而揭示数据中隐藏的模式和结构信息。
下面将从聚类分析的基本原理、常用算法以及应用领域等方面进行详细介绍。
聚类分析的基本原理聚类分析的基本原理是将数据样本分为多个类别或群组,使得同一类别内的样本具有相似的特征,而不同类别之间的样本具有较大的差异性。
基本原理可以总结为以下三个步骤:1.相似性度量:通过定义距离度量或相似性度量来计算数据样本之间的距离或相似度。
2.类别划分:根据相似性度量,将样本分组成不同的类别,使得同一类别内的样本之间的距离较小,不同类别之间的距离较大。
3.聚类评估:评估聚类结果的好坏,常用的评估指标包括紧密度、分离度和一致性等。
常用的聚类算法聚类算法有很多种,下面将介绍常用的几种聚类算法:1. K-means算法:是一种基于划分的聚类算法,首先通过用户指定的k值确定聚类的类别数,然后随机选择k个样本作为初始聚类中心,通过迭代计算样本到各个聚类中心的距离,然后将样本划分到距离最近的聚类中心对应的类别中,最后更新聚类中心,直至达到收敛条件。
2.层次聚类算法:是一种基于树状结构的聚类算法,将样本逐步合并到一个大的类别中,直至所有样本都属于同一个类别。
层次聚类算法可分为凝聚式(自底向上)和分裂式(自顶向下)两种。
凝聚式算法首先将每个样本作为一个初始的类别,然后通过计算样本之间的距离来逐步合并最近的两个类别,直至达到停止准则。
分裂式算法则是从一个包含所有样本的初始类别开始,然后逐步将类别分裂成更小的子类别,直至达到停止准则。
3. 密度聚类算法:是一种基于样本密度的聚类算法,通过在数据空间中寻找具有足够高密度的区域,并将其作为一个聚类。
DBSCAN (Density-Based Spatial Clustering of Applications with Noise)算法是密度聚类算法的代表,它通过定义距离和邻域半径来确定样本的核心点、边界点和噪声点,并通过将核心点连接起来形成聚类。
聚类分析方法

聚类分析方法聚类分析是一种常用的数据分析方法,它可以将数据集中的对象按照其相似性进行分组,形成若干个簇。
通过聚类分析,我们可以发现数据中的内在结构,帮助我们更好地理解数据集的特点和规律。
在实际应用中,聚类分析被广泛应用于市场分割、社交网络分析、图像处理等领域。
本文将介绍聚类分析的基本原理、常用方法和应用场景,希望能够帮助读者更好地理解和应用聚类分析。
聚类分析的基本原理是将数据集中的对象划分为若干个簇,使得同一簇内的对象相似度较高,不同簇之间的对象相似度较低。
在进行聚类分析时,我们需要选择合适的相似性度量方法和聚类算法。
常用的相似性度量方法包括欧氏距离、曼哈顿距离、余弦相似度等,而常用的聚类算法包括K均值聚类、层次聚类、DBSCAN等。
不同的相似性度量方法和聚类算法适用于不同的数据类型和应用场景,选择合适的方法对于聚类分析的效果至关重要。
K均值聚类是一种常用的聚类算法,它通过不断迭代更新簇中心的方式,将数据集中的对象划分为K个簇。
K均值聚类的优点是简单、易于理解和实现,但是它对初始簇中心的选择较为敏感,容易收敛到局部最优解。
层次聚类是另一种常用的聚类算法,它通过逐步合并或分裂簇的方式,构建一棵层次化的聚类树。
层次聚类的优点是不需要事先确定簇的个数,但是它对大数据集的处理效率较低。
DBSCAN是一种基于密度的聚类算法,它能够发现任意形状的簇,并且对噪声数据具有较强的鲁棒性。
不同的聚类算法适用于不同的数据特点和应用场景,我们需要根据具体情况选择合适的算法进行聚类分析。
聚类分析在实际应用中有着广泛的应用场景。
在市场分割中,我们可以利用聚类分析将顾客分为不同的群体,从而制定针对性的营销策略。
在社交网络分析中,我们可以利用聚类分析发现社交网络中的社区结构,从而发现潜在的影响力人物。
在图像处理中,我们可以利用聚类分析对图像进行分割和特征提取,从而实现图像内容的理解和识别。
聚类分析在各个领域都有着重要的应用,它为我们理解和利用数据提供了有力的工具。
聚类分析的类型与选择

聚类分析的类型与选择聚类分析是一种常用的数据分析方法,它可以将一组数据对象划分为若干个相似的子集,每个子集内的对象相似度较高,而不同子集之间的对象相似度较低。
聚类分析在各个领域都有广泛的应用,如市场细分、社交网络分析、图像处理等。
本文将介绍聚类分析的基本概念和常见的聚类算法,并讨论如何选择适合的聚类算法。
聚类分析的基本概念聚类分析是一种无监督学习方法,它不需要事先标记好的训练样本,而是通过计算数据对象之间的相似度来进行分类。
聚类分析的目标是找到合适的聚类数目和聚类中心,使得同一聚类内的对象相似度最高,而不同聚类之间的对象相似度最低。
聚类分析的类型根据聚类算法的不同原理和方法,聚类分析可以分为以下几种类型:基于距离的聚类基于距离的聚类是最常见和经典的聚类方法之一。
它通过计算数据对象之间的距离来确定聚类结果。
常用的基于距离的聚类算法有K-means、层次聚类和DBSCAN等。
K-meansK-means是一种迭代的、划分的聚类算法。
它首先随机选择K个初始聚类中心,然后将每个数据对象分配到与其最近的聚类中心,再根据新的聚类结果更新聚类中心,重复这个过程直到收敛。
K-means算法的优点是简单、高效,但对初始聚类中心的选择敏感。
层次聚类层次聚类是一种自底向上或自顶向下的聚类方法。
它通过计算数据对象之间的相似度或距离来构建一个层次结构,然后根据不同的划分准则将层次结构划分为若干个聚类。
层次聚类算法的优点是不需要事先指定聚类数目,但计算复杂度较高。
DBSCANDBSCAN是一种基于密度的聚类算法。
它通过定义一个邻域半径和一个最小密度阈值来确定核心对象和边界对象,并将核心对象连接起来形成一个聚类。
DBSCAN算法的优点是可以发现任意形状的聚类,但对参数的选择较为敏感。
基于概率模型的聚类基于概率模型的聚类是一种将数据对象看作随机变量的方法。
它假设数据对象服从某种概率分布,并通过最大似然估计或贝叶斯推断来确定聚类结果。
python 多维特征聚类算法

python 多维特征聚类算法多维特征聚类算法是一种用于将具有多个特征的数据点划分成不同群组的方法。
Python中有多种用于实现多维特征聚类的算法,下面介绍两个常用的算法。
1. K-means算法:K-means算法是一种常见的聚类算法,它通过迭代的方式将数据点划分为预先指定的K个簇。
该算法的基本思想是随机选择K个初始质心,然后通过计算每个数据点与质心的距离,并将其分配给最近的质心来更新质心的位置。
这个过程不断迭代,直到质心的位置不再变化或达到最大迭代次数。
K-means算法的优点是简单易实现,但对于非球形簇形状的数据分布效果可能不好。
在Python中,可以使用scikit-learn库中的KMeans 类来实现K-means算法。
以下是一个使用K-means算法进行多维特征聚类的示例代码:pythonfrom sklearn.cluster import KMeans# 假设有一个包含多个特征的数据集X# 创建K-means模型,指定要划分的簇数量Kkmeans = KMeans(n_clusters=K)# 训练模型并进行聚类kmeans.fit(X)# 获取聚类结果labels = bels_centroids = kmeans.cluster_centers_2. DBSCAN算法:DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,可以自动发现具有不同密度的簇,并且可以处理噪声数据。
该算法通过定义一个邻域大小和一个最小样本数来划分簇,将具有足够密度的数据点划分为簇,而较稀疏的区域则被视为噪声。
在Python中,可以使用scikit-learn库中的DBSCAN 类来实现DBSCAN算法。
以下是一个使用DBSCAN算法进行多维特征聚类的示例代码:pythonfrom sklearn.cluster import DBSCAN# 假设有一个包含多个特征的数据集X# 创建DBSCAN模型,指定邻域大小和最小样本数dbscan = DBSCAN(eps=epsilon, min_samples=min_pts) # 训练模型并进行聚类dbscan.fit(X)# 获取聚类结果labels = bels_以上是两种常用的多维特征聚类算法的简要介绍和示例代码。
层次聚类算法总结

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

聚类分析算法概述及其适用性比较作者:印晓天湛高峰来源:《科技资讯》2018年第33期摘要:聚类算法作为大数据与人工智能领域重要的分析工具,受到了学术界的高度关注与广泛研究。
本文从算法设计思想的角度对现今主要的聚类算法进行了归纳总结。
具体来讲,针对中心聚类法、层次聚类法、密度聚类法、谱聚类法以及一些其他聚类算法分析了各自算法及其思想的优缺点与适用性,对算法的实际应用建立指导性作用。
关键词:聚类分析算法适用性中图分类号:TP311 文献标识码:A 文章编号:1672-3791(2018)11(c)-0230-03聚类分析作为机器学习的重要分析手段,是当前大数据时代下的热点研究领域之一。
在过去数十年间,产生了大量的聚类分析算法。
本文对目前主流的聚类算法进行归纳总结,并对各自的优缺点和适用性进行比较分析。
通俗来讲,聚类算法的目标是将具有共性的样本归为同一类型,而将没有或者少有共性的样本归为不同类型。
数学上对于共性的度量常用样本之间的距离来衡量,而如何定义距离则需要根据实际情况具体分析。
因此,聚类算法的目标是得到一系列内部联系相对紧密、外部联系相对稀疏的样本集合(又称为类簇)。
聚类算法按实现方式,主要可以分为中心聚类、层次聚类、密度聚类、谱聚类等。
下面就以上各类型聚类算法逐一介绍。
由于本文着重分类介绍算法的思想,旨在分析各类算法的优缺点及其适用性,所以在介绍的时候不会拘泥于参数细节,而强调执行过程是如何体现算法思想的。
具体的算法实现过程可参考相应文献。
1 中心聚类法中心聚类法是一类极为常见聚类算法。
它以找各类簇的中心为基本任务,将离某中心最近那些点归为该中心所代表的类簇。
中心聚类的代表性算法是K-means[1-2]。
K-means算法的执行是一个迭代的过程,以正整数K作为超参数,在每轮次更新K个类簇的中心。
具体来说,给定空间中样本点集合作为输入,初始时算法以某种方式选定K个空间中的点作为K个类簇的初始中心点,这种选取方式可以是随机的,也可以是根据输入样本的特征先验选取。
聚类分析数据

聚类分析数据聚类分析是一种数据分析方法,用于将相似的数据点归为一类。
它是无监督学习的一种常见技术,可以匡助我们发现数据中隐藏的模式和结构。
在本文中,我们将介绍聚类分析的基本概念、常用的聚类算法以及如何应用聚类分析来解决实际问题。
一、聚类分析的基本概念聚类分析的目标是将数据点划分为若干个互相之间相似度较高的簇,使得同一簇内的数据点相似度较高,而不同簇之间的数据点相似度较低。
在进行聚类分析之前,我们需要选择适当的相似度度量方法和聚类算法。
1. 相似度度量方法相似度度量方法用于衡量两个数据点之间的相似程度。
常用的相似度度量方法包括欧氏距离、曼哈顿距离、余弦相似度等。
选择合适的相似度度量方法对于聚类分析的结果具有重要影响。
2. 聚类算法聚类算法用于将数据点划分为不同的簇。
常用的聚类算法包括K均值聚类、层次聚类、DBSCAN等。
不同的聚类算法适合于不同类型的数据和问题,选择合适的聚类算法可以提高聚类分析的效果。
二、常用的聚类算法1. K均值聚类K均值聚类是一种基于距离的聚类算法,它将数据点划分为K个簇,其中K是用户预先指定的参数。
该算法的基本思想是通过迭代优化的方式,将数据点分配到离其最近的簇中,然后更新簇的中心点,直到达到收敛条件。
2. 层次聚类层次聚类是一种将数据点组织成树状结构的聚类算法。
它的基本思想是通过计算数据点之间的相似度,逐步合并相似度最高的数据点或者簇,直到所有数据点都被合并到一个簇中或者达到预定的聚类数目。
3. DBSCANDBSCAN是一种基于密度的聚类算法,它将数据点划分为核心点、边界点和噪声点三类。
该算法的基本思想是通过计算数据点的密度,将密度达到一定阈值的核心点连接在一起形成簇,而边界点则被分配到与其相邻的核心点所在的簇中。
三、聚类分析的应用1. 市场细分聚类分析可以匡助企业将市场细分为不同的消费者群体。
通过分析消费者的购买行为、偏好等数据,可以将消费者划分为具有相似特征的簇,从而有针对性地制定营销策略。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
聚类分析中几种算法的比较
将数据库中的对象进行聚类是聚类分析的基本操作,其准则是使属于同一类的个体间距
离尽可能小,而不同类个体间距离尽可能大,为了找到效率高、通用性强的聚 类方法人们
从不同角度提出了近百种聚类方法,典型的有K-means方法、K-medoids方法、CLARANS
方法,BIRCH方法等,这些算法适用 于特定的问题及用户。本文综合提出了评价聚类算法
好坏的5个标准,基于这5个标准,对数据挖掘中常用聚类方法作了比较分析,以便于人
们更容易、更快捷地找 到一种适用于特定问题及用户的聚类算法。
聚类算法研究及比较框架
聚类算法一般有五种方法,最主要的是划分方法和层次方法两种。划分聚类算法通过优
化评价函数把数据集分割为K个部分,它需要K作为 输人参数。典型的分割聚类算法有
K-means算法, K-medoids算法、CLARANS算法。层次聚类由不同层次的分割聚类组成,
层次之间的分割具有嵌套的关系。它不需要输入参数,这是它优于分割聚类 算法的一个明
显的优点,其缺点是终止条件必须具体指定。典型的分层聚类算法有BIRCH算法、DBSCAN
算法和CURE算法等。
对各聚类算法的比较研究基于以下5个标准:
① 是否适用于大数据量,算法的效率是否满足大数据量高复杂性的要求;
② 是否能应付不同的数据类型,能否处理符号属性;
③ 是否能发现不同类型的聚类;
④ 是否能应付脏数据或异常数据;
⑤ 是否对数据的输入顺序不敏感。
下面将在该框架下对各聚类算法作分析比较。
数据挖掘常用聚类算法比较分析
3.1 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消耗也非常大。其时间复杂度为 O(nlogn)(n
为数据量),聚类过程的大部分时间用在区域查询操作上。DBSCAN算法对参数Eps及
Minpts非常敏感,且这两个参数很难确定。
3.6 CLIQUE算法(综合了基于密度和基于网格的算法)
CLIQUE算法即自动子空间聚类算法。该算法利用自顶向上方法求出各个子空间的聚类
单元。CLUQUE算法主要用于找出在高维数据空间中存在的低维 聚类。为了求出d维空间
聚类,必须组合给出所有d-1维子空间的聚类,导致其算法的空间和时间效率都较低,而且
要求用户输入两个参数:数据取值空间等间隔 距离和密度阔值。这2个参数与样木数据紧
密相关,用户一般难以确定。CLIQUE算法对数据输人顺序不敏感。
4 总结
基于上述分析,我们得到各聚类算法的比较结果,结论如下:
算法 算法效率 适合的数据类型 发现的聚类类型 对脏数据或异常数据的敏感性 对数据输
入顺序的敏感性
BIRCH 高 数值 凸形或球形 不敏感 不太敏感
DBSCAN 一般 数值 任意形状 敏感 敏感
CURE 较高 数值 任意形状 不敏感 不太敏感
K-poto 一般 数值和符号 凸形或球形 敏感 一般
CLARANS 较低 数值 凸形或球形 不敏感 非常敏感
CUQUE 较低 数值 凸形或球形 一般 不敏感
由于每个方法都有其特点和不同的适用领域,在数据挖掘中,用户应该根据实际需要选择恰
当的聚类算法。