机器学习算法--聚类

K means 算法

是一个简单的聚类算法,把n的对象根据他们的属性分为k个分割,k < n 算法的核心就是要优化失真函数J,使其收敛到局部最小值但不是全局最小值。

http://wangfei4553693.blog.163.com/blog/static/270104772012115111053127/

层次方法

自底向上的方法,一开始将每个对 象作为单独的一个类,然后相继地合并相近的类,直到所有的类合并为一个(层次的最上层),或者达到一个终止条件为止。分裂的方法,也称为自顶向下的方法, 一开始将所有的对象置于一个类中。在迭代的每一步中,类被分裂为更小的类,直到每个类只包含一个对象,或者达到一个终止条件为止。

层次方法 (Hierarchical Method) 中代表算法有 BIRCH  CURE  ROCK .CHAMELEON算法 

BIRCH方法:

http://blog.csdn.net/qll125596718/article/details/6895291

BIRCH是一种聚类算法,它最大的特点是能利用有限的内存资源完成对大数据集的高质量的聚类,同时通过单遍扫描数据集能最小化I/O代价。

CF是BIRCH增量聚类算法的核心,CF树中得节点都是由CF组成,一个CF是一个三元组,这个三元组就代表了簇的所有信息。给定N个d维的数据点{x1,x2,....,xn},CF定义如下:

CF=(N,LS,SS)

            其中,N是子类中节点的数目,LS是N个节点的线性和,SS是N个节点的平方和。

           CF有个特性,即可以求和,具体说明如下:CF1=(n1,LS1,SS1),CF2=(n2,LS2,SS2),则CF1+CF2=(n1+n2, LS1+LS2, SS1+SS2)。

           例如:

           假设簇C1中有三个数据点:(2,3),(4,5),(5,6),则CF1={3,(2+4+5,3+5+6),(2^2+4^2+5^2,3^2+5^2+6^2)}={3,(11,14),(45,70)},同样的,簇C2的CF2={4,(40,42),(100,101)},那么,由簇C1和簇C2合并而来的簇C3的聚类特征CF3计算如下:

CF3={3+4,(11+40,14+42),(45+100,70+101)}={7,(51,56),(145,171)}

CURE(Clustering Using Representatives)是一种针对大型数据库的高效的聚类算法。基于划分的传统的聚类算法得到的是球状的,相等大小的聚类,对异常数据比较脆弱。CURE采用了用多个点代表一个簇的方法,可以较好的处理以上问题。并且在处理大数据量的时候采用了随机取样,分区的方法,来提高其效率得其可以高效的处理大量数据。

ROCK是Sudipno Guha等1999年提出的一个著名的面向分类属性数据的聚类算法,其突出贡献是采用公共近邻(链接)数的全局信息作为评价数据点间相关性的度量标准不是传统的基于两点间距离的局部度量函数.

