مقدمة إلى XGBoost
XGBoost (تعزيز التدرج المتطرف) هو تطبيق عالي الأداء لخوارزمية تعزيز التدرج (Gradient Boosting)، والذي أصبح المعيار الفعلي في مجال تعلم الآلة. تم تطوير هذه المكتبة بواسطة تيانغيانغ تشن في عام 2016، وأحدثت ثورة في عالم علم البيانات (Data Science)، وأصبحت عنصرًا أساسيًا للفوز في العديد من مسابقات Kaggle.
يمثل XGBoost نظامًا محسنًا لتعزيز التدرج الموزع، مصممًا لتوفير أداء عالٍ ومرونة وقابلية للنقل. تُستخدم الخوارزمية بنشاط في مهام التصنيف والانحدار والترتيب، مما يُظهر استقرارًا استثنائيًا وقدرة على تعميم البيانات.
ما هو تعزيز التدرج (Gradient Boosting)
تعزيز التدرج هو طريقة تعلم آلي قوية تعتمد على المجموعات (Ensemble)، وتقوم على التدريب المتسلسل لنماذج ضعيفة (عادةً أشجار القرار). يركز كل نموذج جديد في المجموعة على تصحيح الأخطاء التي ارتكبتها النماذج السابقة.
مبدأ عمل تعزيز التدرج
تعمل الخوارزمية على النحو التالي:
- التهيئة: يتم إنشاء نموذج أساسي (عادةً تنبؤ ثابت)
- التدريب التكراري: في كل تكرار، يُضاف نموذج جديد يتنبأ بالباقي (الأخطاء) للنماذج السابقة
- التحسين: يُستخدم الانحدار التدرجي (Gradient Descent) لتقليل دالة الخسارة
- التجميع: يتم الحصول على التنبؤ النهائي من خلال جمع تنبؤات جميع النماذج مع الأوزان المقابلة
هندسة ومبادئ عمل XGBoost
يطبق XGBoost نسخة محسّنة من تعزيز التدرج مع مجموعة من التحسينات المبتكرة:
القرارات المعمارية الرئيسية
تحسين من الدرجة الثانية: يستخدم XGBoost معلومات المشتقات الثانية (Hessian) لدالة الخسارة، مما يوفر تقريبًا أكثر دقة وتقاربًا أسرع.
التنظيم (Regularization): دعم مدمج لتنظيم L1 و L2 يمنع الإفراط في التجهيز (Overfitting) على مستوى الخوارزمية.
البيانات المتناثرة: تعالج الخوارزمية الواعية بالتباعد (Sparsity-aware) البيانات المتناثرة بكفاءة، وتتعلم تلقائيًا الاتجاه الأمثل للقيم المفقودة.
الحوسبة المتوازية: يتم توازي خوارزمية بناء الأشجار، مما يسرّع عملية التدريب بشكل كبير.
عملية بناء الشجرة
يستخدم XGBoost خوارزمية فريدة لبناء الأشجار:
- المنهج القائم على المدرج التكراري (Histogram-based): بدلاً من فرز جميع قيم الميزات، تُستخدم المدرجات التكرارية لتسريع البحث عن التقسيمات المثلى
- البحث الجشع: تُطبق استراتيجية جشعة لاختيار أفضل تقسيمات العقد
- الخوارزمية التقريبية: بالنسبة لمجموعات البيانات الكبيرة، تُستخدم خوارزمية تقريبية مع الشرائح المئوية (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) (الواجهة الأصلية)
أيضاً في المكتبة
إرسال رسائل SMS باستخدام Rust: مكتبات API للتكامل مع خدمات SMS
NLog لـ C# (.NET): دليل شامل مع أمثلة عملية
إطار عمل CLI لجافا سكريبت (Node.js): Commander.js – إنشاء تطبيقات وحدة التحكم
الجغرافيا المكانية والخرائط في C++: مكتبات libcurl، nlohmann/json، Leaflet
تسلسل الكائنات في Rust: serde, bincode, JSON و YAML
توصيات