LightGBM وCatBoost
لماذا يكون LightGBM أسرع، والتقسيم القائم على المدرج التكراري، واستخدام CatBoost للسمات الفئوية.
LightGBM وCatBoost درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ما بعد XGBoost
يتمتع XGBoost بقوة كبيرة، لكنه قد يكون بطيئًا على مجموعات البيانات الضخمة جدًا. وتُعد LightGBM وCatBoost مكتبتين أحدث للتعزيز بالتدرج، إذ تحسّنان السرعة وتتعاملان مع البيانات الفئوية بسلاسة أكبر.
التقسيمات المعتمدة على المدرج التكراري
تجمع LightGBM الميزات المستمرة في فئات منفصلة (مدرج تكراري) قبل البحث عن نقاط التقسيم. وهذا يجعل العثور على نقاط التقسيم أسرع بكثير ويستخدم ذاكرة أقل من الطريقة الدقيقة.
النمو حسب الأوراق
على خلاف النمو حسب المستويات، تنمّي LightGBM الأشجار حسب الأوراق؛ إذ تقسم أولًا الورقة التي تحقق أكبر انخفاض في الخسارة. ويتقارب النموذج بصورة أسرع، لكنه قد يفرط في الملاءمة، لذلك يمكن التحكم فيه باستخدام num_leaves.
LGBMClassifier و num_leaves
تُعد num_leaves أهم معلمة للتحكم في التعقيد في LightGBM. تزيد القيم الأكبر من الدقة، لكنها ترفع خطر فرط الملاءمة. ومن القواعد التقريبية إبقاء num_leaves < 2^max_depth.
from lightgbm import LGBMClassifier
model = LGBMClassifier(
n_estimators=300,
num_leaves=31,
learning_rate=0.05,
random_state=0,
)
model.fit(Xtr, ytr)
print(model.score(Xte, yte))مزايا LightGBM من حيث السرعة
بفضل التجميع في مدرجات تكرارية والنمو حسب الأوراق وأخذ عينات فرعية من الميزات والبيانات، تتدرب LightGBM بسرعة ملحوظة أكبر من XGBoost على مجموعات البيانات الكبيرة، وغالبًا ما تحقق دقة مماثلة.
from lightgbm import LGBMClassifier
model = LGBMClassifier(
n_estimators=1000,
num_leaves=63,
learning_rate=0.03,
feature_fraction=0.8,
bagging_fraction=0.8,
)الإيقاف المبكر في LightGBM
تدعم LightGBM الإيقاف المبكر عبر دوال الاستدعاء. مرروا مجموعة تقييم واستدعاء early_stopping لإيقاف التدريب عندما يستقر المقياس.
import lightgbm as lgb
from lightgbm import LGBMClassifier
model = LGBMClassifier(n_estimators=2000, learning_rate=0.03)
model.fit(
Xtr, ytr,
eval_set=[(Xte, yte)],
callbacks=[lgb.early_stopping(50)],
)CatBoost والميزات الفئوية
تتألق CatBoost مع البيانات الفئوية. إذ يمكن تمرير الأعمدة الفئوية الخام مباشرةً عبر cat_features من دون الحاجة إلى ترميز يدوي.
وتستخدم داخليًا إحصاءات الهدف المرتبة لتجنب تسرّب الهدف.
from catboost import CatBoostClassifier
model = CatBoostClassifier(
iterations=500,
learning_rate=0.05,
depth=6,
verbose=False,
)
model.fit(Xtr, ytr, cat_features=[0, 3, 5])لماذا يُعد غياب الترميز قويًا
في المكتبات الأخرى، يجب استخدام الترميز الأحادي أو ترميز الفئات، ما قد يؤدي إلى تضخم عدد الأبعاد أو تسرّب الهدف. أما CatBoost فتتعامل مع ذلك داخليًا باستخدام التعزيز المرتب، مما يقلل فرط الملاءمة في الميزات الفئوية.
المعلمات الأساسية في CatBoost
تستخدم CatBoost المعلمة iterations (مثل n_estimators)، وlearning_rate، وdepth (إذ تبني أشجارًا متماثلة). وغالبًا ما تحقق نتائج جيدة مع قدر قليل من الضبط.
from catboost import CatBoostClassifier
model = CatBoostClassifier(
iterations=1000,
learning_rate=0.03,
depth=8,
l2_leaf_reg=3.0,
verbose=100,
)مقارنة السرعة
إرشادات عامة:
- LightGBM عادةً الأسرع على مجموعات البيانات الرقمية الكبيرة
- CatBoost الأفضل عند وجود العديد من الميزات الفئوية، مع حاجة أقل إلى الضبط
- XGBoost ناضج ومتين، وقيمه الافتراضية ممتازة
اختبروا أداء المكتبات الثلاث على بياناتكم؛ فالنتائج تختلف باختلاف المسألة.
اختيار المكتبة
إذا كانت لديكم بيانات فئوية كثيرة، فابدؤوا بـ CatBoost. أما للجداول الرقمية الضخمة وللحصول على سرعة أعلى، فاختاروا LightGBM. وللحصول على خط أساس مُجرَّب وموثوق، اختاروا XGBoost. تعتمد المكتبات الثلاث على التعزيز بالتدرج، لذا يمكن نقل المفاهيم بينها.
تحقق سريع
اختبروا معرفتكم بمكتبات التعزيز بالتدرج.
خلاصة
الخلاصة: تستخدم LightGBM نموًا حسب الأوراق قائمًا على المدرج التكراري، وتتحكم فيه num_leaves لتحقيق السرعة على البيانات الرقمية الكبيرة. وتتعامل CatBoost مع الميزات الفئوية أصليًا عبر cat_features من دون ترميز. وكلتاهما، إلى جانب XGBoost، من أشكال التعزيز بالتدرج. أجروا اختبارًا مقارنًا لاختيار المكتبة؛ استخدموا CatBoost للبيانات الفئوية وLightGBM عند إعطاء الأولوية للسرعة.
الأسئلة الشائعة
هل درس «LightGBM وCatBoost» مجاني؟
نعم — نص درس «LightGBM وCatBoost» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ماذا ستتعلم في «LightGBM وCatBoost»؟
لماذا يكون LightGBM أسرع، والتقسيم القائم على المدرج التكراري، واستخدام CatBoost للسمات الفئوية. تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟
لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «LightGBM وCatBoost»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟
نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أشجار القرار: النظرية والتنفيذ
- الغابات العشوائية وBagging
- التعزيز التدرجي: GBM وXGBoost
- LightGBM وCatBoost