Bắt đầu ngayBắt đầu miễn phí

Thay đổi trong PageRank

Công thức PageRank \(\vec{PR}=\alpha \cdot A \cdot \vec{PR} + (1-\alpha)\cdot \vec{e}\) có thể được giải lặp cho \(\vec{PR}\). Ở mỗi vòng lặp, giá trị hiện tại của \(\vec{PR}\) được dùng để tính ra một giá trị mới gần hơn với giá trị thực. Điều này có nghĩa là độ chênh lệch giữa các \(\vec{PR}\) của hai vòng lặp liên tiếp sẽ nhỏ dần cho đến khi \(\vec{PR}\) hội tụ về giá trị thực và chênh lệch trở nên (gần như) bằng không. Trong bài tập này, bạn sẽ quan sát thuật toán PageRank và cách nó hội tụ.

Bài tập này là một phần của khóa học

Phân tích dự đoán với dữ liệu mạng trong R

Xem khóa học

Hướng dẫn bài tập

  • Thực hiện một vòng lặp của thuật toán PageRank bằng page.rank() với network và chỉ định niter=1. Trích xuất thuộc tính vector và gán kết quả cho iter1.
  • Lặp lại bước vừa rồi với niter=2. Gán kết quả cho iter2.
  • Tính tổng chênh lệch tuyệt đối giữa hai vector iter1iter2.
  • Chúng tôi đã tính iter9iter10 theo cách tương tự như iter1iter2. Liệu chênh lệch giữa hai vòng lặp này có nhỏ hơn so với giữa vòng lặp 1 và 2 không?

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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(___(___ - ___))
Chỉnh sửa và Chạy Mã