基于划分的方法 (Partitioning Method) ,其代表算法有 K-MEANS  K-MEDOIDS 、大型数据库划分方法( CLARANS 等。


基于密度的方法

 大 多数划分方法基于对象之间的距离进行聚类,这样的方法只能发现球状的类,而在发现任意形状的类上有困难。因此,出现了基于密度的聚类方法,其主要思想是: 只要邻近区域的密度(对象或数据点的数目)超过某个阈值,就继续聚类。也就是说,对给定类中的每个数据点,在一个给定范围的区域内必须至少包含某个数目的 点。这样的方法可以过滤  噪声  数据,发现任意形状的类。但算法计算复杂度高,一般为 O(n2 ) ,对于密度分布不均的数据集,往往得不到满意的聚类结果。其代表算法有 DBSCAN  OPTICS  DE NCLUE 

基于网格的方法

基于网格的方法把对象空间量化为有限数目的单元,形成一个网格结构。所有的聚类操作都在这个网格结构(即量化空间)上进行。这种方法的主要优点是它的处理 速度很快,其处理速度独立于数据对象的数目,只与量化空间中每一维的单元数目有关。但这种算法效率的提高是以聚类结果的精确性为代价的。它的代表算法有 STING  CLIQUE  WAVE- CLUSTER 等。

基于模型的方法

基于模型的聚类算法为每簇假定了一个模型,寻找数据对给定模型的最佳拟合。一个基于模型的算法可能通过构建反应数据点空间分布的密度函数来定位聚类。它也 基于标准的统计数字自动决定聚类的数目,老吕噪声数据或孤立点,从而产生健壮的聚类方法。基于模型的聚类试图优化给定的数据和某些数据模型之间的适应性。 这样的方法经常是基于这样的假设:数据是根据潜在的概率分布生成的。基于模型的方法主要有两类:统计学方法和网络神经方法。其中,统计学方法有COBWEB 算法,网络神经方法有 SOM 算法。

基于约束的方法

真实世界中的聚类问题往往是具备多种约束条件的 , 然而由于在处理过程中不能准确表达相应的约束条件、不能很好地利用约束知识进行推理以及不能有效利用动态的约束条件 , 使得这一方法无法得到广泛的推广和应用。这里的约束可以是对个体对象的约束 , 也可以是对聚类参数的约束 , 它们均来自相关领域的经验知识。该方法的一个重要应用在于对存在障碍数据的二维空间数据进行聚类。 COD (Clustering with Ob2structed Distance) 就是处理这类问题的典型算法 , 其主要思想是用两点之间的障碍距离取代了一般的欧氏距离来计算其间的最小距离。

3.2 新发展的聚类算法

3.2.1 基于模糊的聚类方法

传统的聚类分析是一种“硬”聚类(Crisp Clustering) 方 法,隶属关系采用经典集合论中的要么属于要么不属于来表示,事物之间的界限有着截然不同的区别。然而,现实生活中很多事物特征无法给出一个精确的描述,例 如把人按身高分为“高个子的人”,“矮个子的人”,“不高不矮的人”。然而,多高算高?多矮算矮?这样的分类判别是经典分类解决不了的问题。模糊聚类分析 方法为解决此类问题提供了有力的分析工具。该方法把隶属关系的取值从笼{0,1} 二值逻辑扩展到[0 ,1] 区间,从而更合理地表示事物之间存在的中介性。

目 前国内外对模糊聚类分析的研究非常重视,参与这个学科研究的国度遍布全球,研究人员与日俱增,模糊新产品不断问世,模糊技术不断被应用到高精尖领域,基础 理论研究与实际应用研究也取得了丰硕的成果。模糊数学目前正沿着理论研究和应用研究两个方向迅速发展。理论研究主要是经典数学概念的模糊化。由于模糊集自 身的层次结构,使得这种理论研究更加复杂,当然也因而更具吸引力。目前已形成了模糊拓扑、模糊代数、模糊分析、模糊测度及模糊计算机等模糊数学分支。应用 研究主要是对模糊性之内在规律的探讨,对模糊逻辑及模糊信息处理技术的研究。模糊数学的应用范围已遍及自然科学与社会科学的几乎所有的领域。特别是在模糊 控制、模式识别、聚类分析、系统评价、数据库、系统决策、人工智能及信息处理等方面取得了显著的成就。

伴随着模糊聚类理论的形成、发展和深化,针对不同的 应用,人们提出了很多模糊聚类算法,比较典型的有基于目标函数的模糊聚类方法、基于相似性关系和模糊关系的方法、基于模糊等价关系的传递闭包方法、基于模 糊图论的最小支撑树方法,以及基于数据集的凸分解、动态规划和难以辨别关系等方法。其中最受欢迎的是基于目标函数的模糊聚类方法,该方法把聚类归结成一个 带约束的非线性规划问题,通过优化求解获得数据集的模糊划分和聚类。该方法设计简单,解决问题的范围广,还可以转化为优化问题而借助经典数学的非线性规划 理论求解,并易于在计算机上实现。因此,随着计算机的应用和发展,基于目标函数的模糊聚类算法成为新的研究热点。在基于目标函数的聚类算法中,FCM 类型算法的理论最为完善、应用最为广泛。FCM 类型的算法最早是从“硬”聚类目标函数的优化中导出的。为了借助目标函数法求解聚类问题,人们利用均方逼近理论构造了带约束的非线性规划函数,从此类内平方误差和(within —    GrouPssumofSquaredError ,WGSS)J1,成为聚类目标函数的普遍形式。为极小化该目标函数而采取Pikard 迭代优化方案就是著名的硬。一均值(Hard c-means ,HCM) 算法。后来Dunn 把WGSS 函数Jl扩展到J2 ,即类内加权平均误差和函数。Bezdek 又引入了一个参数m ,把J2 推广到一个目标函数的无限簇,即形成了人们所熟知的FCM 算法。从此,奠定了FCM算法在模糊聚类中的地位。

3.2.2 基于粒度的聚类方法

从表面上看,聚类和分类有很大差异———聚类是无导师的学习,而分类是有导师的学习。具体说来,聚类的目的是发现样本点之间最本质的抱团性质的一种客观反 映;分类需要一个训练样本集,由领域专家指明,而分类的这种先验知识却常常是主观的。如果从信息粒度的角度来看,就会发现聚类和分类的相通之处 : 聚类操作实际上是在一个统一粒度下进行计算的;分类操作是在不同粒度下进行计算的。在粒度原理下,聚类和分类的相通使得很多分类的方法也可以用在聚类方法 中。作为一个新的研究方向,虽然目前粒度计算还不成熟,尤其是对粒度计算语义的研究还相当少,但是相信随着粒度计算理论本身的不断完善和发展,在今后几 年,它将在数据挖掘中的聚类算法及其相关领域得到广泛应用。

3.2.3 量子聚类

在现有的聚类算法中,聚类数目一般需要事先指定,如 Kohenon 自组织算法、K-means 算法和模糊 K-means 聚类算法。然而,在很多情况下类别数是不可知的,而且绝大多数聚类算法的结果都依赖于初值,即使类别数目保持不变,聚类的结果也可能相差很大。受物理学中量子机理和特性启发,可以用量子理论解决此类问题。一个很好的例子就是基于相关点的 Pott 自旋和统计机理提出的量子聚类模型。它把聚类问题看做一个物理系统。并且许多算例表明,对于传统聚类算法无能为力的几种聚类问题,该算法都得到了比较满意的结果。

量子力学研究的是粒子在量子空间中的分布 , 聚类是研究样本在尺度空间中的分布情况。很多文献对量子聚类 (Quantum clustering,QC) 算法进行了深入的研究, 并应用于生物信息学的研究。 QC 算法不需要训练样本 , 是一种无监督学习的聚类方法。又因为它是借助势能函数 , 从势能能量点的角度来确定聚类中心的 , 所以它同样是基于划分的。实践已经证明 QC 算法有效。

3.2.4 核聚类

核聚类方法增加了对样本特征的优化过程,利用 Mercer 核 把输入空间的样本映射到高维特征空间,并在特征空间中进行聚类。核聚类方法是普适的,并在性能上优于经典的聚类算法,它通过非线性映射能够较好地分辨、提 取并放大有用的特征,从而实现更为准确的聚类;同时,算法的收敛速度也较快。在经典聚类算法失效的情况下,核聚类算法仍能够得到正确的聚类。

近年来核方法被用在聚类分析中,Tax 将支持向量方法用于数据域描述( 即单一分类) 中,提出了基于Gauss 核的SVDD(Supprot Vector Domain Deseription) 算法,Ben-Hen 提出了一种新的无监督非参数型的聚类算法一支持向量聚类(support vector Clustering ,SVC) 。SVC 算法主要分为两个部分:基于支持向量机训练和聚类标识,其中SVM 训练部分负责新知识模型的训练,包括Gaussian 核宽度系数的优化、Hilbert 空间最小包络超球体半径的计算lagrange 乘子的计算以及有界支持向量(Bounded Support Vectors ,BSVs)与支持向量的选取,再通过DFS(Depth-first Search) 算法根据关联矩阵进行聚类分配。

Girolaln 和焦李成等在结合核方法和聚类算法方面也做了开创性工作。目前已有的聚类算法只能对一些典型分布的样本奏效,比较经典的聚类方法有传统的k-means 方法、模糊c 均值聚类方法和Kohonen 自组织神经网络等,这些方法都没有对样本的特征进行优化,而是直接利用样本的特征进行聚类。

因此上述这些方法的有效性很大程度上取决于样本的分布情况。例如一类样本散布较大,而另一类散布较小的情况,这些方法效果就比较差;如果样本分布更加混 乱,则聚类的结果就会面目全非。通过引入核方法把输入空间的数据非线性映射到高维特征空间,增加了数据点的线性可分概率,即扩大数据类之间的差异,在高维 特征空间达到线性可聚的目的,从而提高聚类的质量。近年来对核聚类的积极研究,涌现了许多基于核的聚类算法,诸如支持向量聚类,基于核的模糊聚类算法,基 于模糊核聚类的SVM 多类分类方法,一种硬划分的核聚类算法,而谢维信等人又进一步提出了模糊核聚类算法,并将模糊核聚类算法推广到分类属性的数据中。而核聚类的研究为非线性数据的有效处理带来了突破口,也拓宽了本领域的研究范围。

3.2.5 谱聚类

传统的聚类算法 ,  k - means 算法、 EM 算法等都是建立在凸球形的样本空间上 , 但当样本空间不为凸时 , 算法会陷入局部最优。为了能在任意形状的样本空间上聚类 , 且收敛于全局最优解 , 学者们开始研究一类新型的聚类算法 , 称为谱聚类算法 (Spectral Clustering Algorithm) 。该算法首先根据给定的样本数据集定义一个描述成对数据点相似度的亲合矩阵 , 并计算矩阵的特征值和特征向量 , 然后选择合适的特征向量聚类不同的数据点。谱聚类算法最初用于计算机视觉、 VLSI 设计等领域 , 最近才开始用于机器学习中 , 并迅速成为国际上机器学习领域的研究热点。

谱聚类算法建立在图论中的谱图理论基础上 , 其本质是将聚类问题转化为图的最优划分问题 , 是一种点对聚类算法 , 对数据聚类具有很好的应用前景。但由于其涉及的理论知识较多 , 应用也还处于初级阶段 , 因此国内这方面的研究报道非常少。

4 常用的聚类算法

4.1 BIRCH 算法

BIRCH 算法是一种综合的层次聚类方法。它引入了两个概念:聚类特征和聚类特征树( CF 树),用于概括聚类描述。这些结构辅助聚类方法在大型数据库中取得很高的速度和可伸缩性。 BIRCH 算法对增量或动态聚类也非常有效。一个聚类特征( CF )是一个三元组,给出对象子聚类的信息汇总描述。假设某个子聚类中有 N  d 维的点或对象 {Oi} ,则该子聚类的 CF 如下

 

这里 N 是子类中点的数目, LS  N 个点的线性和(即     ), SS 是数据点的平方和(即      )。

一个 CF 树是高度平衡的树,它存储了层次聚类的聚类特征。根据定义,树中非叶子节点有后代或“孩子”,他们存储了其孩子的 CF 的总和,即汇总了关于其孩子的聚类信息。一个 CF 树有两个参数:分支因子 B 和阀值 T 。分支因子定义了每个非叶子节点孩子的最大数目,而阀值参数给出了存储在树的叶子节点中的子聚类的最大直径。这两个参数影响了结果树的大小。

Canopy 聚类算法 

    Canopy 聚类算法的基本原则是:首先应用成本低的近似的距离计算方法高效的将数据分为多个组,这里称为一个 Canopy,我们姑且将它翻译为华盖Canopy 之间可以有重叠的部分;然后采用严格的距离计算方式准确的计算在同一 Canopy 中的点,将他们分配与最合适的簇中。Canopy 聚类算法经常用于 均值聚类算法的预处理,用来找合适的 值和簇中心。

5.3、模糊 均值聚类算法 

        模糊 均值聚类算法是 均值聚类的扩展,它的基本原理和 均值一样,只是它的聚类结果允许存在对象属于多个簇,也就是说:它属于我们前面介绍过的可重叠聚类算法。为了深入理解模糊 K 均值和 K 均值的区别,这里我们得花些时间了解一个概念:模糊参数(Fuzziness Factor)。

    与 K 均值聚类原理类似,模糊 K 均值也是在待聚类对象向量集合上循环,但是它并不是将向量分配给距离最近的簇,而是计算向量与各个簇的相关性(Association)。假设有一个向量 v,有 k 个簇,v 到 k 个簇中心的距离分别是 d1,d2⋯ dk,那么 V 到第一个簇的相关性 u1可以通过下面的算式计算:

    计算 v 到其他簇的相关性只需将 d1替换为对应的距离。从上面的算式,我们看出,当 m 近似 2 时,相关性近似 1;当 m 近似 1 时,相关性近似于到该簇的距离,所以 m 的取值在(1,2)区间内,当 m 越大,模糊程度越大,m 就是我们刚刚提到的模糊参数。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值