การจัดการกับข้อมูลที่ไม่สมบูรณ์
ในชุดข้อมูลส่วนใหญ่ ผู้ใช้จำนวนมากจะให้คะแนนสินค้าเพียงบางส่วนเท่านั้น จากแบบฝึกหัดที่ผ่านมา จะเห็นว่าวิธีจัดการกับผู้ใช้ที่ยังไม่มีคะแนนสำหรับสินค้านั้นๆ ส่งผลอย่างมากต่อความน่าเชื่อถือของโมเดล
ในแบบฝึกหัดนี้ จะมีการเติมข้อมูลที่หายไปด้วยค่าที่ไม่ทำให้ข้อมูลที่มีอยู่เกิดความเอนเอียง
ขั้นตอนคือ หาคะแนนเฉลี่ยที่ผู้ใช้แต่ละคนให้ไว้จากทุกการให้คะแนน จากนั้นใช้ค่าเฉลี่ยนี้ปรับคะแนนของผู้ใช้ให้มีศูนย์กลางที่ศูนย์ แล้วเติมค่าว่างด้วยศูนย์ ซึ่งในตอนนี้ถือเป็นคะแนนกลาง วิธีนี้จะช่วยลดผลกระทบต่อโปรไฟล์โดยรวมของผู้ใช้ แต่ยังคงสามารถเปรียบเทียบระหว่างผู้ใช้ได้
โหลด user_ratings_table ที่มีหนึ่งแถวต่อผู้ใช้หนึ่งคนไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้าง Recommendation Engine ด้วย Python
คำแนะนำการฝึกหัด
- หาค่าเฉลี่ยของคะแนนที่ผู้ใช้แต่ละคนให้ใน
user_ratings_tableแล้วเก็บไว้ในตัวแปรavg_ratings - ลบค่าเฉลี่ยของแต่ละแถวออกจากแถวนั้นใน
user_ratings_tableแล้วเก็บผลลัพธ์ไว้ในตัวแปรuser_ratings_table_centered - เติมค่าว่างใน
user_ratings_table_centeredที่สร้างขึ้นใหม่ด้วยค่าศูนย์
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Get the average rating for each user
avg_ratings = user_ratings_table.____(axis=____)
# Center each users ratings around 0
user_ratings_table_centered = user_ratings_table.____(____, axis=0)
# Fill in the missing data with 0s
user_ratings_table_normed = user_ratings_table_centered.____(____)