การ normalize แบบ min-max ด้วย .transform()
การ normalize แบบ min-max เป็นการดำเนินการที่พบได้บ่อยมาก โดยจะปรับสเกลของค่าที่สนใจด้วยการลบค่าต่ำสุดออก แล้วหารผลลัพธ์ด้วยผลต่างระหว่างค่าสูงสุดและค่าต่ำสุด ตัวอย่างเช่น หากต้องการปรับสเกลข้อมูลน้ำหนักของนักเรียนที่มีค่าตั้งแต่ 160 ถึง 200 ปอนด์ ให้ลบ 160 จากน้ำหนักของนักเรียนแต่ละคน แล้วหารผลลัพธ์ด้วย 40 (200 - 160)
ในแบบฝึกหัดนี้ จะได้กำหนดและนำการ normalize แบบ min-max ไปใช้กับตัวแปรเชิงตัวเลขทั้งหมดในชุดข้อมูลร้านอาหาร โดยจะแบ่งกลุ่มข้อมูลตามช่วงเวลาของมื้ออาหาร (Lunch หรือ Dinner) ก่อน แล้วจึงนำการ normalize ไปใช้กับแต่ละกลุ่มแยกกัน
สามารถสำรวจชุดข้อมูลและดูการเปลี่ยนแปลงได้ใน IPython Shell และอ้างอิงเนื้อหาเพิ่มเติมได้ที่แท็บ Slides
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเขียนโค้ดที่มีประสิทธิภาพด้วย pandas
คำแนะนำการฝึกหัด
- กำหนดการ normalize แบบ min-max โดยใช้เมธอด lambda
- แบ่งกลุ่มข้อมูลตามช่วงเวลาของมื้ออาหาร
- นำ transformation ไปใช้กับข้อมูลที่แบ่งกลุ่มแล้ว
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Define the min-max transformation
min_max_tr = lambda x: (x - ____) / (____ - x.min())
# Group the data according to the time
restaurant_grouped = restaurant_data.____(____)
# Apply the transformation
restaurant_min_max_group = restaurant_grouped.____(____)
print(restaurant_min_max_group.head())