五一假期,还好没有出去,到处都是堵啊。闲在看看分类、聚类算法、关联算法,现总结一下常见的聚类算法并进行MR分析。
1.K-means基本原理:首先随机的选择K个对象,每个对象代表一个簇的初始均值和中心;对剩余的每个对象,根据其与各个簇的均值的距离,将其指派到最相似的簇。然后计算每个簇的新均值,过程不断重复直到准则函数收敛
效率分析:时间复杂度O(nki)、空间复杂度O(k)
MapReduce并行化分析:k-means从逻辑上分为三部分:聚类中心初始化、迭代更新聚类中心、聚类标注。三部分都可以MR并行化
2.CLARANS
基本原理:与k-means相似,也是以聚类中心划分聚类的,一旦k个聚类中心确定了,聚类马上就能完成。不同的是k-means算法以类簇的样本均值代表聚类中心,而CLARANS采用每个簇中选择一个世纪的对象代表该簇。其余的对每个对象聚类到其最相似的代表性对象所在的簇中。
效率分析:时间复杂度O(n^2)、空间复杂度O(ks)
MR并行化分析:CLARANS从逻辑上分为三部分:聚类中心和邻域样本初始化、迭代更新聚类中心、聚类标注;均可并行化处理
3.DBSCAN
基本原理:DBSCAN算法一种基于密度的聚类算法,与划分和层次聚类算法不同,它将 簇定义为密度相连的点的最大集合,能够将足够高的密度区域划分为簇,并可以在有噪声的空间数据中发现任意形状的聚类
效率分析:时间复杂度O(n^2)空间复杂度O(n)
MR并行化分析:DBSCAN从逻辑上分为三部分:样本抽样、对抽样样本进行聚类、聚类标注;均可并行化计算。
4.BIRTH
基本原理:BIRTH算法利用层次方法的平衡迭代规约和聚类,是一个综合的层次聚类方法,它用聚类特征和聚类特诊树概括聚类特征,该算法可以通过聚类特征可以方便的进行中心、半径、直径以及类内、类间进行距离的计算
效率分析:时间和空间的复杂度均为O(N)
MR并行化分析:不适合对分隔的数据进行处理,而且是增量计算的
5.Chameleon
基本原理:Chameleon(变色龙算法)是在一个层次聚类中采用动态模型进行聚类的 方法。在它的聚类过程中,如果两个簇间的互联性和近似度与簇内部对象间的互联性和近似高度相关,则合并这两个簇。基于动态模型的合并过程中有利于自然的聚类发现,而且只要定义了相似度函数就可以应用于所有类型的数据。
效率分析:时间复杂度O(n^2)、空间复杂度O(n)
MR并行化分析:不适合对分隔数据处理
6.STING
基本原理:STING是一种基于网格的多分辨率聚类技术,它将空间区域划分为矩形单元,针对不同级别的分辨率,通常存在多个级别的矩形单元,这些单元形成了一个层次结构;高层的每个单元划分为多个第一层的单元
效率分析:时间复杂度O(n)、空间复杂度O(l)
MR并行化分析:算法的数据分隔不是简单的块分隔,不适合MR并行化处理
注:n为样本的个数,k为类簇的个数,i为算法的迭代次数,s为每次抽样的个数,d为样本的属性个数