НачатьНачать бесплатно

Изменения в 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(___(___ - ___))
Редактировать и запускать код