Пејџ ранк — разлика између измена

Садржај обрисан Садржај додат
Нема описа измене
Нема описа измене
Ред 40:
 
:<math>PR(u) = \sum_{v \in B_u} \frac{PR(v)}{L(v)}</math>,
 
 
PageRank [[MATLAB]]/[[GNU Octave|Octave]] имплементација
<source lang="matlab">
% Параметар M матрица повезаности где M_i,j представља линк од 'j' до 'i', тако да важи за све 'j' sum(i, M_i,j) = 1
% Параметар d фактор пригушивања
% Параметар v_quadratic_error квадратна грешка за v
% Враћа v, вектор рангова при чему је v_i i-th ранг из интервала [0, 1]
 
function [v] = rank(M, d, v_quadratic_error)
 
N = size(M, 2); % N је половина од реда M
v = rand(N, 1);
v = v ./ norm(v, 2);
last_v = ones(N, 1) * inf;
M_hat = (d .* M) + (((1 - d) / N) .* ones(N, N));
 
while(norm(v - last_v, 2) > v_quadratic_error)
last_v = v;
v = M_hat * v;
v = v ./ norm(v, 2);
end
 
endfunction
 
function [v] = rank2(M, d, v_quadratic_error)
 
N = size(M, 2); % N је половина од реда M
v = rand(N, 1);
v = v ./ norm(v, 1); % Сада је ово L1, а не L2
last_v = ones(N, 1) * inf;
M_hat = (d .* M) + (((1 - d) / N) .* ones(N, N));
 
while(norm(v - last_v, 2) > v_quadratic_error)
last_v = v;
v = M_hat * v;
% избачена L2 норма из текуће итерације PR-а
end
 
endfunction
 
</source>
 
Пример позива ранг функицје горе дефинисане:
<source lang="matlab">
M = [0 0 0 0 1 ; 0.5 0 0 0 0 ; 0.5 0 0 0 0 ; 0 1 0.5 0 0 ; 0 0 0.5 1 0];
rank(M, 0.80, 0.001)
 
</source>
== Референце ==
{{reflist}}