我在excel电子表格中创建了一个邻接矩阵,现在我需要使用远程传输常数T = 0.15并使用以下公式计算每页的页面排名:
PR(W)=T/N+(1-T)(PR(W1)/O(W1)+PR(W2)/O(W2)+...PR(Wn)/O(WN))
我相信执行此操作的伪代码应该是这样的:
x=formula
for i in range(len(matrix):
if i=1, then i==x
else
return 0
print(i?)
我知道它远非完美,我仍在努力解决这个问题。
我还假设我首先要声明为公式本身创建一个单独的程序代码并声明其变量。
用Python或R实现这个想法会是一个令人满意的解决方案吗?或者有更好的计算页面排名的方法?
我在网上遇到了各种可能的解决方案,但是对于我的具体情况,它们并没有很大帮助。
答案 0 :(得分:0)
如果您的数据不是特别大,我认为不是,因为它在excel电子表格中,您可以简单地计算准备好的矩阵A
的第一个特征向量。将您的邻接矩阵命名为M
。 R中的代码如下:
n = ncol(M)
B = matrix(1/n, n, n) # the teleportation matrix
A = 0.85 * M + 0.15 * B
ranks = eigen(A)$vectors[1] # your PageRanks
如果您的矩阵较大,那么您可以使用包page_rank
igraph