การค้นหาภาพยนตร์ที่มีรสนิยมคล้ายกัน
เช่นเดียวกับที่คำนวณความคล้ายคลึงระหว่างภาพยนตร์สองเรื่อง เราสามารถคำนวณข้ามผู้ใช้ทั้งหมดเพื่อค้นหาภาพยนตร์ที่คล้ายกันที่สุดกับเรื่องที่สนใจ โดยอ้างอิงจากคะแนนที่ผู้ใช้ให้ไว้
แนวทางนี้คล้ายกับที่ใช้ใน content-based filtering
จะคำนวณคะแนนความคล้ายคลึงระหว่างภาพยนตร์ทั้งหมด แล้วเจาะลึกไปที่ภาพยนตร์ที่ต้องการ โดยแยกและเรียงลำดับคอลัมน์ที่เก็บคะแนนความคล้ายคลึงของเรื่องนั้น
movie_ratings_centered ถูกโหลดไว้แล้ว โดยแต่ละแถวแทนภาพยนตร์หนึ่งเรื่อง และค่าคะแนน centered ถูกเก็บเป็น values
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้าง Recommendation Engine ด้วย Python
คำแนะนำการฝึกหัด
- คำนวณเมทริกซ์ความคล้ายคลึงระหว่างภาพยนตร์ทั้งหมดใน
movie_ratings_centeredและเก็บผลลัพธ์ไว้ใน similarities - นำเมทริกซ์
similaritiesมาสร้างเป็น DataFrame โดยใช้ index ของmovie_ratings_centeredเป็นทั้ง columns และ rows
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
from sklearn.metrics.pairwise import cosine_similarity
# Generate the similarity matrix
similarities = ____(____)
# Wrap the similarities in a DataFrame
cosine_similarity_df = ____.____(____, index=____.____, columns=____.____)
# Find the similarity values for a specific movie
cosine_similarity_series = cosine_similarity_df.loc['Star Wars: Episode IV - A New Hope (1977)']
# Sort these values highest to lowest
ordered_similarities = cosine_similarity_series.sort_values(ascending=False)
print(ordered_similarities)