聚类比较

合集下载
  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消耗也非常大。

其时间复杂度为O(nlogn)(n
为数据量),聚类过程的大部分时间用在区域查询操作上。

DBSCAN算法对参数Eps及Minpts非常敏感,且这两个参数很难确定
3.6 CLIQUE算法(综合了基于密度和基于网格的算法)
CLIQUE算法即自动子空间聚类算法。

该算法利用自顶向上方法求出各个子空间的聚类单元。

CLUQUE算法主要用于找出在高维数据空间中存在的低维聚类。

为了求出d维空间聚类,必须组合给出所有d-1维子空间的聚类,导致其算法的空间和时间效率都较低,而且要求用户输入两个参数:数据取值空间等间隔距离和密度阔值。

这2个参数与样木数据紧密相关,用户一般难以确定。

CLIQUE算法对数据输人顺序不敏感。

算法算法效率适合的数据类型发现的聚类类型对脏数据或异常数据的敏感性对数据输入顺序的敏感性
BIRCH 高数值凸形或球形不敏感不太敏感DBSCAN 一般数值任意形状敏感敏感
CURE 较高数值任意形状不敏感不太敏感
K-poto 一般数值和符号凸形或球形敏感一般CLARANS 较低数值凸形或球形不敏感非常敏感CUQUE 较低数值凸形或球形一般不敏感。

相关文档
最新文档