1.分级聚类(Hierarchical Clustering)
凝聚的层次聚类(自底向上)
分裂的层次聚类(自顶向下)
1.1 自底向上的分级聚类步骤
–(1) 初始化:每个样本形成一个类
–(2) 合并:计算任意两个类之间的距离(或相似性),将距离最小(或相似性最大)的两个类合并为一个类,记录下这两个类之间的距离(或相似性),其余类不变。
–(3) 重复步骤 (2): 直到所有样本被合并到两个类之中。
1.2主要考虑两个问题:样本与样本的距离,团簇与团簇之间的距离
(一般的时候,团簇与团簇之间的距离可以通过团簇中的样本来表征,但是也有一些情况,要为团簇专门定义距离)
样本之间的距离:欧氏距离、马式距离、城区距离、匹配距离、相关系数、高斯相似性函数、余弦、距离倒数…(根据不同 的任务要求进行选择和使用)
2.谱聚类
2.0图论基本概念
图 G : 由顶点集 V 和边集 E 所构成,记为 G(V,E)。根据边是否有向,可以分为无向图或者有向图。
邻接矩阵 W :有链接用1,没连接用0.
度矩阵 D:与顶点相连接的边的条数.(注意到,D是W的行和)
拉普拉斯矩阵 L=D-W. (L的行和为零,L*1=0*1,即L有一个特征值为零,对应的特征向量是1;另外,L 是半正定矩阵)
例如:
2.1 基于数据集的图构造
把每一个数据点视为顶点,把数据点之间的亲和度用权重表示形成边,这样得到的相似度矩阵不再是只有0和1的矩阵了,形状如下:
图构造 G(V, E):分为全连接和局部连接,局部链接中K-近邻和固定半径等方法较为常见。
这个时候顶点的度D,变成了所有与该点相连的边的权重之和。
拉斯矩阵还是按照原来的方法得到 :L=D-W.
子图 的势 |A|: 等于其所包含的顶点个数。
子图 的体积 vol(A):等于其中所有顶点的度之和。
边割:指边 E 的一个子集,去掉该子集中的边,图就变成两个两通子图。
子图相似度:子图 A 与子图 B 的相似度定义为连接两个子图所有边的权重之和.(连接越紧密相似度越大,权重之和越大)
子图之间的切割:定义为其相似度。
最小二分切割 (Minimum bipartitional cut):在所有的图切割中,找一个最小代价的切割,将图分为两个不连通的子图。也就是说,切开之后,两个子图之间的相似性要最小。
归一化最小二分切割:一个基本的假设是希望两个子图的规模不要相差太大。(排除了所谓野点的影响)
拉普拉斯矩阵L 的一个性质,0特征值的重数等于连通子图的个数。(没说为什么)
也就是说:如果图 G 具有 k 个连通子图,若每个连通子图为一个聚类,那么采用其拉普拉斯矩阵的零特征值对应的特征向量可以将这些子图分离开来。这也是为什么能把聚类和图联系起来,解释了谱聚类中谱的来源。
实际应用中:数据簇之间并非是完全分离的。这就是说,图可能仍然是连通的。在此情形下,自然地,可以考察拉普拉斯矩阵最小的特征值对应的特征向量,并由这些特征向量组成新的特征空间。
2.2谱聚类
谱聚类算法建立在图论中的谱图理论基础之上,其本质是将聚类问题转化为一个图上的关于顶点划分的最优问题。
由2.1节最后的部分的理论得到,一旦拉普拉斯矩阵得到构造,由其最小的几个特征对应的特征向量所构成的空间就得到确定。
有两种构造归一化图拉普拉斯矩阵的方法:
核心步骤:
a.利用点对之间的相似性,构建亲和度矩阵;
b.构建拉普拉斯矩阵;
c.求解拉普拉斯矩阵最小的特征值对应的特征向量(通常舍弃零特征所对应的分量全相等的特征向量);
d.由这些特征向量构成样本点的新特征,采用K-means等聚类方法完成最后的聚类。
以下贴出最朴素的谱聚类方法,以及历史上较为出名的两种方法: