พัฒนาและทดสอบโมเดลที่ดีที่สุด
ในบทที่ 3 คุณพบว่าพารามิเตอร์ต่อไปนี้ช่วยให้ได้โมเดลที่ดีขึ้น:
max_depth = 8min_samples_leaf = 150class_weight = "balanced"
ในบทนี้ คุณค้นพบว่าฟีเจอร์บางตัวมีผลกระทบเพียงเล็กน้อย และสามารถทำนายได้อย่างแม่นยำโดยใช้เพียงฟีเจอร์ที่มีความสำคัญจำนวนน้อย จึงได้อัปเดตชุดข้อมูลสำหรับฝึกและทดสอบ โดยสร้างตัวแปร features_train_selected และ features_test_selected ขึ้นมา
ด้วยข้อมูลทั้งหมดที่มี ตอนนี้ถึงเวลาพัฒนาโมเดลที่ดีที่สุดสำหรับทำนายการลาออกของพนักงาน และประเมินผลด้วยเมตริกที่เหมาะสม
ตัวแปร features_train_selected และ features_test_selected พร้อมใช้งานใน workspace แล้ว และฟังก์ชัน recall_score กับ roc_auc_score ได้ถูก import ไว้ให้เรียบร้อย
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
HR Analytics: การพยากรณ์การลาออกของพนักงานด้วย Python
คำแนะนำการฝึกหัด
- กำหนดค่าเริ่มต้นของโมเดลที่ดีที่สุดโดยใช้พารามิเตอร์ที่ระบุในคำอธิบาย
- ฝึกโมเดลโดยใช้เฉพาะฟีเจอร์ที่คัดเลือกแล้วจากชุดข้อมูลฝึก
- ทำนายผลโดยใช้ฟีเจอร์ที่คัดเลือกแล้วจากชุดข้อมูลทดสอบ
- แสดงค่าความแม่นยำ (accuracy), recall และคะแนน ROC/AUC ของโมเดล
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Initialize the best model using parameters provided in description
model_best = DecisionTreeClassifier(____=____, ____=____, ____=____, random_state=42)
# Fit the model using only selected features from training set: done
model_best.fit(____, target_train)
# Make prediction based on selected list of features from test set
prediction_best = model_best.____(____)
# Print the general accuracy of the model_best
print(____.score(features_test_selected, target_test) * 100)
# Print the recall score of the model predictions
print(____(target_test, prediction_best) * 100)
# Print the ROC/AUC score of the model predictions
print(roc_auc_score(target_test, ____) * 100)