ฉันพยายามเข้าใจถึงความแตกต่างที่สำคัญระหว่าง GBM และ XGBOOST ฉันพยายาม google แต่ไม่พบคำตอบที่ดีใด ๆ ที่อธิบายความแตกต่างระหว่างอัลกอริธึมทั้งสองและทำไม xgboost ทำงานได้ดีกว่า GBM เกือบทุกครั้ง อะไรทำให้ XGBOOST เร็วขึ้น?
ฉันพยายามเข้าใจถึงความแตกต่างที่สำคัญระหว่าง GBM และ XGBOOST ฉันพยายาม google แต่ไม่พบคำตอบที่ดีใด ๆ ที่อธิบายความแตกต่างระหว่างอัลกอริธึมทั้งสองและทำไม xgboost ทำงานได้ดีกว่า GBM เกือบทุกครั้ง อะไรทำให้ XGBOOST เร็วขึ้น?
คำตอบ:
อ้างอิงจากผู้เขียนxgboost
:
ทั้ง xgboost และ gbm เป็นไปตามหลักการเพิ่มการไล่ระดับสี อย่างไรก็ตามมีความแตกต่างในการสร้างแบบจำลองรายละเอียด โดยเฉพาะอย่างยิ่ง xgboost ใช้รูปแบบการทำให้เป็นระเบียบแบบแผนมากขึ้นเพื่อควบคุมการกระชับซึ่งทำให้มันมีประสิทธิภาพที่ดีขึ้น
เราได้อัปเดตบทแนะนำที่ครอบคลุมเกี่ยวกับการแนะนำโมเดลซึ่งคุณอาจต้องการดู รู้เบื้องต้นเกี่ยวกับต้นไม้ที่ได้รับการส่งเสริม
แม้ว่าชื่อ xgboost จริงๆแล้วหมายถึงเป้าหมายทางวิศวกรรมเพื่อผลักดันขีด จำกัด ของทรัพยากรการคำนวณสำหรับอัลกอริทึมทรีที่เพิ่มขึ้น ซึ่งเป็นเหตุผลว่าทำไมหลายคนใช้ xgboost สำหรับแบบจำลองอาจเหมาะกว่าที่จะเรียกว่าเป็นการเพิ่มการไล่ระดับสีแบบสม่ำเสมอ
แก้ไข: มีคำแนะนำโดยละเอียดของ xgboost ซึ่งแสดงความแตกต่างมากขึ้น
https://xgboost.readthedocs.io/en/latest/tutorials/model.html
นอกเหนือจากคำตอบที่ได้รับจาก Icyblade ผู้พัฒนาของ xgboost ได้ทำการปรับปรุงประสิทธิภาพที่สำคัญในส่วนต่าง ๆ ของการใช้งานซึ่งสร้างความแตกต่างอย่างมากในด้านความเร็วและการใช้หน่วยความจำ:
จากประสบการณ์ของฉันเมื่อใช้ GBM และ xgboost ขณะฝึกชุดข้อมูลขนาดใหญ่ (5 ล้านเร็กคอร์ด +) ฉันพบว่าการใช้หน่วยความจำลดลงอย่างมาก (ใน R) สำหรับชุดข้อมูลเดียวกันและพบว่าการใช้หลายคอร์ลดเวลาการฝึกอบรมได้ง่ายขึ้น
หนึ่งความแตกต่างที่สำคัญมากคือxgboost
ได้ดำเนินการโผที่กูกลางคันสำหรับต้นไม้ถดถอย
Rashmi, KV, & Gilad-Bachrach, R. (2015) Dart: ดร็อปอินพบต้นไม้ถดถอยหลายตัว พิมพ์ล่วงหน้า arXiv arXiv: 1505.01866
ผมคิดว่าความแตกต่างระหว่างการไล่ระดับสีที่ส่งเสริมและ Xgboost ที่อยู่ในขั้นตอนวิธีการ xgboost มุ่งเน้นไปที่การใช้พลังงานในการคำนวณโดย parallelizing ก่อต้นไม้ที่หนึ่งที่สามารถมองเห็นในบล็อกนี้
การไล่ระดับสีแบบเน้นจะเน้นที่ความแปรปรวน แต่ไม่ใช่การแลกเปลี่ยนระหว่างอคติเมื่อการเพิ่มระดับของ xg สามารถเน้นปัจจัยการทำให้เป็นปกติได้
การใช้งาน XGBoost เป็นบั๊กซี ล้มเหลวอย่างเงียบ ๆ เมื่อการฝึกอบรมใน GPU บนโวลต์ 082 มันเกิดขึ้นกับฉันเช่นกันในv 0.90ดังนั้นปัญหายังไม่ได้รับการแก้ไขและ "การแก้ไข" ที่ระบุใน GitHub ไม่ได้ผลสำหรับฉัน
LGBM 2.3.1 ใช้งานได้อย่างมีเสน่ห์นอกกรอบแม้ว่าการติดตั้งจะต้องใช้ความพยายามอีกเล็กน้อย จนถึงขณะนี้ยังไม่มีปัญหาในการฝึกอบรมเกี่ยวกับ GPU
เกี่ยวกับXGBoostเป็น " อย่างรวดเร็ว " คุณควรจะดูที่มาตรฐานเหล่านี้