ทำไมใครๆก็ใช้ XGBoost กันจัง 🤔

Nut Chukamphaeng
2 min readDec 15, 2018

--

XGBoost (XGB) เป็นหนึ่งในโมเดลที่นิยมกันมากใน Kaggle ซึ่งบทความนี้เรามาดูกันสิว่า เจ้าตัว XGB มันทำงานยังไง แล้วทำไม Kaggle competitor ถึงชอบใช้กันนัก

XGBoost เป็น ensemble learning method ซึ่งเป็นการเรียนรู้แบบ multiple-learners หรือก็คือการเรียนรู้แบบมีผู้เรียนหลายๆคน ช่วยๆกันเรียน

สำหรับ Ensemble learning สามารถแบ่งวิธีการเป็น 3 ตัวหลักๆ ได้ดังนี้ Bagging, Boosting, Stacking

Image source
  • Bagging (Bootstrap Aggregating): คือการสร้าง learner หลายๆตัว แล้วให้แต่ละตัวเรียน subset ของข้อมูลทั้งหมด หลังจากนั้นมาทำการ vote ว่าถ้ามีคำถามมา ดูซิว่าส่วนมากตอบอะไร หรือเฉลี่ยแล้วควรตอบอะไรดี และด้วยเทคนิคนี้เองทำให้เราสามารถลด variance ช่วยลดการเกิด overfit นั้นเอง ตัวอย่างโมเดล เช่น RandomForest
Image source
  • Boosting: คือการเรียนแบบเป็นลำดับ โดย learner ก่อนหน้าเรียน แล้วนำเอา”ข้อผิดพลาด” ของตัวเอง มาปรับปรุง learner ต่อๆไป เพื่อลด error จาก learner ก่อนหน้า ส่งผลให้มี accuracy ที่ดีกว่า baggning (ลด bias) แต่ทำให้เกิด overfit ง่าย ตัวอย่างโมเดลได้แก่ Gradient boosting, AdaBoost
Image source
  • Stacking: มีความคล้ายกับ Boosting แต่มีการแบ่ง learner เป็นหลายๆกลุ่ม แล้วเอาข้อมูลทั้งหมดให้กลุ่มแรกเรียน แล้วเอา”คำตอบ”ของกลุ่มแรกมารวมกันแล้วส่งต่อให้กลุ่มต่อมาเรียนต่อๆกันไป โดยรูปข้างต้นเป็นตัวอย่างแบบ simple
Image source

กลับมาที่ XGB ของเราต่อดีกว่า สำหรับเจ้าตัวโมเดลนี้ก็ถูกแต่งเสริมเติมแต่งจาก Gradient boosting โดยความสามารถที่เพิ่มขึ้นมามีหลักๆที่น่าสนใจดังนี้

  • Regularization: สามารถลดการเกิด overfit ได้
  • Sparse Aware: สามารถจัดการกับ missing value อัตโนมัติ
  • Parallelization: สามารถทำงานแบบขนานกับจำนวน core ของ cpu ได้
  • Cache Optimization: ใช้ hardware อย่างมีประสิทธิภาพ

เห็นแล้วใช่ไหมละทำไมถึงน่าใช้ เมื่อเทียบกับหลายๆโมเดลแล้ว XGB เป็นโมเดลที่ค่อนข้างใช้งานง่ายเลยทีเดียว จัดการหลายๆอย่างให้อัตโนมัติ มีประสิทธิภาพอีกต่างหาก (ถ้าคิดอะไรไม่ออกจับใส่ XGB ก่อนเลยก็ได้ 5555 🤭) และยัง open source ด้วยนะ พัฒนาไปได้อีกยาวๆเลย หรือสามารถอ่าน paper เพิ่มเติมได้นะครับ

และยังมีโมเดลที่ถูกพัฒนามาคล้ายๆกันที่น่าสนใจ ได้แก่ CATBoost, LightGBM

สุดท้ายนี้ ก็ขอฝากเพจ DataWiz ที่จะคอยแบ่งปันความรู้ทางด้านต่างๆ ไม่ว่าจะเป็น machine learning หรือ ai แล้วส่วนเรื่องต่อไปจะเป็นอะไร เดียวมารอติดตามกันในบทความต่อไปกันเลย

--

--