当前位置:   article > 正文

完整的最简单的谱聚类python代码_karateclub聚类

karateclub聚类

针对karate_club数据集,做了谱聚类。由于是2-way clustering,比较简单,得到了图的新的表示空间之后,没有做k-means,仅仅针对正规化后的拉普拉斯矩阵的第二特征值做了符号判断,这和Spectral Clustering Tutorial 一文中的描述一致。

引用了numpy scipy matplotlib networkx包

  1. #coding=utf-8
  2. #MSC means Multiple Spectral Clustering
  3. import numpy as np
  4. import scipy as sp
  5. import scipy.linalg as linalg
  6. import networkx as nx
  7. import matplotlib.pyplot as plt
  8. def getNormLaplacian(W):
  9. """input matrix W=(w_ij)
  10. "compute D=diag(d1,...dn)
  11. "and L=D-W
  12. "and Lbar=D^(-1/2)LD^(-1/2)
  13. "return Lbar
  14. """
  15. d=[np.sum(row) for row in W]
  16. D=np.diag(d)
  17. L=D-W
  18. #Dn=D^(-1/2)
  19. Dn=np.power(np.linalg.matrix_power(D,-1),0.5)
  20. Lbar=np.dot(np.dot(Dn,L),Dn)
  21. return Lbar
  22. def getKSmallestEigVec(Lbar,k):
  23. """input
  24. "matrix Lbar and k
  25. "return
  26. "k smallest eigen values and their corresponding eigen vectors
  27. "
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/764380
推荐阅读
相关标签
  

闽ICP备14008679号