OQBoost: ต้นไม้แบ่งเฉียงที่ใช้งานจริงได้
(github.com/CREE1116)OQBoost เป็นไลบรารี Gradient Boosting Decision Tree (GBDT) ที่อิงกับ 2D Oblique Split
ไลบรารี GBDT ชั้นนำที่มีอยู่เดิมอย่าง XGBoost, LightGBM และ CatBoost ส่วนใหญ่ใช้การแบ่งแบบขนานกับแกน (axis-aligned) เนื่องจากแบ่งโดยใช้ฟีเจอร์เพียงตัวเดียว จึงรวดเร็วและมีประสิทธิภาพมาก แต่หากต้องการแสดงขอบเขตการตัดสินใจในรูปแบบแนวทแยง หรือปฏิสัมพันธ์ระหว่างตัวแปรสองตัว จำเป็นต้องผสานต้นไม้หลายต้นเข้าด้วยกัน
เพื่อแก้ข้อจำกัดนี้ OQBoost ใช้ 2D Oblique Split ซึ่งใช้ฟีเจอร์สองตัวพร้อมกันเป็นหน่วยการแบ่งพื้นฐาน การแบ่งเฉียงโดยตรงในโหนดเดียวช่วยให้มีพลังในการแทนค่าที่สมบูรณ์ยิ่งขึ้น ขณะเดียวกันก็ออกแบบมาเพื่อคงความเร็วในการเทรนให้อยู่ในระดับที่ใช้งานได้จริง
เพื่อสิ่งนี้ OQBoost ผสานอัลกอริทึมค้นหาทิศทางความเร็วสูงบนพื้นฐาน Grid Label Accumulation เข้ากับ Hessian-weighted Regression ทำให้ลดต้นทุนการคำนวณที่สูงของ Oblique Tree แบบเดิมได้อย่างมาก นอกจากนี้ยังใช้การปรับแต่งหลายอย่าง เช่น Lazy Binning, Fast Search, Cache และ Precomputation เพื่อให้ได้ความเร็วในการเทรนระดับไลบรารีที่ใช้งานจริง
ปัจจุบัน OQBoost มีฟีเจอร์ดังต่อไปนี้
- Binary Classification
- Multiclass Classification (Joint Training)
- Regression
- Native Missing Value Handling
- Native Categorical Feature Support
- SHAP-style Built-in Explanation
- Kernel SHAP Compatibility
- Multi-thread Training
- API ที่เข้ากันได้กับ Scikit-learn
จากผลการทดลอง OQBoost แสดงประสิทธิภาพที่แข่งขันกับไลบรารี GBDT เดิมได้ในชุดข้อมูลสาธารณะหลากหลายชุด
- Binary Classification: อันดับ AUC เฉลี่ยที่ 1
- Regression: อันดับ R² เฉลี่ยที่ 1
- Multiclass Classification: ประสิทธิภาพในระดับใกล้เคียงกับ LightGBM และ XGBoost
เป้าหมายของ OQBoost ไม่ใช่เพียงการนำ GBDT เดิมมาสร้างใหม่ แต่คือการมอบเอนจิน Gradient Boosting แบบใหม่ที่สามารถใช้ Oblique Split ได้ด้วยต้นทุนที่เหมาะสำหรับการใช้งานจริง
ยังไม่มีความคิดเห็น