我是布卢明顿印第安纳大学计算机科学的研究生。对于我的研究项目之一,我正在为有针对性的图表计算Pageranks,该图形非常稀疏,截止链接的比例很高。

通过截止链接,我的意思是节点零。有时,在带有许多截止链接的图表中,可能会发生蜘蛛陷阱。无论如何,我感兴趣的问题是在这种情况下发现Pageranks。

我正在使用Jung(Java Universal Graph Network)来计算Pageranks。

当我使用普通过程时,

Graph<String, String> jungGraph = new DirectedSparseGraph<String, String>();
PageRank<String, String> pagerank = new PageRank<String,String>(jungGraph, 0.2);
pagerank.setMaxIterations(20);
pagerank.setTolerance(0.000001);
pagerank.evaluate();

当我清楚地知道不应该这样,我或多或少都会获得所有节点的Pagerank值。由于图中的某些节点具有大量传出的节点,并且密切相互连接。

在这种情况下,建议的方法是什么。我知道有这个类Pagerankwithpriors。我是否应该首先提取没有截止链接的网络,为他们计算Pageranks,然后将其等级传播到截止链接直到收敛。在后一种情况下,还原网络中的所有节点(Outdegree!= 0)都将设置其先验,而截止链接则不会。

我在这里错过什么吗?

有帮助吗?

解决方案

我不认为 PageRankWithPriors 就是你想要的。

哪个版本的 PageRank 你正在用吗?班上 edu.uci.ics.jung.algorithms.importance.PageRank 或者 edu.uci.ics.jung.algorithms.scoring.PageRank?前者已被弃用,在Jung 2.0 beta中获得了后者的支持。

他们似乎以不同的0节点对待Outgree,这可能是您的问题。前者的规格说:

从节点U到节点V的概率等于(1-alpha)1/Outgegree(U)] + Alpha(1/| V |)

如果您在原始图中没有外边缘,则使用0代替1/OutDegree(V)。

这似乎是错误的,因为它导致概率损失(通过某种方法离开U的总概率应等于1,而不是)。后者做的不同:

如果顶点没有外向的边缘,那么从该顶点进行随机跳跃的概率(默认为)是有效的1

这应该保留您想要的概率。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top