def clu(self, graph_knn=0, graph_way="t_free", km_rep=1, km_init="random"): t1 = time.time() A = Ifuns.kng(self.X, knn=graph_knn, way=graph_way) F = self.emb(A) F = F / (np.sqrt(np.sum(F ** 2, 1)).reshape(-1, 1)) y = Ifuns.KMeans(n_clusters=self.c_true, init=km_init, n_init=km_rep).fit(F).labels_ self._time = time.time() - t1 return y
def clu(self, graph_knn=0, graph_way="t_free", ITER=100): A = Ifuns.kng(self.X, knn=graph_knn, way=graph_way) d = np.sum(A, axis=1) M = self.get_M(A, d) A_csr = sparse.csr_matrix(A) y = KMeans(self.c_true, init="k-means++", n_init=1).fit(A_csr).labels_ # y = np.random.randint(0, self.c_true, self.N) y = opt(M, d, y, self.c_true, ITER) return y
def clu(self, anchor_num=0, anchor_way="random", graph_knn=0, graph_way="t_free", km_init="k-means++"): if anchor_num == 0: anchor_num = int(min(self.N / 2, 1024)) if graph_knn == 0: graph_knn = np.minimum(2 * self.c_true, anchor_num) Anchor = Ifuns.get_anchor(X=self.X, m=anchor_num, way=anchor_way) Z = Ifuns.kng(X=self.X, knn=graph_knn, way=graph_way, Anchor=Anchor) B = Z / np.sqrt(np.sum(Z, axis=0)).reshape(1, -1) # initialize P B_sp = sparse.csr_matrix(B) U, S, VH = svds(B_sp, k=self.c_true + 1, which="LM") p = KMeans(self.c_true, init=km_init).fit(U[:, 1:]).labels_ return p
def get_graph(self, graph_knn, graph_way, Anchor): B = Ifuns.kng(X=self.X, knn=graph_knn, way=graph_way, Anchor=Anchor) return B
def get_graph(self, knn, Anchor, way="t_free"): Z = Ifuns.kng(self.X, knn=knn, way=way, Anchor=Anchor) return Z
def get_graph(self, knn, way): A = Ifuns.kng(self.X, knn=knn, way=way) return A