机器学习之谱聚类算法


        参考https://www.cnblogs.com/pinard/p/6221564.html

        谱聚类(spectral clustering)是一种基于图论的聚类算法,第一步是构图:将数据集中的每个对象看做空间中的点V,将这些点之用边E连接起来,距离较远的两个点之间的边权重值较低、距离较近的两个点之间的边权重值较高,这样就构成了一个基于相似度的无向权重图G(V,E)。第二步是切图:按照一定的切边规则将图切分为不同的子图,规则是使子图内的边权重和尽可能大,不同子图间的边权重和尽可能小,从而达到聚类目的。

        与传统的聚类方法相比,谱聚类可以对任意形状的数据集进行聚类,计算量较小、实现简单、聚类效果好并能收敛于全局最优解。

一、谱聚类构图

    1、无向权重图G(V,E)

         

        V为数据集中所有点(v1,v2,...,vm),定义任意两点vivj之间的权重为wij,由无向图的性质可知wij=wji

        对于有连接边的两点wij>0;对于没有连接边的点wij=0。

    2、度矩阵D

        无向权重图中任意一点vi的度di定义为它和其它点的边的权重之和

            

        利用每个点度的定义,得到一个m*m的度矩阵D,这是一个对角矩阵,主对角线元素为di,其他位置的元素全为零。

            

 

    3、相似矩阵W

        用所有点之间的权重值构建图的m*m相似矩阵W,第i行第j列对应权重wij

            ,对角线元素w11=w22=...=wmm=0

        距离较远的两个点之间权重较低,较近的两个点权重较高,W有三种构建方法:

        (1)ε-近邻法:

            设置一个阈值ε,用欧氏距离sij来度量任意两点vivj的距离,如果距离小于阈值则将二者连接起来:

            sij>ε → wij=0;sij≤ε → wij=ε。这种度量方式很不精确,很少使用。

        (2)k-近邻法:

            利用kNN算法遍历所有的样本点,取每个样本最近的k个点作为近邻连接起来,即只有与样本最近的k个点之间wij>0。

            注意此时会形成有向图wij≠wji,有两种方法可以转化为无向图:

                a. 只要有一个点在另一个点的k近邻当中,则保留sij

                    

                b. 两个点都必须互为k近邻的时,才保留sij

                    

        (3)全连接法:

            将所有的点都相互连接起来,所有边的权重为相似度。此方法所有的点权重都值大于0,可以选择不同的核函数定义边权重,常用的有多项式核函数、高斯核函数、拉普拉斯核函数、Sigmoid核函数等,最常用的是高斯核函数RBF:

                

        前两种方法可以构建出稀疏矩阵,适合大数据集;第三种则相反,在大数据集中速度速度较低。

    4、拉普拉斯矩阵L

        定义L=D-W,性质:

        (1)L是对称的、半正定矩阵;

        (2)特征值中0出现的次数就是图连通区域的个数;

        (3)最小特征值是0,因为L矩阵每一行的和均为0;

        (4)最小非零特征值是图的代数连通度;

        (5)对于任意向量f=(f1,f2,...,fm)T,有:

                

                证明:由于D是对角矩阵,wij=wji,且

                            

                            


