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

คำนวณค่า Sparsity

ALS ทำงานได้ดีกับชุดข้อมูลแบบ sparse มาดูกันว่าเมทริกซ์ ratings ว่างเปล่าอยู่มากแค่ไหน

ค่า sparsity คำนวณจากจำนวนเซลล์ในเมทริกซ์ที่มีคะแนนอยู่ หารด้วยจำนวนค่าทั้งหมดที่เมทริกซ์สามารถบรรจุได้ตามจำนวนผู้ใช้และรายการ (ภาพยนตร์) กล่าวคือ นำจำนวนคะแนนที่มีอยู่ในเมทริกซ์หารด้วยผลคูณของจำนวนผู้ใช้และจำนวนภาพยนตร์ แล้วนำผลลัพธ์ที่ได้ไปลบออกจาก 1 จะได้ค่า sparsity หรือเปอร์เซ็นต์ของเมทริกซ์ ratings ที่ว่างเปล่า

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

การสร้าง Recommendation Engines ด้วย PySpark

ดูคอร์ส

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

  • คำนวณ numerator ของค่า sparsity โดยนับจำนวน ratings ทั้งหมดที่มีอยู่ในเมทริกซ์ ratings
  • คำนวณจำนวน userIds และ movieIds ที่ไม่ซ้ำกัน (distinct()) ในเมทริกซ์ ratings
  • คำนวณ denominator ของค่า sparsity โดยคูณจำนวนผู้ใช้กับจำนวนภาพยนตร์ในเมทริกซ์ ratings
  • คำนวณและแสดงผลค่า sparsity โดยนำ numerator หารด้วย denominator แล้วลบออกจาก 1 และคูณด้วย 100 โดยที่ 1.0 ถูกเพิ่มเข้ามาเพื่อให้ค่า sparsity แสดงผลเป็นทศนิยม ไม่ใช่จำนวนเต็ม

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

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

# Count the total number of ratings in the dataset
numerator = ____.select("____").count()

# Count the number of distinct userIds and distinct movieIds
num_users = ____.select("____").____().count()
num_movies = ____.select("____").____().count()

# Set the denominator equal to the number of users multiplied by the number of movies
denominator = ____ * ____

# Divide the numerator by the denominator
sparsity = (1.0 - (____ *1.0)/____)*100
print("The ratings dataframe is ", "%.2f" % sparsity + "% empty.")
แก้ไขและรันโค้ด