ต้นไม้ตัดสินใจ

Basic

ต้นไม้ตัดสินใจ | พื้นฐานแมชชีนเลิร์นนิง

まとめ
  • ต้นไม้ตัดสินใจแบ่งข้อมูลด้วยเงื่อนไขจากฟีเจอร์ จึงอธิบายและมองเห็นเป็นโครงสร้างต้นไม้ได้ชัด
  • ใช้ได้ทั้งงานจำแนกและถดถอย และเป็นพื้นฐานของ 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