Python实现谱聚类 SpectralClustering

  • 致敬吴恩达老师

  • 对于kmeans等聚类方法,往往局限于欧氏空间的特征关系。如果对于流形上分布的数据使用全局欧氏空间特征,算法就不会收敛,比如下面的moon数据集。

  • 思想:把聚类问题转换成图切割问题,通过图论方法完成优化,得出聚类结果。
    Python实现谱聚类 SpectralClustering_第1张图片
    *由于模块较多,不便于直接贴出来。代码见个人资源下载链接。
    *运行方法:直接运行 spectral_moon_data.py 即可得到上面的效果!

  • 整体流程:

  1. 利用点对相似性,构建亲和度矩阵
  2. 构建拉普拉斯矩阵
  3. 求拉普拉斯矩阵最小特征值对应的特征向量
  4. 由这些特征向量构成样本的新特征,使用K_Means等聚类方法完成最后的聚类

(以上是引用的模式识别课程PPT

解释一下第四点,聚类完后,要根据索引映射到原始数据集,就可以了。具体实现可以下载我的代码进行学习。

Liu Yaohua 2019.11.28 in UCAS

你可能感兴趣的:(模式识别)