Пример #1
0
    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)
Пример #2
0
    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)