ПочатиПочніть безкоштовно

Зміни в 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(___(___ - ___))
Редагувати та запускати код