CommencerCommencez gratuitement

É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>
Voir le cours

Instructions de l’exercice

  • Effectuez une itération avec l’algorithme PageRank à l’aide de page.rank() avec network en indiquant niter=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 iter1 et iter2.
  • Nous avons calculé iter9 et iter10 de la même manière que iter1 et iter2. 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(___(___ - ___))
Modifier et exécuter le code