def compute_meta_centroid_set(self, C):
print("Intermediate clusters", C.shape)
# By eye, it looks like the top 60%-80% of the
# remaining clusters are stable...
nc = int(self.subcluster_pcut * self.subcluster_kn)
clf = SpectralClustering(n_clusters=nc, affinity="precomputed")
S = cosine_affinity(C)
labels = clf.fit_predict(S)
meta_clusters = []
meta_cluster_size = []
for i in range(labels.max() + 1):
idx = labels == i
mu = C[idx].mean(axis=0)
mu /= np.linalg.norm(mu)
meta_clusters.append(mu)
meta_cluster_size.append(idx.sum())
return np.array(meta_clusters)
评论列表
文章目录