谱聚类(Spectral Clustering)详解
谱聚类(Spectral Clustering)详解
谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法——将带权无向图划分为两个或两个以上的最优子图,使子图内部尽量相似,而子图间距离尽量距离较远,以达到常见的聚类的目的。其中的最优是指最优目标函数不同,可以是割边最小分割——如图1的Smallest cut(如后文的Min cut), 也可以是分割规模差不多且割边最小的分割——如图1的Best cut(如后文的Normalized cut)。
图1 谱聚类无向图划分——Smallest cut和Best cut
这样,谱聚类能够识别任意形状的样本空间且收敛于全局最优解,其基本思想是利用样本数据的相似矩阵(拉普拉斯矩阵)进行特征分解后得到的特征向量进行聚类。
1 理论基础
对于如下空间向量item-user matrix:
如果要将item做聚类,常常想到k-means聚类方法,复杂度为o(tknm),t为迭代次数,k为类的个数、n为item个数、m为空间向量特征数:
1 如果M足够大呢?
2 K的选取?
3 类的假设是凸球形的?
4 如果item是不同的实体呢?
5 Kmeans无可避免的局部最优收敛?
……
这些都使常见的聚类问题变得相当复杂。
1.1 图的表示
如果我们计算出item与item之间的相似度,便可以得到一个只有item的相似矩阵,进一步,将item看成了Graph(G)中Vertex(V),歌曲之间的相似度看成G中的Edge(E),这样便得到我们常见的图的概念。
对于图的表示(如图2),常用的有:
邻接矩阵:E,eij表示vi和vi的边的权值,E为对称矩阵,对角线上元素为0,如图2-2。
Laplacian矩阵:L = D – E, 其中di (行或列元素的和),如图2-3。
图2 图的表示
1.2 特征值与L矩阵
先考虑一种最优化图像分割方法,以二分为例,将图cut为S和T两部分,等价于如下损失函数cut(S, T),如公式1所示,即最小(砍掉的边的加权和)。
假设二分成两类,S和T,用q(如公式2所示)表示分类情况,且q满足公式3的关系,用于类标识。
那么:
其中D为对角矩阵,行或列元素的和,L为拉普拉斯矩阵。
由:
有:
1、 L为对称半正定矩阵,保证所有特征值都大于等于0;
2、 L矩阵有唯一的0特征值,其对应的特征向量为1。
离散求解q很困难,如果将问题松弛化为连续实数值,由瑞利熵的性质知其二将你型的最小值就是L的特征值们(最小值,第二小值,......,最大值分别对应矩阵L的最小特征值,第二小特征值,......,最大特征值,且极值q相应的特征向量处取得,请参见瑞利熵(Rayleigh quotient))。
写到此,不得不对数学家们致敬,将cut(S,T),巧妙地转换成拉普拉斯矩阵特征值(向量)的问题,将离散的聚类问题,松弛为连续的特征向量,最小的系列特征向量对应着图最优的系列划分方法。剩下的仅是将松弛化的问题再离散化,即将特征向量再划分开,便可以得到相应的类别,如将图3中的最小特征向量,按正负划分,便得类{A,B,C}和类{D,E,F,G}。在K分类时,常将前K个特征向量,采用kmeans分类。
PS:
1、此处虽再次提到kmeans,但意义已经远非引入概念时的讨论的kmeans了,此处的kmeans,更多的是与ensemble learning相关,在此不述;
2、k与聚类个数并非要求相同,可从第4节的相关物理意义中意会;
3、在前k个特征向量中,第一列值完全相同(迭代算法计算特征向量时,值极其相近),kmeans时可以删除,同时也可以通过这一列来简易判断求解特征值(向量)方法是否正确,常常问题在于邻接矩阵不对称。
图3 图的L矩阵的特征值与特征向量
2 最优化方法
在kmeans等其它聚类方法中,很难刻划类的大小关系,局部最优解也是无法回避的漏病。当然这与kmeans的广泛使用相斥——原理简单。
2.1 Min cut方法
如2.2节的计算方法,最优目标函数如下的图cut方法:
计算方法,可直接由计算L的最小特征值(特征向量),求解。
2.2 Nomarlized cut方法
Normarlized cut,目标是同时考虑最小化cut边和划分平衡,以免像图1中的cut出一个单独的H。衡量子图大小的标准是:子图各个端点的Degree之和。
2.3 Ratio Cut 方法
Ratio cut的目标是同时考虑最小化cut边和划分平衡,以免像图1中的cut出一个单独的H。
最优目标函数为:
2.4 Normalized相似变换
归一化的L矩阵有:
因而L’的最小特征值与D-(1/2)E D-(1/2)的最大特征值对应。
而计算的L’相比计算L要稍具优势,在具体实用中,常以L’替代L,但是min cut和ratio cut不可以。
PS:这也是常常在人们的博客中,A说谱聚类为求最大K特征值(向量),B说谱聚类为求最小K个特征值(向量的原因)。
3 谱聚类步骤
第一步:数据准备,生成图的邻接矩阵;
第二步:归一化普拉斯矩阵;
第三步:生成最小的k个特征值和对应的特征向量;
第四步:将特征向量kmeans聚类(少量的特征向量);
4 谱聚类的物理意义
谱聚类中的矩阵:
可见不管是L、L’都与E联系特别大。如果将E看成一个高维向量空间,也能在一定程度上反映item之间的关系。将E直接kmeans聚类,得到的结果也能反映V的聚类特性,而谱聚类的引入L和L’是使得G的分割具有物理意义。
而且,如果E的item(即n)足够大,将难计算出它的kmeans,我们完全可以用PCA降维(仍为top的特征值与向量)。
上述对将E当成向量空间矩阵,直观地看符合我们的认知,但缺乏理论基础;而L(L’等)的引入,如第2节所述,使得计算具有理论基础,其前k个特征向量,也等价于对L(L’等)的降维。
因而聚类就是为图的划分找了理论基础,能达到降维的目的。
感谢志勇;
其中不少图出源于Mining of Massive Datasets,对于同仁们的布道授业,一并感谢。
------
递归关系求解
问题
假设:一个反应器中有两类粒子α和β,设每秒钟一个α粒子分裂成3个β粒子,而每秒钟一个β粒子分裂成一个α粒子和两个β粒子。假如在t=0时:反应器中有一个α粒子,求t秒时反应器中α粒子和β粒子的数目。
根据关系列出递归关系
a(t) = b(t-1)
b(t) = 3*a(t-1) + 2*b(t-1)
参考程序

