まとめ
- ต้นไม้ตัดสินใจแบ่งข้อมูลด้วยเงื่อนไขจากฟีเจอร์ จึงอธิบายและมองเห็นเป็นโครงสร้างต้นไม้ได้ชัด
- ใช้ได้ทั้งงานจำแนกและถดถอย และเป็นพื้นฐานของ ensemble อย่าง Random Forest และ Gradient Boosting
- ปรับ depth, leaf และการ pruning เพื่อบาลานซ์ความแม่นยำกับการ generalize
ต้นไม้ตัดสินใจ #
สัญชาตญาณ #
กฎแบบ “ถ้า…ไปซ้าย มิฉะนั้นไปขวา” ถูกใช้ซ้ำ ๆ จนถึงใบไม้ แล้วให้ค่าทำนายหรือคลาสในใบไม้ จึงสามารถติดตามเหตุผลของการทำนายได้ง่าย เหมาะกับการอธิบายต่อผู้เกี่ยวข้อง
สมการพื้นฐาน #
การแบ่งใช้ตัวชี้วัดความไม่บริสุทธิ์ (เช่น Gini, entropy, MSE) แล้วเลือกฟีเจอร์และค่า threshold ที่ทำให้ความไม่บริสุทธิ์ลดลงมากที่สุด (information gain) นอกจากนี้การ pruning แบบ cost-complexity ช่วยลดความซับซ้อนของต้นไม้เพื่อป้องกัน overfitting
เนื้อหาในบทนี้ #
- Decision Tree (Classification): กลไกการแบ่ง, ขอบเขตการตัดสินใจ, โครงสร้างต้นไม้
- Decision Tree (Regression): การแบ่งด้วย MSE และพฤติกรรมแบบ piecewise constant
- พารามิเตอร์สำคัญ:
max_depth,min_samples_leaf,ccp_alphaและวิธีปรับ - RuleFit: สกัดกฎจากต้นไม้ร่วมกับโมเดลเชิงเส้นเพื่อเพิ่มการอธิบาย
โค้ดทุกหน้าเป็นแบบรันได้ เพื่อให้ทดลองและสังเกตพฤติกรรมได้จริง
อ้างอิง #
- Breiman, L., Friedman, J. H., Olshen, R. A., & Stone, C. J. (1984). Classification and Regression Trees. Wadsworth.
- scikit-learn developers. (2024). Decision Trees. https://scikit-learn.org/stable/modules/tree.html