2.3.4
RuleFit
สรุป
- RuleFit สกัดกฎ if-then จากต้นไม้ แล้วรวมกับฟีเจอร์เชิงตัวเลขเดิมและฝึกด้วยโมเดลเชิงเส้นแบบ L1
- กฎจับปฏิสัมพันธ์และ threshold ส่วนเทอมเชิงเส้นเก็บแนวโน้มภาพรวม ทำให้ทั้งแม่นและตีความได้
- ปรับ
max_rules, ความลึก/จำนวนต้นไม้ และพารามิเตอร์ boosting ตามความเหมาะสม พร้อมใช้ cross-validation - แสดงกฎที่สำคัญและแปลงเป็นภาษาธุรกิจก่อนสื่อสารกับผู้ใช้งาน
สัญชาตญาณ #
RuleFit ควรเข้าใจผ่านสมมติฐาน กลไกการปรับปรุงโมเดล และรูปแบบความผิดพลาดบนข้อมูลจริง เพื่อให้เลือกโมเดลและปรับพารามิเตอร์ได้อย่างเหมาะสม.
คำอธิบายโดยละเอียด #
1. แนวคิด (พร้อมสมการ) #
- สกัดกฎ: เส้นทางจากรากถึงใบไม้กลายเป็นฟีเจอร์ไบนารี (r_j(x) \in {0,1})
- เพิ่มเทอมเชิงเส้น (z_k(x)) สำหรับฟีเจอร์ต่อเนื่อง
- ฝึกโมเดลเชิงเส้นแบบ L1:
L1 ทำให้โมเดลเบาบาง เหลือเฉพาะกฎ/เทอมที่สำคัญจริง
2. ชุดข้อมูล (OpenML: house_sales) #
ตัวอย่างราคาบ้านใน King County (OpenML data_id=42092) เลือกเฉพาะคอลัมน์เชิงตัวเลขเพื่อความชัดเจน
| |
3. ฝึก RuleFit #
Python implementation: christophM/rulefit
| |
4. ดูกฎที่สำคัญ #
| |
rule: เงื่อนไข if-then (type=linearหมายถึงเทอมเชิงเส้น)coef: ค่าสัมประสิทธิ์ (หน่วยเดียวกับเป้าหมาย)support: สัดส่วนตัวอย่างที่เข้าเงื่อนไขimportance: คะแนนที่รวมขนาดค่าสัมประสิทธิ์และสัดส่วนตัวอย่าง
5. ตรวจสอบด้วยการแสดงผล #
| |
| |
6. ข้อแนะนำเชิงปฏิบัติ #
- จัดการ outlier (winsorization, clipping) เพื่อให้กฎเสถียร
- รวมหมวดหมู่ที่หายากก่อนเข้ารหัส
- หากเป้าหมายมีการกระจายเอียง ให้แปลงเช่น
log(y)หรือ Box-Cox - เลือกจำนวนกฎและความลึกให้คนอ่านเข้าใจ และใช้ cross-validation ช่วยกำหนดเพดาน
- สรุปกฎเด่นด้วยภาษาธุรกิจเพื่อสื่อสารกับผู้เกี่ยวข้อง
7. อ้างอิง #
- Friedman, J. H., & Popescu, B. E. (2008). Predictive Learning via Rule Ensembles. The Annals of Applied Statistics, 2(3), 916–954.
- Christoph Molnar. (2020). Interpretable Machine Learning. https://christophm.github.io/interpretable-ml-book/rulefit.html