示例#1
0
    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
示例#2
0
    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
示例#3
0
    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
示例#4
0
 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
示例#5
0
 def get_graph(self, knn, Anchor, way="t_free"):
     Z = Ifuns.kng(self.X, knn=knn, way=way, Anchor=Anchor)
     return Z
示例#6
0
 def get_graph(self, knn, way):
     A = Ifuns.kng(self.X, knn=knn, way=way)
     return A