我在这里按照本书计算PageRank: http: //nlp.stanford.edu/IR-book/html/htmledition/markov-chains-1.html
我按照书中的说明构建了转换矩阵 P。然后我通过将转换矩阵 P 提高到更高的幂来计算 PageRank 分数,如书中所述。为了确保我的计算是正确的,我遵循了这个例子: http: //nlp.stanford.edu/IR-book/html/htmledition/the-pagerank-computation-1.html
转移矩阵为:
P = np.array([[1./6, 2./3, 1./6],
[5./12, 1./6, 5./12],
[1./6, 2./3, 1./6]])
PageRank分数的结果如下(通过计算P^40):
[0.28, 0.44, 0.28]
和书中一样。
但是这本书还说,可以通过计算转换矩阵 P 的主左特征向量来找到 PageRank 分数。所以我用 numpy 尝试了这个:
v, V = np.linalg.eig(P.T)
left_vec = V[:, 0].T
print left_vec
我得到了:
[-0.46829291 -0.74926865 -0.46829291]
那怎么了?!