二、谱聚类切图Graph Cut

        将无向图G(V,E)切成若干相互没有连接的k个子图(sub-Graph)A1,A2,...Akp=1,2,...,k,

        其中Ap∩Ap=∅,A1∪A2∪...∪Ak=V

        对于任意的子图ApAp⊂V,定义切图的权重为:

            

        对于k个子图集合A1,A2,...Ak,定义切图cut为:

            

        其中Ap的补集,就是除了Ap以外其他V的子集的并集。

         被切断的边的权值总和称为cut值,为了让这个值尽可能小,有以下几种切图方法:

    1、最小割集准则(Minimum Cut)

        选择权重最小的边切割,容易产生只包含几个顶点的较小子图的歪斜分割现象。虽然可以最小化cut值,但这种方式往往不是我们需要的最优切图。

         

    2、比例割集准则(Ratio Cut)

        这种切图方式不仅考虑最小化cut值,同时考虑最大化每个子图包含的点的个数:

            

        对{A1,A2,...Ak}引入一个k*m维的指示矩阵H={h1,h2,...,hk},其中hp是一个m维向量。用i,j∈Rm表示样本下标,p∈Rk表示子集下标。每个子集Ap对应一个指示向量hp,则样本q对子集p的指示为:

            

            

            

        因此求最小化RatioCut的值的问题就转化为求arg minH tr(HTLH),且HTH=I。根据普通瑞利商Rayleigh quotient的定义和拉格朗日乘子法:

            ,其中c为常数

            

        可知R的最大值是L的最大特征值,R的最小值是L的最小特征值。最小的若干个特征值相加,最终使得RatioCut达到最小。通过找到k(k远小于m)个最小特征值,使用维度规约的思想近似解决这个NP难问题。由于损失了部分信息,导致优化后的H不能完全指示各样本的归属,因此对m*k维的新矩阵标准化后的每个特征向量进行传统聚类,得到最终的谱聚类结果。

 

    3、规范割集准则(Normalized Cut)

        Ncut这种切图方式是对RatioCut的一种改进,将RatioCut的分母换成子图内所有顶点间连接权值之和vol(Ap),由于子图样本个数多并不一定权重就大,因此这种基于权重的切图方法更符合实际情况。

                    

        Ncut切图对H进行了改进:

            

            

        此时HTH≠I,而是HTDH=I:

            

        令H=D-1/2F,则HTLH=FTD-1/2LD-1/2F,HTDH=FTF=I,因此优化目标变为:arg minF tr(FTD-1/2LD-1/2F) s.t. FTF=I

        D-1/2LD-1/2相当于对L进行了一次标准化,即。之后的步骤类似RatioCut。

 三、谱聚类算法总结

        谱聚类是对数据拉普拉斯矩阵的特征向量进行聚类的算法,其本质是将聚类问题转换为图的最优化分问题,是一种点对聚类算法。常用的相似矩阵生成方法是基于k近邻或高斯核的全连接方式,常用的切图方式是Ncut,最后一步的传统聚类常用K-means。

    1、谱聚类的构建过程主要步骤:

        (1)构建表示对象相似度的矩阵W,W=Σijwiji,j=1,2,...,m;

        (2)构建度矩阵D(对角矩阵);

        (3)计算拉普拉斯矩阵L,L=D-W,对L进行标准化D-1/2LD-1/2

        (4)计算前k个最小特征值的特征向量;

        (5)将k个特征向量组成m*k维的矩阵,按行进行标准化得到矩阵F;

        (6)对矩阵F中的每一行作为一个k维样本,共m个样本,用传统方法进行聚类得出最终结果。

         

    2、谱聚类的特点

        (1)处理稀疏数据的聚类很有效;

        (2)由于使用降维的方法,处理高维数据时复杂度比传统聚类算法好;

        (3)聚类效果依赖于相似矩阵,不同的相似矩阵得到的最终聚类效果可能很不相同;

        (4)最小特征值k的数目不容易给定;

        (5)文档聚类中和模糊聚类的方法结合的问题;

        (6)计算大规模数据集矩阵的时间、空间效率较差。

    3、应用场景

        图形聚类、计算机视觉、非凸球形数据的聚类等。

        在存储图片的时候,可在清晰度和图片大小两方面进行权衡,将一个清晰的图片转换成为一个相对不太清晰的图片,但是存储的图片大小会下降很多。基于聚类算法的减小图片大小的方式,使用K-means算法对图片进行聚类矢量化图片,从而达到压缩图片的效果。

    4、各个聚类算法比较:

算法

效率

聚类形状

异常数据的抗干扰性

高维性

K-means

一般

凸形

较低

较低

BIRCH

很高

凸形

较低

较低

CURE

较高

任意形状

很高

一般

DBSCAN

一般

任意形状

较低

较高

Spectral

较高

任意形状

不敏感

较高

 

猜你喜欢

转载自blog.csdn.net/liuy9803/article/details/80832249