zoukankan      html  css  js  c++  java
  • Spectral clustering谱聚类

    Basic knowledge: 

    degree matrix; similarity matrix, and Adjacency matrix;

    无向带权图模型 G=<V,E>G=<V,E>,每一条边上的权重wij为两个顶点的相似度,从而可以定义相似度矩阵W,此外还可以定义度矩阵D和邻接矩阵A,从而有拉普拉斯矩阵 L=DA;

    距离度量与邻接矩阵
      邻接矩阵某种程度上反映了图中各结点之间的相似性,普通的邻接矩阵元素非0即1,谱聚类中的邻接矩阵用KNN来计算。具体来说,遍历每一个结点xi,根据相似度(或距离)矩阵找出它的kk个最接近的点,构成xixi的邻域NiNi,然后按以下规则之一构造邻接矩阵。


    Methodology: 

    1. similarity matrix S; 通过样本点距离度量的相似矩阵S来获得邻接矩阵W. 

    构建邻接矩阵WW的方法有三类。ϵϵ-邻近法,K邻近法和全连接法。

    2. Laplacians matrix,

    拉普拉斯矩阵L=DW

     输入:样本集D=(x1,x2,...,xn)(x1,x2,...,xn),相似矩阵的生成方式, 降维后的维度k1k1, 聚类方法,聚类后的维度k2k2

        输出: 簇划分C(c1,c2,...ck2)C(c1,c2,...ck2). 

        1) 根据输入的相似矩阵的生成方式构建样本的相似矩阵S

        2)根据相似矩阵S构建邻接矩阵W,构建度矩阵D

        3)计算出拉普拉斯矩阵L

        4)构建标准化后的拉普拉斯矩阵D1/2LD1/2D−1/2LD−1/2

        5)计算D1/2LD1/2D−1/2LD−1/2最小的k1k1个特征值所各自对应的特征向量ff

        6) 将各自对应的特征向量ff组成的矩阵按行标准化,最终组成n×k1n×k1维的特征矩阵F

        7)对F中的每一行作为一个k1k1维的样本,共n个样本,用输入的聚类方法进行聚类,聚类维数为k2k2。

        8)得到簇划分C(c1,c2,...ck2)C(c1,c2,...ck2).    

    谱聚类算法的主要优点有:

        1)谱聚类只需要数据之间的相似度矩阵,因此对于处理稀疏数据的聚类很有效。这点传统聚类算法比如K-Means很难做到

        2)由于使用了降维,因此在处理高维数据聚类时的复杂度比传统聚类算法好。

        谱聚类算法的主要缺点有:

        1)如果最终聚类的维度非常高,则由于降维的幅度不够,谱聚类的运行速度和最后的聚类效果均不好。

        2) 聚类效果依赖于相似矩阵,不同的相似矩阵得到的最终聚类效果可能很不同。

  • 相关阅读:
    【转】130 个相见恨晚的超实用网站,一次性分享出来
    基于maven testng extentreport git jenkins 持续自动化测试
    TestNG与ExtentReport集成
    Jenkins集成jSonarQube
    SonarQube & Sonar Scanner
    Jenkins集成jacoco收集单元测试覆盖率
    Jenkins集成jacoco收集集成测试覆盖率
    Jacoco收集单元测试、集成测试和系统功能测试覆盖率
    SoanrQube7.4安装(Window)
    SoanrQube使用maven进行代码分析
  • 原文地址:https://www.cnblogs.com/dulun/p/12070171.html
Copyright © 2011-2022 走看看