针对karate_club数据集,做了谱聚类。由于是2-way clustering,比较简单,得到了图的新的表示空间之后,没有做k-means,仅仅针对正规化后的拉普拉斯矩阵的第二特征值做了符号判断,这和Spectral Clustering Tutorial 一文中的描述一致。
引用了numpy scipy matplotlib networkx包
#coding=utf-8
#MSC means Multiple Spectral Clustering
import numpy as np
import scipy as sp
import scipy.linalg as linalg
import networkx as nx
import matplotlib.pyplot as plt
def getNormLaplacian(W):
"""input matrix W=(w_ij)
"compute D=diag(d1,...dn)
"and L=D-W
"and Lbar=D^(-1/2)LD^(-1/2)
"return Lbar
"""
d=[np.sum(row) for row in W]
D=np.diag(d)
L=D-W
#Dn=D^(-1/2)
Dn=np.power(np.linalg.matrix_power(D,-1),0.5)
Lbar=np.dot(np.dot(Dn,L),Dn)
return Lbar
def getKSmallestEigVec(Lbar,k):
"""input
"matrix Lbar and k
"return
"k smallest eigen values and their corresponding eigen vectors
"""
eigval,eigvec=linalg.eig(Lbar)
dim=len(eigval)
#查找前k小的eigval
dictEigval=dict(zip(eigval,range(0,dim)))
kEig=np.sort(eigval)[0:k]
ix=[dictEigval

本文展示了使用Python进行谱聚类的简单步骤,特别针对karate_club数据集进行了分析。通过引入numpy, scipy, matplotlib和networkx库,实现了对2-way clustering的图的新的表示空间构建,并未直接应用k-means,而是基于拉普拉斯矩阵的第二特征值进行符号判断,遵循Spectral Clustering Tutorial的指导。"
114112495,10543047,Java调用SAP WebService登录实现详解,"['Java WebService', 'SAP集成', '编码解码']
1039

被折叠的 条评论
为什么被折叠?



