图聚类
基于图的聚类。注意这里的图指的不是图片,而是顶点+边构成的图。
将样例用图表示,则通过对图中顶点的划分完成聚类。
图的表示
- 顶点:样本点
- 聚类:顶点的划分
- 边:样本点的相似度
表示无向图,为点的集合,E为边集,W为权重,表示节点 、 之间相似度
图的划分
图的划分是将图完全划分成若干个子图,个子图无交集。
划分要求
- 同子图内的点相似度高
- 不同子图间的点相似度低
损失函数
由划分要求,我们给出损失函数为 ,所以我们的目标就是最小化这个损失函数。
图的划分两种常用方法
- 谱聚类:连续优化方法。通过分析特征向量与特征值,获得聚类结果。
- 最小割:离散优化方法。将最小割转化为最大网络求解。
这里着重讲解一下谱聚类算法。
谱聚类
是一种基于图论的聚类方法,通过对样本数据的拉普拉斯矩阵的特征向量进行分析来完成聚类。
算法流程
- 计算拉普拉斯矩阵 L 。L=D-W , 其中W为权重矩阵,W为对称矩阵,且主对角线元素都为0;D为度矩阵,Dij,当i!=j时为0,否则Dii为以i为一顶点的所有边权重之和;L为半正定矩阵(即所有特征值非负值),最小特征值为0,且对应的特征向量为单位向量
- 计算L的特征值与特征向量
- 取出最小的前k个特征值对应的特征向量构成一个矩阵 ,将矩阵的每一行看做一个样本点并对其进行K-means聚类,得到k个簇
Example
已知图G:
则:
(1)计算邻接矩阵W与度矩阵D:
i/j | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
1 | 0.0 | 0.8 | 0.6 | 0.0 | 0.1 | 0.0 |
2 | 0.8 | 0.0 | 0.8 | 0.0 | 0.0 | 0.0 |
3 | 0.6 | 0.8 | 0.0 | 0.2 | 0.0 | 0.0 |
4 | 0.0 | 0.0 | 0.2 | 0.0 | 0.8 | 0.7 |
5 | 0.1 | 0.0 | 0.0 | 0.8 | 0.0 | 0.8 |
6 | 0.0 | 0.0 | 0.0 | 0.7 | 0.8 | 0.0 |
i/j | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
1 | 0.5 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
2 | 0.0 | 1.6 | 0.0 | 0.0 | 0.0 | 0.0 |
3 | 0.0 | 0.0 | 1.6 | 0.0 | 0.0 | 0.0 |
4 | 0.0 | 0.0 | 0.0 | 1.7 | 0.0 | 0.0 |
5 | 0.0 | 0.0 | 0.0 | 0.0 | 1.7 | 0.0 |
6 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
计算得拉普拉斯矩阵L:
i/j | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
1 | 1.5 | -0.8 | -0.6 | 0.0 | -0.1 | 0.0 |
2 | -0.8 | 1.6 | -0.8 | 0.0 | 0.0 | 0.0 |
3 | -0.6 | -0.8 | 1.6 | -0.2 | 0.0 | 0.0 |
4 | 0.0 | 0.0 | -0.2 | 1.7 | -0.8 | -0.7 |
5 | -0.1 | 0.0 | 0.0 | -0.8 | 1.7 | -0.8 |
6 | 0.0 | 0.0 | 0.0 | -0.7 | -0.8 | 1.5 |
(2)由计算L的次小特征向量:
,次小特征向量为
由聚类按其值的正负分成了两类。
谱聚类用于图像分割
对于给定的一组样例,如果要用谱聚类方法,我们首先要构建一个图G(V,E)出来。这样才能算出W。
对于图像数据,我们定义Wij为像素i与像素j之间的相似度。若图像是a*a的,则W为a^2 * a^2的
, i,j为 第i和第j节点的像素值