#include <stdio.h>
#include <stdlib.h>
#define A_size 5
int aa(int size) //aa(t)表示t时刻α的个数
{
if (size == 0)
return 1;
else
return bb(size-1);
}
int bb(int size) //bb(t)表示t时刻β的个数
{
if (size == 0)
return 0;
else
return 3 * aa(size-1) + 2 * bb(size-1);
}
int main()
{
printf("%d\n", aa(A_size) + bb(A_size));
return 0;
}

结果:243

a(t) = b(t-1)
b(t) = 3*a(t-1) + 2b(t-1)
得:
a(t-1)=b(t-2)
b(t) = 3*a(t-1) +2*b(t-1)
=3* b(t-2) + 2* b(t-1) (t>=2)
根据已知条件知:a(0)=1 a(1)=0 b(0)=0 b(1)=3

得到递归关系:b(t) = 2*b(t-1) + 3*b(t-2),这是一个常系数齐次线性方程。为了求解看下解常系数齐次线性方程的一般方法。
解常系数齐次线性方程的一般方法
首先区分
特征方程与特征值
求解通解的步骤
1.根据递归关系得出特征方程,求解方程得到特征根;
2.表示出通解的一般形式(分为是否有重根);
3.代入初始值得到系数,从而得到通解。
就本题演示一般步骤
1.把递归关系b(n)=2*b(t-1) + 3*b(t-2),表示为特征方程:x2=2x+3,得到特征值-1和3;
2.没有重根,通解表示为b(t) = c1*(-1)n + c2*(3)n;
3.带入初始值,得到c1=-3/4 c2 = 3/4,
从而得到通解:b(t) = -3/4 *(-1)n + 1/4 *(3)n+1
a(t) = -3/4 *(-1)n-1 + 1/4 *(3)n (t>=2)
谱聚类(Spectral Clustering)详解的更多相关文章
- 【聚类算法】谱聚类(Spectral Clustering)
目录: 1.问题描述 2.问题转化 3.划分准则 4.总结 1.问题描述 谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法——将带权无向图划分为两个或两个以上的最优子图 ...
- 谱聚类 Spectral Clustering
转自:http://www.cnblogs.com/wentingtu/archive/2011/12/22/2297426.html 如果说 K-means 和 GMM 这些聚类的方法是古代流行的算 ...
- 谱聚类算法(Spectral Clustering)优化与扩展
谱聚类(Spectral Clustering, SC)在前面的博文中已经详述,是一种基于图论的聚类方法,简单形象且理论基础充分,在社交网络中广泛应用.本文将讲述进一步扩展其应用场景:首先是User- ...
- 谱聚类算法(Spectral Clustering)
谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法--将带权无向图划分为两个或两个以上的最优子图,使子图内部尽量相似,而子图间距离尽量距离较远,以达到常见的聚类的 ...
- Spectral Clustering
谱聚类算法(Spectral Clustering)优化与扩展 谱聚类(Spectral Clustering, SC)在前面的博文中已经详述,是一种基于图论的聚类方法,简单形象且理论基础充分,在 ...
- 基于谱聚类的三维网格分割算法(Spectral Clustering)
谱聚类(Spectral Clustering)是一种广泛使用的数据聚类算法,[Liu et al. 2004]基于谱聚类算法首次提出了一种三维网格分割方法.该方法首先构建一个相似矩阵用于记录网格上相 ...
- 谱聚类(spectral clustering)原理总结
谱聚类(spectral clustering)是广泛使用的聚类算法,比起传统的K-Means算法,谱聚类对数据分布的适应性更强,聚类效果也很优秀,同时聚类的计算量也小很多,更加难能可贵的是实现起来也 ...
- 转:浅谈Spectral Clustering 谱聚类
浅谈Spectral Clustering Spectral Clustering,中文通常称为“谱聚类”.由于使用的矩阵的细微差别,谱聚类实际上可以说是一“类”算法. Spectral Cluste ...
- 谱聚类(Spectral clustering)分析(1)
作者:桂. 时间:2017-04-13 19:14:48 链接:http://www.cnblogs.com/xingshansi/p/6702174.html 声明:本文大部分内容来自:刘建平Pi ...
随机推荐
- MVC应用程序使用Wcf Service
原文:MVC应用程序使用Wcf Service 前一篇Insus.NET有演示过MVC应用程序使用Web Service, 此篇Insus.NET想继续演示Service,不过是WCF Service ...
- 【solr这四个主题】在Tomcat 部署Solr4.x
1.安装Tomcat (1)下载并解压缩到/opt/tomcat在 # cd /opt/jediael # tar -zxvf apache-tomcat-7.0.54.tar.gz # mv apa ...
- Cocos2d-x 2.3.3版本 FlappyBird
Cocos2d-x 2.3.3版本 FlappyBird 本篇博客基于Cocos2d-x 2.3.3, 介绍怎样开发一款之前非常火的一款游戏FlappyBird.本篇博客内容大纲例如以下: 1 ...
- YUV格式转换RGB(基于opencv)
在编写代码将需要处理YUV格从每个视频帧中提取,然后将其保存为图片.有两种常见的方法在线,第一种是通过opencv自带cvCvtColor,可是这样的方法有bug.得到的图片会泛白.另外一种方法是公式 ...
- 创建android phonegap项目
一. 首先需要在Eclipse中创建一个Android项目 打开Eclipse,打开File->New->Project 选择Android Application Project点击Ne ...
- C# DataTable 转换成JSON数据
原文:C# DataTable 转换成JSON数据 using System; using System.Collections.Generic; using System.Data; using S ...
- codeforces #257 C称号Jzzhu and Chocolate
职务地址:http://codeforces.com/contest/450/problem/C 这次CF的时候绝壁脑残了. ..A题和C题都出现了脑残失误... 唯一一个AC的B题还是被HACK了. ...
- 打开VMware的系统出错
打开VMware系统时,出现错误 “Invalid configuration file. File "I:/My Virtual Machines/Windows XP english P ...
- 国内外最全面和主流的JS框架与WEB UI库
当下对于网站前段开发人员来说,很少有人不使用一些JS框架或者WEB UI库,因此这些可以有效提高网站前段开发速度,并且能够统一开发环境,对于不同浏览器的兼容性也不需要程序员操心,有了这些优点,当然大家 ...
- "手机信号放大器" 让手机信号增强的办法
我的住处信号及其的差,电话基本打不进来,放大器的话便宜的也得一百多,于是自己尝试各种办法让自己的手机有信号,于是奇迹般的成功了: 将手机放于铁缸内,并45度角斜放,刚好淹没手机为佳.于是信号奇迹般的3 ...