CatBoost: تعزيز التدرج من ياندكس - دليل شامل

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

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

ابدأ الدورة

ما هو CatBoost ولماذا تحتاجه

CatBoost (Categorical Boosting) هو خوارزمية حديثة لتعزيز التدرج (Gradient Boosting)، طورها فريق من المطورين في ياندكس. تم تحسين مكتبة تعلم الآلة هذه خصيصًا للعمل مع السمات الفئوية (Categorical Features)، وهي مصممة لحل مجموعة واسعة من المهام: من التصنيف والانحدار إلى الترتيب وأنظمة التوصية.

يعتمد أساس الخوارزمية على مبادئ تعزيز التدرج باستخدام أشجار القرار، ولكن مع تحسينات جوهرية في معالجة البيانات الفئوية. يقوم CatBoost بمعالجة المتغيرات الفئوية تلقائيًا دون الحاجة إلى ترميز مسبق، مما يجعله جذابًا بشكل خاص للعمل مع البيانات الجدولية الحقيقية.

المزايا الرئيسية لـ CatBoost

معالجة تلقائية للسمات الفئوية

يحدث CatBoost ثورة في طريقة التعامل مع البيانات الفئوية. تتطلب الخوارزميات التقليدية تحويلًا مسبقًا للمتغيرات الفئوية عبر one-hot encoding أو label encoding. أما CatBoost فيستخدم طريقته الخاصة في التجميع الإحصائي المستند إلى التاريخ (CTR - Click-Through Rate)، والتي تعالج السمات الفئوية تلقائيًا دون فقدان المعلومات.

دقة عالية ومقاومة للإفراط في التخصيص (Overfitting)

يُظهر الخوارزم نتائج ممتازة على أنواع مختلفة من البيانات بفضل استخدام الأشجار المتناظرة (Symmetric Trees) وأساليب التنظيم المتقدمة. تسمح الآليات المدمجة لمنع الإفراط في التخصيص بالحصول على نتائج مستقرة حتى مع العينات الصغيرة.

مرونة في الموارد الحاسوبية

يدعم CatBoost التدريب على كل من CPU و GPU، مما يسمح بتسريع عملية التدريب بشكل كبير على كميات كبيرة من البيانات. تعمل المكتبة بكفاءة مع كل من مجموعات البيانات الصغيرة ومجموعات البيانات الصناعية الكبيرة.

التكامل مع الأدوات الشائعة

توافق كامل مع نظام Python البيئي لتحليل البيانات: Pandas و NumPy و Scikit-learn. وهذا يضمن سهولة التكامل في خطوط أنابيب تعلم الآلة الحالية.

أدوات تحليل مدمجة

يوفر CatBoost إمكانيات غنية لتصور عملية التدريب، وتحليل أهمية السمات، ومراقبة جودة النموذج في الوقت الفعلي.

الميزات التقنية للخوارزمية

معالجة السمات الفئوية

الفرق الرئيسي بين CatBoost وخوارزميات التعزيز الأخرى هو طريقة معالجة المتغيرات الفئوية. بدلاً من طرق الترميز التقليدية، يستخدم CatBoost إحصائيات قائمة على الهدف (target-based statistics) تُحسب بناءً على البيانات التاريخية. وهذا يسمح بالحفاظ على جميع المعلومات حول السمات الفئوية دون زيادة أبعاد البيانات.

الأشجار المتناظرة

يبني CatBoost أشجارًا متناظرة (متوازنة)، مما يوفر قدرة تعميم أفضل واستقرارًا في التنبؤات. وهذا يختلف عن نهج XGBoost و LightGBM اللذين يستخدمان أشجار الأوراق (Leaf-wise trees).

معالجة القيم المفقودة

يعالج الخوارزم القيم المفقودة تلقائيًا دون الحاجة إلى معالجة مسبقة إضافية للبيانات. يعتبر CatBoost القيم المفقودة فئة منفصلة ويتعامل معها بكفاءة.

دعم السمات النصية

يمكن لـ CatBoost العمل مع البيانات النصية، واستخراج السمات من النص تلقائيًا واستخدامها لتدريب النموذج.

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

التثبيت عبر pip

pip install catboost

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

pip install catboost[gpu]

استيراد الوحدات الأساسية

from catboost import CatBoostClassifier, CatBoostRegressor, CatBoostRanker
from catboost import Pool, cv, sum_models

تحضير البيانات لـ CatBoost

العمل مع السمات الفئوية

يمكن لـ CatBoost

توصيات