ทำความเข้าใจ K-nearest neighbors ทีละขั้นตอน
คุณได้เห็นแล้วว่า K-nearest neighbors สามารถนำมาใช้คาดการณ์ว่าผู้ใช้คนหนึ่งจะให้คะแนนสิ่งใดสิ่งหนึ่งอย่างไร โดยอาศัยข้อมูลจากกลุ่มคนที่มีรสนิยมคล้ายกัน
ในแบบฝึกหัดนี้ คุณจะทำตามกระบวนการนี้ด้วยตัวเอง เพื่อให้เข้าใจวิธีการทำงานได้อย่างชัดเจน
เพื่อให้เริ่มต้นได้ง่ายขึ้น ขั้นตอนการสร้าง similarity matrix ได้ดำเนินการไว้ให้แล้ว โดย user similarity matrix ถูกบรรจุไว้ใน DataFrame ชื่อ user_similarities
DataFrame นี้มีผู้ใช้แต่ละคนเป็นทั้งแถวและคอลัมน์ และค่าที่จุดตัดของแต่ละคู่คือคะแนนความคล้ายคลึงที่สอดคล้องกัน
ในแบบฝึกหัดนี้ คุณจะทำงานกับคะแนนความคล้ายคลึงของ user_001 หาเพื่อนบ้านที่ใกล้ที่สุด แล้วใช้คะแนนที่เพื่อนบ้านเหล่านั้นให้กับภาพยนตร์เรื่องหนึ่ง เพื่อคาดการณ์ว่า user_001 น่าจะให้คะแนนเท่าไรหากได้ดูภาพยนตร์เรื่องนั้น
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้าง Recommendation Engine ด้วย Python
คำแนะนำการฝึกหัด
- หา ID ของเพื่อนบ้านที่ใกล้ที่สุด 10 คนของ
User_Aโดยดึงผู้ใช้ 10 อันดับแรกจากordered_similaritiesแล้วเก็บไว้เป็นnearest_neighbors - ดึงคะแนนที่ผู้ใช้ใน
nearest_neighborsให้ไว้จากuser_ratings_tableแล้วเก็บเป็นneighbor_ratings - คำนวณคะแนนเฉลี่ยที่ผู้ใช้เหล่านั้นให้กับภาพยนตร์เรื่อง
Apollo 13 (1995)เพื่อคาดการณ์ว่าUser_Aจะให้คะแนนเท่าไรหากได้ดูภาพยนตร์เรื่องนี้
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Isolate the similarity scores for user_1 and sort
user_similarity_series = user_similarities.loc['user_001']
ordered_similarities = user_similarity_series.sort_values(ascending=False)
# Find the top 10 most similar users
nearest_neighbors = ordered_similarities[1:11].____
# Extract the ratings of the neighbors
neighbor_ratings = user_ratings_table.____(nearest_neighbors)
# Calculate the mean rating given by the users nearest neighbors
print(neighbor_ratings['Apollo 13 (1995)'].____())