Änderungen im PageRank
Die PageRank-Formel \(\vec{PR}=\alpha \cdot A \cdot \vec{PR} + (1-\alpha)\cdot \vec{e}\) kann iterativ für \(\vec{PR}\) gelöst werden. In jeder Iteration wird der aktuelle Wert von \(\vec{PR}\) verwendet, um einen neuen Wert zu berechnen, der näher am wahren Wert liegt. Das bedeutet, dass die Differenz zwischen den \(\vec{PR}\)-Vektoren zweier aufeinanderfolgender Iterationen immer kleiner wird, bis \(\vec{PR}\) gegen den wahren Wert konvergiert und die Differenz (fast) null ist. In dieser Übung schaust du dir den PageRank-Algorithmus und sein Konvergenzverhalten an.
Diese Übung ist Teil des Kurses
Predictive Analytics mit vernetzten Daten in R
Anleitung zur Übung
- Führe eine Iteration mit dem PageRank-Algorithmus aus, indem du
page.rank()mitnetworkverwendest undniter=1angibst. Extrahiere das Vektor-Attribut und weise das Ergebnisiter1zu. - Wiederhole den letzten Schritt mit
niter=2. Weise das Ergebnisiter2zu. - Berechne die Summe der absoluten Differenzen zwischen den Vektoren
iter1unditer2. - Wir haben
iter9unditer10auf die gleiche Weise berechnet wieiter1unditer2. Ist die Differenz zwischen diesen beiden Iterationen kleiner als zwischen Iteration 1 und 2?
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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(___(___ - ___))