Förändringar i PageRank
PageRank-formeln \(\vec{PR}=\alpha \cdot A \cdot \vec{PR} + (1-\alpha)\cdot \vec{e}\) kan lösas för \(\vec{PR}\) iterativt. I varje iteration används det aktuella värdet av \(\vec{PR}\) för att beräkna ett nytt värde som ligger närmare det sanna värdet. Det innebär att skillnaden mellan \(\vec{PR}\) för varje par av efterföljande iterationer blir allt mindre, tills \(\vec{PR}\) konvergerar mot det sanna värdet och skillnaden blir (nästan) noll. I den här övningen undersöker du PageRank-algoritmen och hur den konvergerar.
Den här övningen är en del av kursen
Prediktiv analys med nätverksdata i R
Övningsinstruktioner
- Beräkna en iteration med PageRank-algoritmen med hjälp av
page.rank()pånetworkoch angeniter=1. Extrahera vektorattributet och tilldela resultatet tilliter1. - Upprepa föregående steg med
niter=2. Tilldela resultatet tilliter2. - Beräkna summan av den absoluta skillnaden mellan vektorerna
iter1ochiter2. - Vi har beräknat
iter9ochiter10på samma sätt somiter1ochiter2. Är skillnaden mellan dessa två iterationer mindre än skillnaden mellan iteration 1 och 2?
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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(___(___ - ___))