การปรับสมดุลคลาส
ความไม่สมดุลของคลาสส่งผลอย่างมากต่อผลการทำนาย ดังที่เห็นได้จากความแตกต่างระหว่างค่า recall และ accuracy วิธีแก้ปัญหาทั่วไปคือการกำหนดน้ำหนักที่เท่ากันให้แต่ละคลาส ซึ่งทำได้โดยใช้อาร์กิวเมนต์ class_weight ใน DecisionTreeClassifier ของ sklearn เพื่อตั้งค่าคลาสให้เป็น "balanced"
มาแก้ไขโมเดลของเราด้วยการจัดการปัญหาความไม่สมดุลนี้กัน:
- ขั้นแรก ตั้งค่าโมเดลให้มีคลาสที่สมดุล
- จากนั้น ฝึกโมเดลด้วยข้อมูลชุดฝึก
- สุดท้าย ตรวจสอบความแม่นยำของโมเดลบนชุดข้อมูลทดสอบ
ตัวแปร features_train, target_train, features_test และ target_test มีอยู่ใน workspace ของคุณแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
HR Analytics: การพยากรณ์การลาออกของพนักงานด้วย Python
คำแนะนำการฝึกหัด
- กำหนดค่าเริ่มต้นให้ Decision Tree Classifier, ตัดแต่งต้นไม้ โดยจำกัดความลึกสูงสุดที่ 5 และปรับสมดุลน้ำหนักของคลาส
- ฝึกโมเดลใหม่
- แสดงค่าความแม่นยำ
scoreของการทำนาย (เป็นเปอร์เซ็นต์) สำหรับชุดข้อมูลทดสอบ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Initialize the DecisionTreeClassifier
model_depth_5_b = DecisionTreeClassifier(____=5,class_weight="____",random_state=42)
# Fit the model
model_depth_5_b.____(features_train,target_train)
# Print the accuracy of the prediction (in percentage points) for the test set
print(model_depth_5_b.____(features_test,____)*100)