谱聚类

来源:互联网 发布:怎么知道淘宝店铺降权 编辑:程序博客网 时间:2024/06/16 22:15

谱聚类

1.基本表示:

定义了邻接矩阵W,以及一个对角阵D,以及vol(A).

2.优点

Spectral Clustering 和传统的聚类方法(例如 K-means)比起来有不少优点:1)和 K-medoids 类似,Spectral Clustering 只需要数据之间的相似度矩阵就可以了,而不必像 K-means 那样要求数据必须是 N 维欧氏空间中的向量。2)由于抓住了主要矛盾,忽略了次要的东西,因此比传统的聚类算法更加健壮一些,对于不规则的误差数据不是那么敏感,而且 performance 也要好一些。许多实验都证明了这一点。事实上,在各种现代聚类算法的比较中,K-means 通常都是作为 baseline 而存在的。3)计算复杂度比 K-means 要小,特别是在像文本数据或者平凡的图像数据这样维度非常高的数据上运行的时候。

3.以图分割的方式看待聚类问题

聚类就是将一些离散的点根据相似度分割为一些簇,或者说一些团体(group).如果给定一个图,而点就是图里面的节点,那么上述问题可以重新描述为:想找到一个图的划分,使得不同的子图之间的差异很大,很子图之内的差异很小。因此,图分割问题可以看成聚类问题的一个近似问题。图分割或者说找到最小分割,也就是mincut,使得下面的式子最小。但是这样的objective function往往会导致产生一些孤立的点,因为这样的点loss function是最小的,因此又产生了rationcut和normalized cut.但是这样的loss function求解问题是Np的,因此需要一定的放松,而谱聚类就是放松后求解问题。

4.图拉普拉斯

图拉普拉斯矩阵L=D-W,它有几个性质:根据这些性质,能够得到L的特征值0的个数就是能分的子图个数。

5.算法

  1. 根据数据构造一个 Graph ,Graph 的每一个节点对应一个数据点,将相似的点连接起来,并且边的权重用于表示数据之间的相似度。把这个 Graph 用邻接矩阵的形式表示出来,记为 W 。一个最偷懒的办法就是:直接用我们前面在 K-medoids 中用的相似度矩阵作为 W 。
  2. 把 W 的每一列元素加起来得到 N 个数,把它们放在对角线上(其他地方都是零),组成一个 N\times N的矩阵,记为 D 。并令 L = D-W 。
  3. 求出 L 的前 k 个特征值(在本文中,除非特殊说明,否则“前 k 个”指按照特征值的大小从小到大的顺序)\{\lambda\}_{i=1}^k 以及对应的特征向量 \{\mathbf{v}\}_{i=1}^k 。
  4. 把这 k 个特征(列)向量排列在一起组成一个 N\times k 的矩阵,将其中每一行看作 k 维空间中的一个向量,并使用 K-means 算法进行聚类。聚类的结果中每一行所属的类别就是原来 Graph 中的节点亦即最初的N 个数据点分别所属的类别。
6.构建图的方法 

查看原文:http://www.hahaszj.top/mess/%e8%b0%b1%e8%81%9a%e7%b1%bb/218
原创粉丝点击