2012-11-26 1 views
4

Mapreduce를 사용하여 위키피디아의 내부 페이지 순위를 찾으려고합니다. 위키 페이지의 작은 하위 집합에서 Pagerank 알고리즘을 구현했습니다. 페이지가 있습니다. 나는이 공식을 사용하여 pagerank (d = 0.85)를 계산했습니다. 페이지 순위에 대한 의문점

enter image description here

는 I 모든 랭크의 페이지 (6349)의 총 수와 동일한 경우를 확인하고 싶었. 내가 지금까지 무엇을 발견

: 다음 each PageRank is multiplied by N and the sum becomes N 위의 공식을 사용하는 경우 모든 6349 페이지의

1. 총 페이지 순위 WikiPedia1001.26044

2.According입니다. 각 페이지 순위에 N (6349)을 곱하고 합계를 계산하면 6356789.5입니다.

페이지 순위 합계가 총 페이지 수와 같지 않은 이유가 있습니까? 확인할 때 두 번째 수식을 사용해야합니까?

enter image description here

참고 : 나는 좋은 근사치를 얻기 위해 10 반복 내 맵리 듀스 코드를 실행했습니다.

답변

5

이렇게 가정하면 반복 횟수가 너무 적습니다. 왜 10? 왜 100? 아니면 100000? 마지막 두 가지 변경 내용의 중간 또는 최대 값은 무엇인지 계산해야합니다. 따라서 가능한 오류를 평가하십시오.

그리고 PR은 확률입니다. 그들 모두의 합은 1이어야합니다! "모든 pagerank의 합계가 총 페이지 수와 같습니다."라는 문장이 잘못되었습니다.

다른 수식의 경우 다른 모델과 다른 PR에 속합니다. 물론, 당신도 그것을 사용할 수 있습니다. 아니면 둘다. 하지만 당신은 그것을 사용하여 확인할 수 없습니다.

+0

지난 2 번의 반복의 총 페이지 순위 차이를 계산해 주시겠습니까? 나는 중간이나 최대의 의미를 이해하지 못한다. 가능한 오류를 어떻게 평가할 수 있습니까? –

+0

당신은 진정한 홍보를 기억하지 못합니다, 기억합니까? 따라서 결과 반복의 결과를 비교해 보면 얼마나 가까운지 알 수 있습니다. 그러나이 결과는 숫자가 아니며 6k 멤버의 벡터입니다. 따라서, 만약 당신이 그것들을 비교하기를 원한다면, 당신은 어떤 차이, 즉 중간 차이 또는 최대 차이를 선택해야합니다. – Gangnus

+0

1/10, 1/20, 1/40, 1/80 ...과 같이 최대 차이가 있다면 마지막 반복의 실제 오류를 1/80로 추측 할 수 있습니다. – Gangnus

-1

당신이 선택한베이스에 따라 다릅니다 (기본값은 1). 반복 할 때마다 계산해야합니다

delta = (base - sum_of_ranks)/N 

그런 다음 각 순위를 델타로 줄입니다. 이 방법으로 만 마지막 반복이 끝날 때까지 계급을 유지하게됩니다.