天天看點

超圖譜聚類

正在學習超圖聚類,看了聚類內建經典的論文,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_)