Začněte nyníZačněte zdarma

Změny v PageRanku

Vzorec PageRanku \(\vec{PR}=\alpha \cdot A \cdot \vec{PR} + (1-\alpha)\cdot \vec{e}\) lze pro \(\vec{PR}\) řešit iterativně. V každé iteraci se aktuální hodnota \(\vec{PR}\) použije k výpočtu nové hodnoty, která je blíže té skutečné. To znamená, že rozdíl mezi hodnotami \(\vec{PR}\) každých dvou po sobě jdoucích iterací se postupně zmenšuje, dokud \(\vec{PR}\) neskonverguje ke skutečné hodnotě a rozdíl se nestane (téměř) nulovým. V tomto cvičení se podíváš na algoritmus PageRank a na to, jak konverguje.

Toto cvičení je součástí kurzu

Prediktivní analytika pomocí síťových dat v R

Zobrazit kurz

Pokyny k cvičení

  • Vypočítej jednu iteraci algoritmu PageRank pomocí funkce page.rank() se sítí network a parametrem niter=1. Extrahuj vektorový atribut a výsledek ulož do proměnné iter1.
  • Zopakuj předchozí krok s niter=2. Výsledek ulož do proměnné iter2.
  • Vypočítej součet absolutních rozdílů mezi vektory iter1 a iter2.
  • Hodnoty iter9 a iter10 jsme vypočítali stejným způsobem jako iter1 a iter2. Je rozdíl mezi těmito dvěma iteracemi menší než rozdíl mezi iteracemi 1 a 2?

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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(___(___ - ___))
Upravit a spustit kód