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。分支因子定义了每个非叶子节点孩子的最大数目,而阀值参数给出了存储在树的叶子节点中的子聚类的最大直径。这两个参数影响了结果树的大小。
注:关于第四部分的具体算法由于篇幅的关系暂时不在这篇文章内引入。我会陆续在blog上贴出各种详细的聚类算法的简介和实现过程以及部分源代码。