فرضیات XGBoost
تقویت گرادیان شدید (Extreme Gradient Boosting) که اغلب با نام XGBoost شناخته میشود، یک تکنیک یادگیری تحت نظارت است که به خانواده الگوریتمهای یادگیری ماشینی معروف به درختهای تصمیم تقویتشده با گرادیان (GBDT) تعلق دارد.
قبل از اینکه به فرضیات XGBoost بپردازیم ابتدا یک نمای کلی از الگوریتم را ارائه خواهیم داد.
تقویت به XGBoost
تقویت فرآیند ادغام گروهی از یادگیرندگان ضعیف به یادگیرندگان قوی انجام می گیرد تا تعداد خطاهای آموزشی کاهش یابد. تقویت آن را با پرداختن به “موازنه واریانس و بایاس (Bias-Variance Trade-off)” کارآمدتر می کند. الگوریتم های تقویت کننده مختلفی وجود دارد، از جمله XGBoost، Gradient Boosting، AdaBoost (تقویت تطبیقی) و غیره.
اکنون وارد مبحث XGBoost می شویم.
همانطور که قبلا ذکر شد، XGBoost یک افزونه درخت تصمیم با گرادیان (GBM) (gradient-boosted decision tree) است که به دلیل سرعت و عملکرد خود مشهور است.
ترکیب تعدادی از مدلهای سادهتر و ضعیفتر درخت تصمیم که بهطور متوالی ساخته میشوند، امکان ایجاد پیشبینیها را فراهم میکند.
این مدلها درختهای تصمیمگیری دیگر را با استفاده از سؤالات ویژگی «اگر-آنگاه-درست/نادرست» ارزیابی میکنند تا پیشبینیهایی درباره احتمال به دست آوردن یک انتخاب درست ارائه کنند. این از سه چیز تشکیل شده است:
- یک هدف بهینه سازی برای یک تابع زیان.
- پیش بینی ضعیف آینده
- افزودن یک مدل افزودنی به مدلهای ضعیفتر کمک میکند تا اشتباهات کمتری داشته باشند.
ویژگی های XGBoost
(1) تقویت درخت گرادیان
مدل مجموعه درختی باید تحت آموزش افزودنی قرار گیرد. از این رو، درختهای تصمیم در یک مرحله در یک روند متوالی و تکراری اضافه میشوند. تعداد ثابتی درخت اضافه می شود و مقدار تابع زیان باید با هر تکرار کاهش یابد.
(2) یادگیری منظم
یادگیری منظم به تعادل وزن نهایی آموخته شده کمک می کند. این کار با کاهش تابع زیان و جلوگیری از تناسب بیش از حد (overfitting) یا تناسب کم (underfitting) انجام می گیرد.
(3) انقباض و نمونه برداری از ویژگی ها
این دو روش به جلوگیری از تناسب بیش از حد کمک می کند. به طور کلی انقباض میزان تأثیر هر درخت بر مدل را کاهش می دهد و فضایی را برای بهبودهای بالقوه درخت در آینده ایجاد می کند.
ویژگی ممکن است نمونه گیری فرعی را در الگوریتم جنگل تصادفی (Random Forest) دیده باشید. علاوه بر جلوگیری از تناسب بیش از حد، ویژگی های موجود در بخش ستون داده ها، محاسبات همزمان الگوریتم موازی را نیز سرعت می بخشد.
فراپارامترهای XGBoost
xgboost را به عنوان xgb وارد کنید
import xgboost as xgb
چهار گروه از هایپرپارامترهای XGBoost متمایز می شوند:
- پارامترهای عمومی (General)
- پارامترهای تقویت کننده (Booster)
- پارامترهای وظیفه یادگیری (Learning task)
- پارامترهای خط فرمان (Command line)
قبل از شروع مدل XGBoost، پارامترهای کلی، پارامترهای تقویت کننده و پارامترهای وظیفه تنظیم می شوند. فقط نسخه کنسول XGBoost از پارامترهای خط فرمان استفاده می کند.
تناسب بیش از حد یک نتیجه ساده بخاطر تنظیم نامناسب پارامتر است. با این حال، تنظیم پارامترهای مدل XGBoost چالش برانگیز است.
چه فرضیاتی زیربنای XGBoost است؟
فرضیات اصلی XGBoost عبارتند از:
- ممکن است XGBoost فرض کند که مقادیر صحیح کدگذاری شده هر متغیر ورودی یک رابطه ترتیبی دارند.
- XGBoost معتقد است داده های شما ممکن است دقیق نباشد (یعنی می تواند با مقادیر از دست رفته مقابله کند)
- الگوریتم میتواند مقادیر از دست رفته را بهطور پیشفرض تحمل کند، زیرا فرض نمیکند که همه مقادیر وجود دارند.
- هنگام استفاده از الگوریتم های مبتنی بر درخت، مقادیر از دست رفته در مرحله آموزش یاد می گیرند. سپس این باعث موارد زیر می شود:
- Sparity از طریق XGBoost کنترل می شود.
- متغیرهای دسته بندی باید به متغیرهای عددی تبدیل شوند زیرا این تکنیک فقط بردارهای عددی را مدیریت می کند.
- یک قاب داده متراکم با چند صفر در ماتریس باید به یک ماتریس بسیار پراکنده با صفرهای زیاد تبدیل شود.
این بدان معنی است که متغیرها را می توان در قالب یک ماتریس پراکنده به XGBoost وارد کرد.
نتیجه
اکنون میدانید که چگونه XGBoost و Boosting به یکدیگر متصل میشوند و همچنین برخی از ویژگیهای آن و چگونگی کاهش بیشازحد و از دست دادن ارزش عملکرد را میدانید.
مطالب زیر را هم از دست ندهید
چگونه نتایج حاشیه خطا را تفسیر کنیم؟
نحوه تعیین خودکار تعداد خوشه ها توسط قانون آرنج
هوش مصنوعی (AI) چیست؟ 3 چیز که باید بدانید
تجزیه و تحلیل آماری: تعریف، مثال
روایی نتیجه گیری آماری (SCV) چیست؟
تحلیل سئوال روش تحقیق آزمون دکتری
چگونه نتایج حاشیه خطا را تفسیر کنیم؟
تفاوت بین یادگیری ماشین، علم داده، هوش مصنوعی، یادگیری عمیق و آمار
3 پاسخ