XGBoost: تعزيز التدرج (Gradient Boosting)

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة إلى XGBoost

XGBoost (تعزيز التدرج المتطرف) هو تطبيق عالي الأداء لخوارزمية تعزيز التدرج (Gradient Boosting)، والذي أصبح المعيار الفعلي في مجال تعلم الآلة. تم تطوير هذه المكتبة بواسطة تيانغيانغ تشن في عام 2016، وأحدثت ثورة في عالم علم البيانات (Data Science)، وأصبحت عنصرًا أساسيًا للفوز في العديد من مسابقات Kaggle.

يمثل XGBoost نظامًا محسنًا لتعزيز التدرج الموزع، مصممًا لتوفير أداء عالٍ ومرونة وقابلية للنقل. تُستخدم الخوارزمية بنشاط في مهام التصنيف والانحدار والترتيب، مما يُظهر استقرارًا استثنائيًا وقدرة على تعميم البيانات.

ما هو تعزيز التدرج (Gradient Boosting)

تعزيز التدرج هو طريقة تعلم آلي قوية تعتمد على المجموعات (Ensemble)، وتقوم على التدريب المتسلسل لنماذج ضعيفة (عادةً أشجار القرار). يركز كل نموذج جديد في المجموعة على تصحيح الأخطاء التي ارتكبتها النماذج السابقة.

مبدأ عمل تعزيز التدرج

تعمل الخوارزمية على النحو التالي:

  1. التهيئة: يتم إنشاء نموذج أساسي (عادةً تنبؤ ثابت)
  2. التدريب التكراري: في كل تكرار، يُضاف نموذج جديد يتنبأ بالباقي (الأخطاء) للنماذج السابقة
  3. التحسين: يُستخدم الانحدار التدرجي (Gradient Descent) لتقليل دالة الخسارة
  4. التجميع: يتم الحصول على التنبؤ النهائي من خلال جمع تنبؤات جميع النماذج مع الأوزان المقابلة

هندسة ومبادئ عمل XGBoost

يطبق XGBoost نسخة محسّنة من تعزيز التدرج مع مجموعة من التحسينات المبتكرة:

القرارات المعمارية الرئيسية

تحسين من الدرجة الثانية: يستخدم XGBoost معلومات المشتقات الثانية (Hessian) لدالة الخسارة، مما يوفر تقريبًا أكثر دقة وتقاربًا أسرع.

التنظيم (Regularization): دعم مدمج لتنظيم L1 و L2 يمنع الإفراط في التجهيز (Overfitting) على مستوى الخوارزمية.

البيانات المتناثرة: تعالج الخوارزمية الواعية بالتباعد (Sparsity-aware) البيانات المتناثرة بكفاءة، وتتعلم تلقائيًا الاتجاه الأمثل للقيم المفقودة.

الحوسبة المتوازية: يتم توازي خوارزمية بناء الأشجار، مما يسرّع عملية التدريب بشكل كبير.

عملية بناء الشجرة

يستخدم XGBoost خوارزمية فريدة لبناء الأشجار:

  1. المنهج القائم على المدرج التكراري (Histogram-based): بدلاً من فرز جميع قيم الميزات، تُستخدم المدرجات التكرارية لتسريع البحث عن التقسيمات المثلى
  2. البحث الجشع: تُطبق استراتيجية جشعة لاختيار أفضل تقسيمات العقد
  3. الخوارزمية التقريبية: بالنسبة لمجموعات البيانات الكبيرة، تُستخدم خوارزمية تقريبية مع الشرائح المئوية (Quantiles)

تثبيت وتهيئة XGBoost

تثبيت المكتبة

التثبيت القياسي عبر pip:

pip install xgboost

للتثبيت مع دعم GPU:

pip install xgboost[gpu]

التثبيت من الكود المصدري للحصول على أقصى أداء:

git clone --recursive https://github.com/dmlc/xgboost
cd xgboost
python setup.py install

الاستيراد والتهيئة الأساسية

import xgboost as xgb
from xgboost import XGBClassifier, XGBRegressor
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, mean_squared_error

الواجهات الرئيسية لـ XGBoost

يوفر XGBoost ثلاث واجهات رئيسية للعمل:

واجهة التعلم (Learning API) (الواجهة الأصلية)


                
    
    

توصيات