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
Istruzioni dell'esercizio
- Esegui un'iterazione dell'algoritmo PageRank usando
page.rank()connetworke indicandoniter=1. Estrai l'attributo vettore e assegna il risultato aiter1. - Ripeti il passaggio precedente con
niter=2. Assegna il risultato aiter2. - Calcola la somma della differenza assoluta tra i vettori
iter1eiter2. - Abbiamo calcolato
iter9eiter10allo stesso modo diiter1eiter2. 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(___(___ - ___))