เปรียบเทียบโมเดลแบบ item-based และ user-based
ตอนนี้คุณได้ศึกษาแนวทาง KNN สองแบบแล้ว แบบแรกคือ item-item KNN ซึ่งใช้ค่าเฉลี่ยคะแนนของภาพยนตร์ \(k\) เรื่องที่คล้ายกันมากที่สุดที่ผู้ใช้เคยให้คะแนนไว้ เพื่อประมาณคะแนนของภาพยนตร์ที่ยังไม่ได้ดู อีกแบบคือ user-user KNN ซึ่งใช้ค่าเฉลี่ยคะแนนที่ผู้ใช้ \(k\) คนที่คล้ายกันมากที่สุดให้กับภาพยนตร์เรื่องนั้น เพื่อประมาณคะแนนที่ผู้ใช้เป้าหมายจะให้
คราวนี้จะนำทั้งสองแบบมาเปรียบเทียบกัน และคำนวณว่า user_002 จะให้คะแนนภาพยนตร์ Forrest Gump เท่าไร
โค้ดสำหรับโมเดล user_rating_predictor (ที่พยากรณ์จากคะแนนของผู้ใช้ที่คล้ายกัน) และ movie_rating_predictor (ที่พยากรณ์จากคะแนนที่ผู้ใช้นี้ให้กับภาพยนตร์ที่คล้ายกัน) ได้เริ่มต้นไว้ให้แล้ว
KNeighborsRegressor ถูก import ไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้าง Recommendation Engine ด้วย Python
คำแนะนำการฝึกหัด
- สร้างโมเดล K-nearest neighbors แบบ user-user ชื่อ
user_knn - Fit โมเดล
user_knnจากนั้นพยากรณ์บนtarget_user_x - ในทำนองเดียวกัน ให้ fit โมเดล K-nearest neighbors แบบ item-item ชื่อ
movie_knnจากนั้นพยากรณ์บนtarget_movie_x
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Instantiate the user KNN model
user_knn = ____()
# Fit the model and predict the target user
user_knn.____(other_users_x, other_users_y)
user_user_pred = user_knn.____(target_user_x)
print("The user-user model predicts {}".format(user_user_pred))
# Instantiate the user KNN model
movie_knn = KNeighborsRegressor()
# Fit the model on the movie data and predict
movie_knn.____(other_movies_x, other_movies_y)
item_item_pred = movie_knn.____(target_movie_x)
print("The item-item model predicts {}".format(item_item_pred))