É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 manière itérative. À chaque itération, la valeur actuelle de \(\vec{PR}\) est utilisée pour calculer une nouvelle valeur plus proche de la valeur réelle. Cela signifie que la différence entre les \(\vec{PR}\) de deux itérations consécutives devient de plus en plus faible jusqu’à ce que \(\vec{PR}\) converge vers la valeur réelle et que la différence devienne (quasi) nulle. Dans cet exercice, vous allez examiner l’algorithme PageRank et sa convergence.
Cet exercice fait partie du cours
Analytique prédictive avec des données en réseau sous R
Instructions
- Effectuez une itération avec l’algorithme PageRank à l’aide de
page.rank()avecnetworken indiquantniter=1. Extrayez l’attribut vecteur et affectez le résultat àiter1. - Répétez l’étape précédente avec
niter=2. Affectez 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 inférieure à celle entre les itérations 1 et 2 ?
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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(___(___ - ___))