正在学习超图聚类,看了聚类集成经典的论文,Cluster Ensembles -A Knowledge Reuse Framework for Combining Multiple Partitions,用谱聚类简单验证了超图聚类,贴出代码,希望大家指正,有问题请指教。
原论文部分:
代码:
import numpy as np import pandas as pd from pandas import Series,DataFrame from sklearn.cluster import KMeans import matplotlib.pyplot as plt A=np.array([[0,3,2,1,0,0,0], [3,0,2,0,1,0,0], [2,2,0,1,0,0,0], [1,0,1,0,2,0,0], [0,1,0,2,0,1,1], [0,0,0,0,1,0,3], [0,0,0,0,1,3,0]]) D=np.diag((6,6,5,4,5,4,4)) L=D-A eigval,eigvec=np.linalg.eig(L) dim=len(eigval) ##对特征值、特征向量排序 dictEigval=dict(zip(eigval,range(0,dim))) ##取前3个特征值、特征向量 kEig=np.sort(eigval)[0:3] ix=[dictEigval[k] for k in kEig] a,b=eigval[ix],eigvec[:,ix] k=KMeans(n_clusters=3) k.fit(b) m=k.labels_ plt.scatter(b[:,1],b[:,2],c=k.labels_)