Évolutions du PageRank
La formule de PageRank \(\vec{PR}=\alpha \cdot A \cdot \vec{PR} + (1-\alpha)\cdot \vec{e}\) peut être résolue pour \(\vec{PR}\) de façon itérative. À chaque itération, la valeur courante de \(\vec{PR}\) sert à calculer une nouvelle valeur qui se rapproche de la valeur réelle. Cela signifie que la différence entre les \(\vec{PR}\) de deux itérations consécutives diminue progressivement jusqu'à ce que \(\vec{PR}\) converge vers la valeur réelle et que la différence devienne (presque) nulle. Dans cet exercice, vous allez examiner l'algorithme PageRank et sa convergence.
Cette activité fait partie du cours
Analytique prédictive avec des données en réseau dans R
Instructions de l’exercice
- Calculez une itération avec l'algorithme PageRank en utilisant
page.rank()avecnetworket en indiquantniter=1. Extrayez l'attribut vecteur et assignez le résultat àiter1. - Répétez l'étape précédente avec
niter=2. Assignez le résultat àiter2. - Calculez la somme de la différence absolue entre les vecteurs
iter1etiter2. - Nous avons calculé
iter9etiter10de la même manière queiter1etiter2. La différence entre ces deux itérations est-elle plus petite que celle entre les itérations 1 et 2 ?
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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(___(___ - ___))