我已经在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实施此想法的令人满意的解决方案?还是有更好的计算页面等级的方法?
我在网络中遇到了各种可能的解决方案,但与我的特殊情况相关并不是很有帮助。
如果您的数据不是特别大,我认为不是,因为它在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