def test_copagerank(self): seeds = {0: 1} biadjacency = test_bigraph() adjacency = co_neighbor_graph(biadjacency, method='exact', normalized=True) pagerank = PageRank(damping_factor=0.85, solver='lanczos') pagerank.fit(biadjacency, seeds_row=seeds) scores1 = pagerank.scores_row_ scores1 /= scores1.sum() scores2 = PageRank(damping_factor=0.85**2, solver='lanczos').fit_transform(adjacency, seeds) self.assertAlmostEqual(np.linalg.norm(scores1 - scores2), 0., places=6)
def test_pagerank(self): ground_truth = np.ones(3) / 3 adjacency = rock_paper_scissors() pagerank_sps = PageRank(solver='spsolve') pagerank_sps.fit(adjacency) scores = pagerank_sps.scores_ self.assertAlmostEqual(np.linalg.norm(scores - ground_truth), 0.) pagerank_sps.fit(adjacency, personalization=np.array([0, 1, 0])) pagerank_sps.fit(adjacency, personalization={1: 1}) pagerank_high_damping = PageRank(damping_factor=0.99) pagerank_high_damping.fit(adjacency) scores = pagerank_high_damping.scores_ self.assertAlmostEqual(np.linalg.norm(scores - ground_truth), 0., places=1) pagerank_lcz = PageRank(solver='lanczos') pagerank_lcz.fit(adjacency) scores = pagerank_lcz.scores_ self.assertAlmostEqual(np.linalg.norm(scores - ground_truth), 0.) pagerank_lsq = PageRank(solver='lsqr') pagerank_lsq.fit(adjacency) scores = pagerank_lsq.scores_ self.assertAlmostEqual(np.linalg.norm(scores - ground_truth), 0.) pagerank_naive = PageRank(solver=None) pagerank_naive.fit(adjacency)