É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
<cours>Analytique prédictive avec des données en réseau sous R</cours>Instructions de l’exercice
- 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 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(___(___ - ___))