机器学习-无监督机器学习-图聚类-21


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

1. AP聚类算法

affinity 相似度
propgaption 传播
exemplars 模范 代表
Affinity Propagation Clustering特别适合高维、多类数据快速聚类,相比传统的聚类算法,该算法算是比较新的,从聚类性能和效率方面都有大幅度的提升。

Affinity Propagation 通过数据点之间传递两种消息(responsibility and availability)直到收敛来创建聚类并更新
preference:参考度;它控制多少 exemplars样本 (orprototypes) 会成为聚类中心点
damping factor:它衰减消息的 responsibility and availability去避免数值振荡当更新这些消息时

AP算法运行前,构建一个相似度矩阵s,s就会是一个N*N矩阵
,代表Xi和Xj之间的相似度

矩阵对角线上的
尤其重要,它代表了第i条数据的preference,意味着它有多大可能成为一个exemplar。这个值会和超参数比较,值越大,越有可能产生更多的类别;值越小,产生更
少的类别。

步骤:

算法初始,将responsibility矩阵R和availability矩阵A初始化为全0矩阵

更新吸引度矩阵

更新归属度矩阵

根据衰减系数 对两个值进行衰减

算法运行后
'responsibility'矩阵 + 'availability'矩阵 得到一个最终矩阵,exemplars从最终矩阵中抽取出来,就是那些数值上大于0的作为聚类中心,根据距离远近进行划分就
可以得到聚类结果了。

2. Spectral Clustering 谱聚类

把样本数据点看成是graph图里面的节点,并且把聚类问题转换成了graph图分割问题。

建立相似度Graph:
Graph由任意两点之间的权重值
组成的矩阵,距离较远的两个点之间的边权重值较低,而距离较近的两个点之间的边权重值较高
邻接矩阵的构建方式:



实际应用中,使用全连接法来建立邻接矩阵是最普遍的,而在全连接法中使用高斯径向核RBF是最普遍的。

降维:
同一个簇中的成员有可能在给定的维度空间里面相距很远。但是在降低的维度空间中离的更近,并且可以被传统聚类算法聚到一起,所以要降维
去计算Graph图的 Laplacian Matrix。
概念:
G(V,E) Graph图 V点的集合 E边的集合
对于图中的任意一个点
,它的度
定义为和它相连的所有边的权重之和:

这样我们可以得到一个
的度矩阵D,描述的是每一个节点的度, 它是一个对角矩阵,只有主对角线有值。

图的拉普拉斯矩阵被定义为:
为了减少维度,首先,特征值和对应的特征向量被计算出来。如果聚类数为K,那么前面个k最小特征值和对应的特征向量被拿出来堆叠成一个矩阵,矩阵的列是这些特征向量。为了数学上的效率,这
个矩阵之后被归一化;

谱聚类本质--无向图切图
谱聚类是一种基于图的聚类方法,它是把数据集构成一张图,然后聚多少类就把图切成多少块
无向图G(V, E)切成互相没有连接的k个子图,

定义和 之间的切图权重为:

对于k个子图点的集合
定义切图cut为:

如何切图可以让子图内的点权重之和高,子图间的点权重之和低呢?
最下小化cut会导致如下问题:

选择了一个权重最小的边缘的点进行cut,但是却不是最优的切图,如何避免这种切图,并且找到类似图中Ideal这样的最优切图呢?

RatioCut:

考虑最大化每个子图点的个数,让每个子图里面的点个数 尽可能的多。

指示向量:


指示向量带入:


什么要带根号?带上根号之后 Ht*H 就会 = 1

切成k个子图:


为矩阵的迹 trace,切图优化目标函数为:

目标就是找到k个最小的特征值,通过找到L的最小的k个特征值,可以得到对应的k个特征向量,这k个特征向量组成一个n*k维度的矩阵,就是我们的H

Ncut切图:
由于子图样本个数多并不一定权重就大,我们切图时基于权重也更符合我们的目标,因此一般Ncut切图优于RatioCut切图

vol(Ai) 代表Ai子图里面所有边的权重总和
对应的指示向量也做相应的修改:


约束条件不一样:

令:
则:


可以发现这个式子和RatioCut基本一致,只是中间的L变成了:

可以继续按照RatioCut的思想,求出
最小的前k个特征值

posted @ 2023-12-26 00:25  jack-chen666  阅读(16)  评论(0编辑  收藏  举报