Пример #1
0
    def test_bipartite(self):
        biadjacency = movie_actor(metadata=False)
        n_row, n_col = biadjacency.shape
        seeds_row_array = -np.ones(n_row)
        seeds_row_array[:2] = np.arange(2)
        seeds_row_dict = {0: 0, 1: 1}
        seeds_col_dict = {0: 0}

        classifiers = [
            BiPageRankClassifier(),
            BiDiffusionClassifier(),
            BiKNN(embedding_method=GSVD(3), n_neighbors=1),
            BiPropagation(),
            BiDirichletClassifier()
        ]
        for clf in classifiers:
            clf.fit(biadjacency, seeds_row_array)
            labels_row1, labels_col1 = clf.labels_row_, clf.labels_col_
            clf.fit(biadjacency, seeds_row_dict)
            labels_row2, labels_col2 = clf.labels_row_, clf.labels_col_

            self.assertTrue(np.allclose(labels_row1, labels_row2))
            self.assertTrue(np.allclose(labels_col1, labels_col2))
            self.assertEqual(labels_col2.shape[0], n_col)
            self.assertTupleEqual(clf.membership_row_.shape, (n_row, 2))
            self.assertTupleEqual(clf.membership_col_.shape, (n_col, 2))

            clf.fit(biadjacency, seeds_row_dict, seeds_col_dict)
Пример #2
0
 def test_bipartite(self):
     self.bipartite: sparse.csr_matrix = movie_actor(return_labels=False)
     bispectral_ward = BiSpectralWard(embedding_dimension=3)
     bispectral_ward.fit(self.bipartite)
     self.assertEqual(bispectral_ward.row_dendrogram_.shape,
                      (self.bipartite.shape[0] - 1, 4))
     self.assertEqual(bispectral_ward.col_dendrogram_.shape,
                      (self.bipartite.shape[1] - 1, 4))
 def test_co_clustering(self):
     self.bipartite: sparse.csr_matrix = movie_actor()
     n1, n2 = self.bipartite.shape
     bispectral_clustering = BiSpectralClustering(embedding_dimension=3)
     bispectral_clustering.fit(self.bipartite)
     self.assertEqual(bispectral_clustering.row_labels_.shape[0], n1)
     self.assertEqual(bispectral_clustering.col_labels_.shape[0], n2)
     self.assertEqual(bispectral_clustering.labels_.shape[0], n1 + n2)
Пример #4
0
    def test_bimaxdiff(self):
        biadjacency: sparse.csr_matrix = movie_actor()
        biadj_array_seeds = -np.ones(biadjacency.shape[0])
        biadj_array_seeds[:2] = np.arange(2)
        biadj_dict_seeds = {0: 0, 1: 1}

        bmd = BiMaxDiff()
        labels1 = bmd.fit_transform(biadjacency, biadj_array_seeds)
        labels2 = bmd.fit_transform(biadjacency, biadj_dict_seeds)
        self.assertTrue(np.allclose(labels1, labels2))
        self.assertEqual(labels2.shape[0], biadjacency.shape[0])
Пример #5
0
    def test_bipartite(self):
        bipagerank = BiPageRank()
        biadjacency = movie_actor()
        n1, n2 = biadjacency.shape

        bipagerank.fit(biadjacency, {0: 1})
        row_scores = bipagerank.row_scores_
        self.assertEqual(len(row_scores), n1)
        col_scores = bipagerank.col_scores_
        self.assertEqual(len(col_scores), n2)
        scores = bipagerank.scores_
        self.assertEqual(len(scores), n1 + n2)
Пример #6
0
    def test_bimultidiff(self):
        biadjacency: sparse.csr_matrix = movie_actor()
        biadj_array_seeds = -np.ones(biadjacency.shape[0])
        biadj_array_seeds[:2] = np.arange(2)
        biadj_array_seeds = biadj_array_seeds
        biadj_dict_seeds = {0: 0, 1: 1}

        bmd = BiMultiDiff()
        bmd.fit(biadjacency, biadj_array_seeds)
        membership1 = bmd.membership_.copy()
        bmd.fit(biadjacency, biadj_dict_seeds)
        membership2 = bmd.membership_.copy()
        self.assertTrue(np.allclose(membership1, membership2))
        self.assertEqual(membership2.shape, (biadjacency.shape[0], 2))
Пример #7
0
    def test_coneighbors(self):
        biadjacency = movie_actor(metadata=False)
        operator = CoNeighborOperator(biadjacency)
        transition = normalize(operator)
        x = transition.dot(np.ones(transition.shape[1]))

        self.assertAlmostEqual(np.linalg.norm(x - np.ones(operator.shape[0])),
                               0)
        operator.astype(np.float)
        operator.right_sparse_dot(sparse.eye(operator.shape[1], format='csr'))

        operator1 = CoNeighborOperator(biadjacency, normalized=False)
        operator2 = CoNeighborOperator(biadjacency, normalized=False)
        x = np.random.randn(operator.shape[1])
        x1 = (-operator1).dot(x)
        x2 = (operator2 * -1).dot(x)
        x3 = operator1.T.dot(x)
        self.assertAlmostEqual(np.linalg.norm(x1 - x2), 0)
        self.assertAlmostEqual(np.linalg.norm(x2 - x3), 0)
Пример #8
0
 def setUp(self):
     self.bipartite = movie_actor(return_labels=False)
Пример #9
0
 def setUp(self):
     """Simple biadjacency for tests."""
     self.biadjacency = movie_actor()
Пример #10
0
 def setUp(self):
     self.undirected: sparse.csr_matrix = karate_club()
     self.directed: sparse.csr_matrix = painters()
     self.bipartite: sparse.csr_matrix = movie_actor()
Пример #11
0
 def setUp(self):
     """Simple biadjacency for tests."""
     self.biadjacency = movie_actor()
     n_row, n_col = self.biadjacency.shape
     self.slr = SparseLR(self.biadjacency, [(np.random.rand(n_row), np.random.rand(n_col))])
Пример #12
0
 def setUp(self):
     """Simple biadjacency for tests."""
     self.biadjacency = movie_actor()
     n1, n2 = self.biadjacency.shape
     self.slr = SparseLR(self.biadjacency,
                         [(np.random.rand(n1), np.random.rand(n2))])