[关闭]
@hainingwyx 2017-06-09T07:22:57.000000Z 字数 4446 阅读 875

Multiway Spectral Clustering with Out-of-Sample Extensions through Weighted Kernel PCA

聚类


已经介绍了基于WKPCA的谱聚类算法,下面将其推广到多路谱聚类,并给出编码体制。

知识预备

需要先掌握KPCA和Spectral Clustering,这篇文章是博客的进一步延伸和扩展,强烈建议结合上一篇,这篇和上一篇相同或相似的细节不再重复。

算法原理

将度矩阵的逆作为加权矩阵,并引入正则项、特征维向量、偏置项,将导出以下优化问题:

每一个特征维向量根据簇标识提供二分类的依据。

类似的,用Lagrangian解最优化问题:

当满足以下条件时最优:

其中

可以计算出偏置项为:

消除 得到特征值分解问题:

其中

测试数据的特征维基为:

训练数据中的特征维坐标向量的符号和特征方程的特征向量的符号是一致的。即:

对于测试数据,特征维空间的的坐标向量为:

其类别划分(需要结合下面的编\解码模块)规则如下:

编\解码

对于不同的簇,使用码字来实现(码字的长度为)。以上就是编码簿的框架。
具体的编码簿是通过训练数据得到的:对于训练数据指示器,通过上面的分析即。对于上面引入的偏置项也就是数据均值为0,使得这一步实现非常方便,否则这里是不成立的。
对于特征向量数量 的选择:原本中的描述是:(因为第一个特征向量实现了二分类,所以为了编码 个簇需要特征向量的数量 。解码则是需要计算编码簿的聚类知识器 ,选择最小的Hamming距离的码字作为标签)。
在参考文献2中,给出了更加详细的解释。对偶问题的矩阵在特征值为1时,有k-1个分段特征向量。编码簿可以从训练过程中获得的投影矩阵的行得到,即,因为已经提供了二分类,所以k-1个投影变量足够编码k个簇。
我的理解是:因为考虑到ECOC,码字应该足够长。ECOC本身码字长度和类别数是没有直接关系的,所以我猜测作者的意思可能是第一个特征向量能够单独区分出一个最小类,第二个也能从剩下的一类中单独划分出一个最小类,这么算的话就是k-1。第一个特征向量如何能保证划分出的就是一个最小类呢?

算法流程

![算法][1]

BLF

利用特征空间的特征相连的分段常量特性,有队验证集的划分平均线性度量

其中,是协方差矩阵的特征值

其中,,是验证集划分的簇中归一化矩阵。表示最大特征值对应的特征向量包含的方差。如果簇的特征向量是共线的,所有的方差就包含在第一个特征向量中,有。。另一方面,如果方差平均分布在每一个向量中,,公式中的多余的项是为了使均匀分布在每一向量中时,linefit为0,是保证分布在第一个向量中时,linefit为1。最后再取平均即可。
我觉得作者应该是从KPCA出发的,如果正确划分的话,那么对正确划分的簇做KPCA,主成分应该在最大的特征值对应的特征向量之中。
时,为实现二分类,只需要一个特征向量。考虑数据矩阵,其中第m行第一列元素为投影变量,第m行第二列元素

簇的均衡性可以通过以下方法:

结合balance和linefit,有

其中是控制linefit和balance之比的用户定义的参数,

实际代码稍有出入。协方差矩阵使用cov函数直接求,这样的结果是。linefit并不是直接求平均,而是根据最大的特征值求加权平均。balance是求的对数之比。

代码下载

下载地址

参考文献

[1]. Alzate C, Suykens J A K. Multiway spectral clustering with out-of-sample extensions through weighted kernel PCA[J]. IEEE transactions on pattern analysis and machine intelligence, 2010, 32(2): 335-347.

[2].soft kernel clustering

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注