У меня есть матрица смежности 500x500, равная 1 и 0, и мне нужно вычислить pagerank для каждой страницы. У меня есть код здесь, где R является матрицей и Т = 0,15 является константой:PageRank в R. Проблема с векторами и как выполнить итерацию по матрице смежности
n = ncol(R)
B = matrix(1/n, n, n) # the teleportation matrix
A = 0.85 * R + 0.15 * B
ranks = eigen(A)$vectors[1] # my PageRanks
print(ranks)
[1] -0.5317519+0i
У меня нет большого опыта работы с R, но я полагаю, что данный вывод является общим PageRank, и я нужна страница для каждой страницы.
Есть ли способ построить таблицу столбцов по отношению к матрице? Я не нашел ничего связанного с моим конкретным случаем в Интернете.
благодарственными вы очень! это именно то, что мне нужно! – v0id
, я получаю следующие ошибки: B = матрица (1/n, n, n) # матрица телепортации > A = 0.85 * R + 1 * B Ошибка в 0,85 * R + 1 * B: несогласованность массивы > A <- t (t (A)/rowSums (t (A))) # make Столбец-стохастик Ошибка в t (A): объект 'A' не найден @sandipan – v0id
A не вычисляется, потому что некоторой ошибки. В этом случае R - ваша матрица вероятности перехода, а B - матрица телепортации, и, пожалуйста, убедитесь, что dim (R) = dim (B). У нас есть это? Кроме того, A = (1-p) * R + p * B, если проблема телепортации p = 0,15, 1-p = 0,85. –