def spectral_clustering(similarity_matrix, k): w, v = linalg.eig( similarity_matrix - np.diagflat(similarity_matrix.sum(axis=0))) centers, label = k_means(v[:, np.argsort(w)[-k:]], k) return label
def test_k_means(self): center, label = k_means(np.matrix(data), 5) assert len(set(label)) == 5
def spectral_clustering(similarity_matrix, k): w, v = linalg.eig(similarity_matrix - np.diagflat(similarity_matrix.sum(axis=0))) centers, label = k_means(v[:, np.argsort(w)[-k:]], k) return label