IniziaInizia gratis

Variazioni nel PageRank

La formula del PageRank \(\vec{PR}=\alpha \cdot A \cdot \vec{PR} + (1-\alpha)\cdot \vec{e}\) può essere risolta iterativamente per \(\vec{PR}\). A ogni iterazione, il valore corrente di \(\vec{PR}\) viene usato per calcolare un nuovo valore più vicino a quello reale. Questo significa che la differenza tra i \(\vec{PR}\) di due iterazioni successive diventa via via più piccola, finché \(\vec{PR}\) non converge al valore reale e la differenza diventa (quasi) zero. In questo esercizio esaminerai l'algoritmo PageRank e il suo comportamento di convergenza.

Questo esercizio fa parte del corso

Analitica predittiva con dati di rete in R

Visualizza il corso

Istruzioni dell'esercizio

  • Esegui un'iterazione dell'algoritmo PageRank usando page.rank() con network e indicando niter=1. Estrai l'attributo vettore e assegna il risultato a iter1.
  • Ripeti il passaggio precedente con niter=2. Assegna il risultato a iter2.
  • Calcola la somma della differenza assoluta tra i vettori iter1 e iter2.
  • Abbiamo calcolato iter9 e iter10 allo stesso modo di iter1 e iter2. La differenza tra queste due iterazioni è minore rispetto a quella tra le iterazioni 1 e 2?

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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(___(___ - ___))
Modifica ed esegui il codice