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)
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)
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])
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)
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))
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)
def setUp(self): self.bipartite = movie_actor(return_labels=False)
def setUp(self): """Simple biadjacency for tests.""" self.biadjacency = movie_actor()
def setUp(self): self.undirected: sparse.csr_matrix = karate_club() self.directed: sparse.csr_matrix = painters() self.bipartite: sparse.csr_matrix = movie_actor()
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))])
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))])