การสุ่มตัวอย่างแบบแบ่งชั้น
ตอนนี้คุณทราบแล้วว่าการกระจายของป้ายกำกับคลาสในคอลัมน์ category_desc ของชุดข้อมูล volunteer นั้นไม่สม่ำเสมอ หากต้องการฝึกโมเดลให้ทำนาย category_desc จำเป็นต้องให้แน่ใจว่าโมเดลถูกฝึกบนข้อมูลที่เป็นตัวแทนของชุดข้อมูลทั้งหมด การสุ่มตัวอย่างแบบแบ่งชั้น (stratified sampling) เป็นวิธีที่ช่วยให้บรรลุเป้าหมายนี้ได้
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเตรียมข้อมูลสำหรับ Machine Learning ด้วย Python
คำแนะนำการฝึกหัด
- สร้าง DataFrame ของฟีเจอร์ชื่อ
Xโดยใช้ทุกคอลัมน์ยกเว้นcategory_desc - สร้าง DataFrame ของป้ายกำกับชื่อ
yจากคอลัมน์category_desc - แบ่ง
Xและyออกเป็นชุดฝึกและชุดทดสอบ โดยให้แน่ใจว่าการกระจายของคลาสในป้ายกำกับมีสัดส่วนเท่ากันทั้งสองชุด - แสดงป้ายกำกับและจำนวนนับใน
y_trainโดยใช้.value_counts()
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create a DataFrame with all columns except category_desc
X = volunteer.____(____, axis=____)
# Create a category_desc labels dataset
y = ____[[____]]
# Use stratified sampling to split up the dataset according to the y dataset
X_train, X_test, y_train, y_test = ____(____, ____, ____, random_state=42)
# Print the category_desc counts from y_train
print(____[____].____)