作者:Neerja Doshi
编译:ronghuaiyang
谱聚类,了解直觉以及背后的数学原理
聚类是一种广泛使用的无监督学习方法。聚类是这样分组的:集群中的点彼此相似,而与其他集群中的点不太相似。因此,如何在数据中寻找模式并为我们分组取决于算法,根据使用的算法,我们可能最终得到不同的集群。
有两种广泛使用的聚类方法:
两者之间的区别可以很容易地通过这个例子来说明:
在谱聚类中,数据点被视为图的节点。因此,集群被视为一个图的分割问题。然后将节点映射到一个低维空间,该空间可以很容易地进行隔离,从而形成集群。需要注意的重要一点是,没有对集群的形状/形式做任何假设。
谱聚类的步骤有哪些?
谱聚类包括三个步骤:
步骤1—计算相似图
我们首先创建一个无向图G = (V, E),顶点集V = {v1, v2,…,vn} = 1,2,…,n个数据中的观察值。这可以用一个邻接矩阵来表示,该矩阵将每个顶点之间的相似性作为其元素。要做到这一点,我们可以计算:
这里的参数σ控制邻域的宽度,类似于ε-neighborhood图中的参数ε。
因此,当我们为这些图中的任意一个创建邻接矩阵时,当点很近时Aij ~ 1,当点很远时Aij0。
考虑一下拥有1~4节点的图,权值(或相似度)wij及其邻接矩阵:
步骤2—将数据投影到低维空间
正如我们在图1中所看到的,相同集群中的数据点可能也很远—甚至比不同集群中的数据点还要远。我们的目标是空间转换,当这两个点很近的时候,它们总是在同一个集群中,当它们很远的时候,它们是在不同的集群中。我们需要把观测结果投射到低维空间。为此,我们计算图的拉普拉斯矩阵,这只是图的另一种矩阵表示形式,对于查找图的有趣的属性非常有用。这可以计算为:
计算图的拉普拉斯矩阵
我们上面例子的图的拉普拉斯矩阵
计算图的拉普拉斯矩阵L的全部目的是找到它的特征值和特征向量,以便将数据点嵌入低维空间。现在,我们可以继续查找特征值。我们知道:
我们考虑下面的例子:
我们计算L的特征值和特征向量。
步骤3—创建集群
对于这一步,我们使用对应于第二个特征值的特征向量来为每个节点赋值。计算时,第二个特征值为0.189,对应的特征向量v2 =[0.41, 0.44, 0.37, -0.4, -0.45, -0.37]。
为了得到2聚类(2个不同的聚类),我们首先将v2的每个元素分配给节点,例如{node1:0.41, node2:0.44,…node6: -0.37}。然后,我们对节点进行拆分,使值为> 0的所有节点都位于一个集群中,而所有其他节点都位于另一个集群中。因此,在本例中,我们在一个集群中得到节点1、2和3,在第二个集群中得到节点4、5和6。
需要注意的是,第二个特征值表示图中节点的紧密连接程度。对于好的、干净的划分,降低第2个特征值,让聚类变得更好。
特征向量v2给出一个2分聚类
对于k聚类,我们需要修改拉普拉斯矩阵,对它进行归一化
我们得到:
归一化的拉普拉斯矩阵
谱聚类的优缺点
优点:
缺点:
英文原文:https://towardsdatascience.com/spectral-clustering-82d3cff3d3b7
更多内容,请关注微信公众号:AI公园