การตัดแต่งต้นไม้ (Pruning)
Overfitting เป็นปัญหาคลาสสิกในงานวิเคราะห์ข้อมูล โดยเฉพาะกับอัลกอริทึม decision tree เมื่อต้นไม้เติบโตเต็มที่แล้ว อาจให้การทำนายที่แม่นยำมากบนชุดข้อมูล training แต่กลับทำได้ไม่ดีนักบนชุดข้อมูล test ด้วยเหตุนี้ การเติบโตของ decision tree จึงมักถูกควบคุมด้วย:
- การ "ตัดแต่ง" ต้นไม้ (Pruning) โดยกำหนดขีดจำกัดความลึกสูงสุดที่ต้นไม้สามารถมีได้
- การกำหนดจำนวนข้อมูลขั้นต่ำในแต่ละใบ (leaf) ของต้นไม้
ในแบบฝึกหัดนี้ คุณจะ:
- ตัดแต่งต้นไม้และจำกัดการเติบโตให้มีความลึกไม่เกิน 5 ระดับ
- fit โมเดลกับข้อมูลพนักงาน
- ทดสอบผลการทำนายบนทั้งชุดข้อมูล training และ test
ตัวแปร features_train, target_train, features_test และ target_test ถูกโหลดไว้ใน workspace ของคุณเรียบร้อยแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
HR Analytics: การพยากรณ์การลาออกของพนักงานด้วย Python
คำแนะนำการฝึกหัด
- สร้าง
DecisionTreeClassifierโดยกำหนดความลึกสูงสุดของต้นไม้ไว้ที่ 5 - fit โมเดล Decision Tree โดยใช้
featuresและtargetจากชุดข้อมูล training - ตรวจสอบความแม่นยำของการทำนายบนทั้งชุดข้อมูล training และ test
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Initialize the DecisionTreeClassifier while limiting the depth of the tree to 5
model_depth_5 = DecisionTreeClassifier(____=5, random_state=42)
# Fit the model
____.fit(features_train,target_train)
# Print the accuracy of the prediction for the training set
print(____.____(features_train,target_train)*100)
# Print the accuracy of the prediction for the test set
print(model_depth_5.score(____,____)*100)