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
Pokyny k cvičení
- Vypočítej jednu iteraci algoritmu PageRank pomocí funkce
page.rank()se sítínetworka parametremniter=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
iter1aiter2. - Hodnoty
iter9aiter10jsme vypočítali stejným způsobem jakoiter1aiter2. 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(___(___ - ___))