การเปรียบเทียบวิธีการแนะนำ
ในคอร์สนี้ คุณได้ทำนายคะแนนที่ผู้ใช้น่าจะให้กับภาพยนตร์ที่ยังไม่เคยดู โดยใช้หลายวิธี ได้แก่ การใช้ค่าเฉลี่ยคะแนน, KNN และ matrix factorization ในแบบฝึกหัดสุดท้ายนี้ จะเปรียบเทียบผลลัพธ์ระหว่างการใช้ค่าเฉลี่ยคะแนนกับ matrix factorization โดยใช้ mean_squared_error() เป็นตัวชี้วัดประสิทธิภาพ
ผลการทำนายจากค่าเฉลี่ยถูกโหลดไว้ใน avg_pred_ratings_df ส่วนผลการทำนายที่คำนวณได้ถูกโหลดไว้ใน calc_pred_ratings_df
ค่า ground truth ถูกโหลดไว้ใน act_ratings_df
นอกจากนี้ ฟังก์ชัน mean_squared_error() ได้ถูก import มาจาก sklearn.metrics เรียบร้อยแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้าง Recommendation Engine ด้วย Python
คำแนะนำการฝึกหัด
- ดึงแถวที่ 0-20 และคอลัมน์ที่ 0-100 (บริเวณที่ต้องการเปรียบเทียบ) จาก DataFrame
act_ratings_df,avg_pred_ratings_dfและcalc_pred_ratings_df - สร้าง mask จาก DataFrame
actual_valuesที่กำหนดเป้าหมายเฉพาะเซลล์ที่ไม่ว่างเปล่า - คำนวณ mean squared error ระหว่างผลการทำนายทั้งสองกับค่า ground truth
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Extract the ground truth to compare your predictions against
actual_values = act_ratings_df.____[:20, :100].values
avg_values = avg_pred_ratings_df.____[:20, :100].values
predicted_values = calc_pred_ratings_df.____[:20, :100].values
# Create a mask of actual_values to only look at the non-missing values in the ground truth
mask = ~np.isnan(____)
# Print the performance of both predictions and compare
print(____(____[mask], avg_values[mask], squared=False))
print(____(____[mask], predicted_values[mask], squared=False))