Gradient Boosting و XGBoost
Gradient Boosting را بهعنوان گرادیان کاهشی در فضای توابع ببینی و بدانی XGBoost چه بهبودهایی به آن اضافه کرده است.
15 دقیقه مطالعه · 5 سؤال تمرینی · یادگیری ماشین میانی و پیشرفته
گرادیان کاهشی در فضای توابع
در Gradient Boosting مدل بهصورت جمعی ساخته میشود:
که در آن (معمولاً یک درخت کوچک) روی شبهباقیماندهها برازش میشود. شبهباقیماندهها گرادیان منفی زیان نسبت به پیشبینی فعلیاند:
- برای زیان مربعات : ، یعنی همان باقیماندهی معمولی.
- برای لگلاس در دستهبندی دودویی با و : .
یعنی هر درخت جدید یک «قدم گرادیان» در فضای توابع است.
تنظیمهای مهم
- نرخ یادگیری (Shrinkage) : مقدار کوچک (مثلاً ۰٫۰۵ تا ۰٫۱) با درختهای بیشتر معمولاً تعمیم بهتری میدهد.
- عمق درخت: تعیین میکند مدل تا چه مرتبهای از تعامل بین ویژگیها را یاد بگیرد. عمق ۳ تا ۸ رایج است.
- زیرنمونهگیری: آموزش هر درخت روی بخشی تصادفی از داده (Stochastic Gradient Boosting) هم سرعت میدهد و هم منظمسازی است.
- توقف زودهنگام: برخلاف جنگل تصادفی، Gradient Boosting با تعداد درخت بیش از حد واقعاً بیشبرازش میکند. تعداد درخت را با دادهی اعتبارسنجی تعیین کنید.
XGBoost و LightGBM
XGBoost تابع هدف را با بسط تیلور مرتبهی دوم تقریب میزند. برای هر برگ، مجموع گرادیانها و مجموع هسینهای نمونههای آن برگ است. با جریمهی روی وزن برگها، وزن بهینهی برگ:
ویژگیهای دیگر:
- جریمه روی تعداد برگها () برای هرس.
- یادگرفتن جهت پیشفرض برای مقادیر گمشده در هر تقسیم.
LightGBM با جستجوی تقسیم مبتنی بر هیستوگرام و رشد برگمحور (Leaf-wise) سرعت را خیلی بالا برده است.