Изменения в 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(___(___ - ___))