เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การเปลี่ยนแปลงของ PageRank

สมการ PageRank \(\vec{PR}=\alpha \cdot A \cdot \vec{PR} + (1-\alpha)\cdot \vec{e}\) สามารถแก้หาค่า \(\vec{PR}\) ได้แบบวนซ้ำ (iteratively) ในแต่ละรอบ ค่า \(\vec{PR}\) ปัจจุบันจะถูกนำไปคำนวณค่าใหม่ที่ใกล้เคียงค่าจริงมากขึ้น ซึ่งหมายความว่าผลต่างระหว่าง \(\vec{PR}\) ของสองรอบที่ต่อเนื่องกันจะลดลงเรื่อย ๆ จนกว่า \(\vec{PR}\) จะ converge เข้าสู่ค่าจริงและผลต่างจะเข้าใกล้ศูนย์ ในแบบฝึกหัดนี้ จะได้ศึกษาอัลกอริทึม PageRank และการ converge ของมัน

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การวิเคราะห์เชิงพยากรณ์โดยใช้ข้อมูลเครือข่ายใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

  • คำนวณ PageRank หนึ่งรอบโดยใช้ page.rank() กับ network และระบุ niter=1 จากนั้นดึง vector attribute และกำหนดผลลัพธ์ให้กับ iter1
  • ทำซ้ำขั้นตอนเดิมโดยใช้ niter=2 แล้วกำหนดผลลัพธ์ให้กับ iter2
  • คำนวณผลรวมของค่าความต่างสัมบูรณ์ระหว่างเวกเตอร์ iter1 และ iter2
  • เราได้คำนวณ iter9 และ iter10 ในลักษณะเดียวกับ iter1 และ iter2 ผลต่างระหว่างรอบที่ 9 และ 10 นั้นน้อยกว่าผลต่างระหว่างรอบที่ 1 และ 2 หรือไม่

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# 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(___(___ - ___))
แก้ไขและรันโค้ด