Zacznij terazZacznij za darmo

Zmiany w PageRank

Wzór PageRank \(\vec{PR}=\alpha \cdot A \cdot \vec{PR} + (1-\alpha)\cdot \vec{e}\) można rozwiązać iteracyjnie. W każdej iteracji bieżąca wartość \(\vec{PR}\) jest wykorzystywana do obliczenia nowej wartości, bliższej wartości prawdziwej. Oznacza to, że różnica między \(\vec{PR}\) kolejnych iteracji staje się coraz mniejsza, aż \(\vec{PR}\) zbiega do prawdziwej wartości, a różnica staje się (niemal) zerowa. W tym ćwiczeniu przyjrzysz się algorytmowi PageRank i temu, jakrzebyega jego zbieżność.

To ćwiczenie jest częścią kursu

Predykcyjna analityka sieciowa w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Oblicz jedną iterację algorytmu PageRank, używając funkcji page.rank() z argumentem network i wskazując niter=1. Wyodrębnij atrybut wektora i przypisz wynik do zmiennej iter1.
  • Powtórz poprzedni krok z niter=2. Przypisz wynik do zmiennej iter2.
  • Oblicz sumę wartości bezwzględnych różnic między wektorami iter1 i iter2.
  • Zmienne iter9 i iter10 zostały obliczone w taki sam sposób jak iter1 i iter2. Czy różnica między tymi dwiema iteracjami jest mniejsza niż między iteracjami 1 i 2?

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Compute one iteration of PageRank 
iter1 <- page.rank(___, algo = 'power', options = list(niter = ___))$vector

# Compute two iterations of PageRank 
iter2 <- ___(___, algo = 'power', options = list(niter = ___))$vector

# Inspect the change between one and two iterations
sum(abs(___ - ___))

# Inspect the change between nine and ten iterations
sum(___(___ - ___))
Edytuj i uruchom kod