Зміни в PageRank
Формулу PageRank \(\vec{PR}=\alpha \cdot A \cdot \vec{PR} + (1-\alpha)\cdot \vec{e}\) можна розв'язувати для \(\vec{PR}\) ітераційно. На кожній ітерації поточне значення \(\vec{PR}\) використовують, щоб обчислити нове значення, яке ближче до істинного. Це означає, що різниця між \(\vec{PR}\) для будь-яких двох послідовних ітерацій стає дедалі меншою, доки \(\vec{PR}\) не збіжиться до істинного значення і різниця не стане (майже) нульовою. У цій вправі ви розглянете алгоритм PageRank і те, як він збігається.
Ця вправа є частиною курсу
Прогнозна аналітика з мережевими даними в R
Інструкції до вправи
- Обчисліть одну ітерацію алгоритму PageRank за допомогою
page.rank()ізnetwork, вказавшиniter=1. Витягніть атрибут вектора та запишіть результат уiter1. - Повторіть попередній крок з
niter=2. Запишіть результат уiter2. - Обчисліть суму абсолютних різниць між векторами
iter1іiter2. - Ми обчислили
iter9іiter10так само, якiter1іiter2. Чи є різниця між цими двома ітераціями меншою, ніж між ітераціями 1 і 2?
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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(___(___ - ___))