Выражение на python: np.ones(len(A)) * (1 - d) / len(A) + d * A.T.dot(P)
Что означает эта строка?
Ниже приведен полный код, где существует это выражение.Этот код является частью алгоритма ранга страницы.
def pagerank(A, eps=0.0001, d=0.85):
P = np.ones(len(A)) / len(A)
while True:
new_P = np.ones(len(A)) * (1 - d) / len(A) + d * A.T.dot(P)
delta = abs(new_P - P).sum()
if delta <= eps:
return new_P
P = new_P
results = pagerank(A)
print("Results:", results) # [ 0.13933698, 0.09044235, 0.1300934 , 0.13148714, 0.08116465, 0.1305122 , 0.09427366, 0.085402 , 0.02301397, 0.09427366]
print(sum(results)) # 1.0
print([item[0] for item in sorted(enumerate(results), key=lambda item: -item[1])]) # [0, 3, 5, 2, 6, 9, 1, 7, 4, 8]