ماذا تعني مكتبة XGBoost؟
استخدام مكتبة XGBoost على منصة watsonx.ai اشترك للتعرف على تحديثات الذكاء الاصطناعي
رسم توضيحي يحتوي على مجموعة من الرموز التوضيحية على شكل سُحُب، ومخطط دائري، ورسم بياني من الرموز التوضيحية

تاريخ النشر: 9 مايو 2024
المساهمون: Eda Kavlakoglu، وErika Russi

ماذا تعني مكتبة XGBoost؟

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

طوَّر Tianqi Chen، من جامعة واشنطن، مكتبة XGBoost، وتعد هذه المكتبة تنفيذًا متقدمًا للتعزيز المتدرج بالإطار العام ذاته؛ أي إنها تجمع بين أشجار نماذج التعلم الضعيفة في نماذج تعلم قوية عن طريق إضافة البواقي (القيم المتبقية). تتوفر المكتبة بلغات البرمجة ++C وPython وR وJava وScala وJulia1.1.

 

أشجار القرار في مقابل التعزيز

تُستخدم أشجار القرار في التعلم الآلي لمهام التصنيف أو الانحدار. فتستخدم أشجارُ القرار بنية شجرة هرمية إذ تمثل العقدة الداخلية الخاصية، بينما الفرع يمثل قاعدة القرار، وكل عقدة طرفية تمثل نتيجة مجموعة البيانات.

ونظرًا لأن أشجار القرار معرضة لفرط التخصيص (فرط الملاءَمة)، فيمكن في كثير من الأحيان استخدام الطرق التجميعية، كالتعزيز مثلًا، لإنشاء نماذج أكثر قوة. ويعمل التعزيزعلى دمج عدة أشجار ضعيفة فردية؛ أي النماذج التي تعمل أفضل من الصدفة العشوائية، ولو قليلًا، لتشكيل نموذج تعلم قوي. يتم تدريب كل نموذج تعلم ضعيف على نحو متسلسل لتصحيح الأخطاء التي وقعت فيها النماذج السابقة. ثم بعد مئات التكرارات، تُحوَّل نماذج التعلم الضعيفة إلى نماذج تعلم قوية.

وتعد الغابات العشوائية وخوارزميات التعزيز طرقًا من طرق التعلم الجماعي الشائعة؛ التي تستخدم أشجار نماذج التعلم الفردية لتحسين الأداء التنبُّؤي. إذ تعتمد الغابات العشوائية على مفهوم التجميع (تجميع بوتستراب) وتدريب كل شجرة على نحوٍ مستقل لدمج تنبؤاتها، بينما تستخدم خوارزميات التعزيز نهجًا إضافيًا بينما يتم تدريب نماذج التعلم الضعيفة على نحوٍ متسلسل لتصحيح أخطاء النماذج السابقة.

أشجار القرار المعززة بالتدرج 

تعد أشجار القرار المعززة بالتدرج نوعًا من أنواع خوارزمية التعزيز التي تستخدم النزول الاشتقاقي.وكما هو الحال مع طرق التعزيز الأخرى، يبدأ التعزيز الاشتقاقي بنموذج تعلم ضعيف لتقديم التنبؤات. إذ تُعرف شجرة القرار الأولى في التعزيز الاشتقاقي باسم نموذج التعلم الأساسي. ثم بعد ذلك، يتم إنشاء أشجار جديدة بطريقة إضافية حسب الأخطاء التي ظهرت في نموذج التعلم الأساسي. ثم تحتسب الخوارزمية بواقي تنبؤات كل شجرة لتحديد مدى ابتعاد تنبؤات النموذج عن الواقع. الباقي هو الفرق بين القيم المتوقعة والقيم الفعلية للنموذج.وبعد ذلك تُجمَّع البواقي لتسجيل النموذج باستخدام دالة الخسارة.

في التعلُّم الآلي، تُستخدم دوال الخسارة لقياس أداء النموذج. في أشجار القرار ذات التعزيز بالتدرج، يشير التدرج إلى الإنخفاض المتدرج. عند تدريب نماذج جديدة، نستخدم النزول التدريجي لتقليل الخسارة (بمعنى تحسين أداء النموذج). يُعدُّ النزول التدريجي خوارزمية من خوارزميات التحسين الشائعة، ويُستخدم لتقليل دالة الخسارة التي تحدث حين تقع مشكلات في التعلم الآلي. من أمثلة دوال الخسارة: متوسط الخطأ التربيعي أو متوسط الخطأ المطلق لمشكلات الانحدار، أو خسارة الأنتروبيا المتقاطعة لمشكلات التصنيف، أو قد يتم تطوير دوال خسارة مخصصة حسب حاجة كل حالة استخدام وكل مجموعة بيانات.

لماذا تعتبر حوكمة الذكاء الاصطناعي ضرورة تجارية لتوسيع نطاق الذكاء الاصطناعي للمؤسسات

تعرَّف على المعوقات التي تَحُول دون اعتماد الذكاء الاصطناعي، لا سيما عدم تطبيق حوكمة الذكاء الاصطناعي، وعدم إيجاد حلول لإدارة المخاطر.

محتوى ذو صلة سجِّل في الكتاب الإلكتروني حول سير عمل الذكاء الاصطناعي المسؤول
مميزات مكتبة XGBoost

فيما يلي مناقشة لبعض ميزات مكتبة XGBoost المقدمة بلغة Python التي جعلتها مكتبة متفوقة مقارنةً بحزمة التعزيز بالتدرج العادية في مكتبة scikit-learn2:

  • الحوسبة المتوازية والموزَّعة:تخزن المكتبة البيانات في وحدات داخل الذاكرة تُسمَّى الكتل. يمكن توزيع الكتل المنفصلة على عدة أجهزة أو تخزينها على ذاكرة خارجية باستخدام الحوسبة خارج الذاكرة الرئيسية للكمبيوتر. وتتيح مكتبة XGBoost حالات استخدام أكثر تقدمًا كذلك، مثل التدريب الموزَّع على مجموعة من أجهزة الكمبيوتر لتسريع عملية الحوسبة. كما يمكن أيضًا تنفيذ مكتبة XGBoost في الوضع الموزَّع باستخدام أدوات مثل Apache Spark أو Dask أو Kubernetes.
  • خوارزمية الجلب المسبق المتعاونة مع ذاكرة التخزين المؤقت: تستخدم مكتبة XGBoost خوارزمية جلب مسبق تتعاون مع ذاكرة التخزين المؤقت، وتساعد على تقليل وقت التشغيل لمجموعات البيانات الكبيرة. يمكن للمكتبة أن تعمل بسرعة أكبر عشر مرات من الأطر الأخرى الموجودة على جهاز واحد. وبفضل سرعتها المذهلة هذه، بإمكان مكتبة XGBoost معالجة مليارات الأمثلة باستهلاك موارد أقل، مما يجعلها نظام تعزيز شجري قابلًا للتوسيع.
  • الضبط (التنظيم) المدمج:تتضمن مكتبة XGBoost الضبط (التنظيم) على أنَّه جزء من هدف التعلم، على عكس التعزيز بالتدرج العادي. ويمكن أيضًا ضبط البيانات عن طريق ضبط المعلمات الفائقة. كما أن استخدام الضبط المدمج في مكتبة XGBoost يتيح لهذه المكتبة تقديم نتائج أفضل من حزمة التعزيز بالتدرج العادية scikit-learn.
  • حل مشكلة القيم المفقودة:في حالات ندرة البيانات، تستخدم مكتبة XGBoost خوارزمية تراعي هذه الندرة. عندما تكون هناك قيمة مفقودة في مجموعة البيانات، تُصنَّف نقطة البيانات في الاتجاه الافتراضي وتتعلم الخوارزمية أفضل اتجاه للتعامل مع القيم المفقودة.
كيف تعمل مكتبة XGBoost

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

تقسيم بياناتك وتحويلها إلى تنسيق DMatrix

مع افتراض أنك أجريت بالفعل تحليلًا استكشافيًّا للبيانات، ستكون الخطوة التالية أن تستمر في توزيع بياناتك بين مجموعة بيانات التدريب ومجموعة بيانات الاختبار. ثم بعد ذلك، ينبغي أن تحول بياناتك إلى تنسيق DMatrix الذي تتوقعه مكتبة XGBoost33. يعد DMatrix هيكل البيانات الداخلي لمكتبة XGBoost المحسّنة لتحقيق كفاءة الذاكرة وسرعة التدريب4.

إنشاء النموذج وتقييمه

ثم بعد ذلك، ستقوم بإنشاء نموذج XGBoost، واعتمادًا على حالة استخدامك، عليك أن تحدد وظيفة الهدف التي ترغب في استخدامها من خلال المعلمة الفائقة "object". على سبيل المثال، إذا كانت لديك مهمة تصنيف متعددة الفئات، فيجب تعيين الهدف على "multi:softmax"55. أو بدلًا من ذلك، إذا كانت لديك مشكلة تصنيف ثنائي، فيمكنك استخدام هدف الانحدار اللوغاريتمي"binary:logistic". والآن يمكنك استخدام مجموعة التدريب لتدريب النموذج والتنبؤ بالتصنيفات لمجموعة البيانات على انفراد كمجموعة اختبار. يمكنك تقييم أداء النموذج عن طريق مقارنة القيم المتوقعة بالقيم الفعلية لمجموعة الاختبار. يمكنك استخدام مقاييس مثل الدقة أو الضبط أو التذكير أو مقياس f-1 لتقييم نموذجك. وقد ترغب أيضًا في عرض تمثيل رسومي للإيجابيات الحقيقية، والسلبيات الحقيقية، والإيجابيات الكاذبة، والسلبيات الكاذبة باستخدام مصفوفة الثقة.

ضبط المعلمات الفائقة

ثم بعد ذلك، قد ترغب في تكرار مجموعة من المعلمات الفائقة للمساعدة على تحسين أداء نموذجك. يعد ضبط المعلمات الفائقة عملية تحسين للمعلمات الفائقة لخوارزمية التعلم الآلي. يمكن العثور على أفضل المعلمات الفائقة باستخدام طرق البحث الشبكي والتحقق المتبادل، والتي تتكرر خلال قاموس يضم تجمعات المعلمات الفائقة المحتملة.

معلمات فرعية مختارة لأشجار التعزيز بالتدرج في مكتبة XGBoost

فيما يلي شرح لبعض المعلمات الفائقة المتاحة لضبط الأشجار المعززة بالتدرج في مكتبة التعلم XGBoost:

  • يُعدُّ معدل التعلم (المعروف أيضًا باسم "حجم الخطوة" أو "الانكماش") أهم معلمة فائقة للتعزيز بالتدرج. ويُعرف باسم "eta"، في مكتبة التعلم XGBoost، ويجب أن يكون رقمًا بين 0 و1 وقيمته الافتراضية هي 0.36. . ويشير معدل التعلم إلى المعدل الذي تتعلم به خوارزمية التعزيز من كل تكرار. فمثلًا تعني القيمة المنخفضة لـ eta تعلمًا أبطأ؛ لأنها تقلل من مساهمة كل شجرة في المجموعة، وبالتالي تساعد في منع فرط التخصيص. وعلى العكس من ذلك، فإن القيمة الأعلى لـ eta تسرِّع التعلم، لكنها قد تؤدي إلى فرط التخصيص إذا لم تُضبط بالعناية المطلوبة.
  • تحدد المعلمة الفائقة n_estimators عدد الأشجار المطلوب بناؤها في المجموعة. كل جولة تعزيز تضيف شجرة جديدة إلى المجموعة ويتعلم النموذج ببطء كيفية تصحيح الأخطاء التي وقعت فيها الأشجار السابقة. يوجِّه N_estimators مدى تعقيد النموذج ويؤثر في كل من وقت التدريب، وقدرة النموذج على التعميم على البيانات غير المرئية. عادةً ما تؤدي زيادة قيمة n_estimators إلى زيادة تعقيد النموذج، إذ إنها تسمح للنموذج بالتقاط أنماط أكثر تعقيدًا في البيانات. لكن مع ذلك، قد يؤدي إضافة عدد كبير جدًا من الأشجار إلى فرط التخصيص. بصفة عامة، مع ارتفاع قيمة n_estimators، يجب أن ينخفض معدل التعلم.
  • يتحكم جاما (المعروف أيضًا باسم مضاعف لاغرانج أو معامل تقليل الخسارة الأدنى) في الحد الأدنى لكمية تقليل الخسارة المطلوبة لإجراء تقسيم إضافي على عقدة فرعية من الشجرة. تعني القيمة المنخفضة أن نموذج XGBoost يتوقف مبكرًا لكنه قد لا يجد أفضل حل؛ بينما تعني القيمة الأعلى أن XGBoost يستمر في التدريب لفترة أطول، مما قد يؤدي إلى العثور على حلول أفضل، لكن مع وجود خطر أكبر في حدوث فرط تخصيص. لا يوجد حد أعلى لجاما. القيمة الافتراضية في نموذج XGBoost هي الصفر وأي شيء أعلى من 10 يعتبر مرتفعًا.
  • يمثل Max_depth مدى عمق نمو كل شجرة في عملية التعزيز أثناء التدريب. يشير عمق الشجرة إلى عدد المستويات أو الانقسامات التي لديها من عقدة الجذر إلى العُقد الفرعية. ستؤدي زيادة هذه القيمة إلى جعل النموذج أكثر تعقيدًا وأكثر عرضة لفرط التخصيص. في نموذج XGBoost، تكون قيمة max_depth الافتراضية هي 6، مما يعني أنه يُسمح لكل شجرة في النموذج بالنمو إلى عمق أقصى يبلغ 6 مستويات.
تنفيذ XGBoost في لغة Python

حينما تشرع في قراءة هذا الجزء التعليمي، سترى أنه يستخدم خوارزمية XGBoost لإجراء مهمة التصنيف.

مقارنة XGBoost بخوارزميات التعزيز الأخرى

تعد خوارزمية XGBoost واحدة من العديد من خوارزميات التعزيز مفتوحة المصدر المتوفرة. في هذا القسم، سنقارن XGBoost بثلاثة أطر تعزيز أخرى.

خوارزمية XGBoost في مقابل خوارزمية AdaBoost

تعد خوارزمية AdaBoost خوارزمية تعزيز مبكرة ابتكرها كل من Yoav Freund و Robert Schapire في عام 19957. في خوارزمية AdaBoost، يكون التركيز أكثر على التنبؤات غير الصحيحة من خلال نظام أوزان الترجيح الذي يؤثر في نقاط البيانات التي من الصعب جدًا التنبؤ بها. أولًا، يجب تعيين وزن ترجيح محدد لكل نقطة بيانات في مجموعة البيانات. وبما أن نماذج التعلم الضعيفة تتنبأ بمثال على نحو صحيح، فإن وزن ترجيح هذا المثال يتم تقليله. لكن إذا أخطأت نماذج التعلم في مثال ما، فإن وزن ترجيح نقطة البيانات هذه سوف يزداد.  عند إنشاء أشجار جديدة، تعتمد أوزان ترجيحها على التصنيفات غير الصحيحة لأشجار نماذج التعلم السابقة. ومع زيادة عدد نماذج التعلم، فإن العينات التي يسهل التنبؤ بها ستُستخدم بدرجة أقل مع نماذج التعلم المستقبلية بينما نقاط البيانات التي يصعب التنبؤ بها سيتم ترجيحها بشكل بارز. نظرًا لدقتهما وسرعتهما، نجد أن التعزيز الاشتقاقي وخوارزمية XGBoost يمثلان غالبًا بدائل قوية عن خوارزمية AdaBoost.

خوارزمية XGBoost في مقابل CatBoost

يعد CatBoost إطار عمل آخر لتعزيز التدرج.تم تطويره من قِبل Yandex في عام 2017، وهو إطار متخصص في التعامل مع الميزات الفئوية دون حاجة إلى معالجة مسبقة، ويعمل جيدًا وبشكل مبتكر عمومًا دون حاجة إلى إجراء ضبط مكثف للمعلمات الفائقة8. مثلها مثل مكتبة XGBoost، تتميز مكتبة CatBoost بدعم مدمج للتعامل مع البيانات المفقودة. إنَّ مكتبة CatBoost مفيدة بصورة كبيرة لمجموعات البيانات التي تحتوي على العديد من الميزات التصنيفية. وفقًا لشركة Yandex، يُستخدم الإطار في عمليات البحث وأنظمة التوصية (الاقتراح) وأدوات المساعِد الرقمي الشخصي والسيارات ذاتية القيادة والتنبؤ بالطقس وغيرها من المهام.

خوارزمية XGBoost في مقابل خوارزمية LightGBM

تعد LightGBM (آلة التعزيز المتدرج الخفيف) آخر خوارزمية تعزيز اشتقاقي نتكلم عنها ونراجعها. طوَّرت شركة Microsoft خوارزمية LightGBM وأصدرتها لأول مرة في عام 2016.9. في حين أن معظم خوارزميات التعلم بطريقة شجرة القرار تعمل على تنمية الأشجار على أساس العمق، فإن خوارزمية LightGBM تستخدم استراتيجية نمو الأشجار على أساس الفروع10. مثلها مثل XGBoost، تتميز LightGBM بسرعة ودقة تدريب النموذج وتؤدي أداءً جيدًا مع مجموعات البيانات الكبيرة.

تطبيقات XGBoost

تُستخدم XGBoost وأشجار القرار المعززة بالاشتقاق في مجموعة متنوعة من تطبيقات علوم البيانات، تشمل ما يلي:

  • تعلم الترتيب:يعد التصنيف أكثر حالات الاستخدام شيوعًا لخوارزمية XGBoost. في استرجاع المعلومات، يتمثل هدف تعلم الترتيب في تقديم محتوى للمستخدمين مرتبًا حسب مدى الصلة. في مكتبة XGBoost، يعتمد XGBRanker على خوارزمية LambdaMART11
  • التنبؤ بمعدل عدد مرات النقر على الإعلان:استخدم الباحثون نموذجًا مدرَّبًا بواسطة XGBoost لتحديد عدد مرات النقر على الإعلانات عبر الإنترنت خلال 10 أيام من بيانات النقر. كان هدف البحث هو قياس مدى فاعلية الإعلانات عبر الإنترنت وتحديد الإعلانات التي تعمل بشكل جيد 12.
  • تنبؤات مبيعات المتاجر:يمكن استخدام XGBoost للنمذجة التنبؤية، كما هو موضح في هذه الورقة حيث تم التنبؤ بالمبيعات من 45 متجرًا من متاجر Walmart باستخدام نموذج XGBoost13.
  • تصنيف البرامج الضارة:باستخدام مصنِّف XGBoost، تمكن المهندسون في الجامعة التقنية في مدينة كوشيتسه Košice السلوفاكية من تصنيف البرامج الضارة بدقة، كما هو موضح في ورقتهم البحثية14.
  • مسابقات شركة Kaggle:ظلت خوارزمية XGBoost الخوارزمية المتفوقة الشهيرة في مسابقات Kaggle، كما هو موضح في صفحة مجتمع DMLC (مجتمع التعلم الآلي الموزَّع (العميق)) التي تعرض قائمة بالفائزين في مسابقات Kaggle الأخيرة والذين استخدموا XGBoost في مشاركاتهم15
موارد ذات الصلة ما هي شجرة القرار؟

تعرَّف على خوارزمية التعلم الموجَّه غير المتعلقة بالمعلمات، والتي يتم استخدامها لمهام التصنيف والانحدار.

ما هو التعزيز؟

تعرَّف على طريقة التعلم الجماعي هذه، والتي تجمع مجموعة من نماذج التعلم الضعيفة في نموذج تعلم قوي.

تنفيذ XGBoost في لغة R

حينما تشرع في قراءة هذا الجزء التعليمي، سترى أنه يستخدم خوارزمية XGBoost لإجراء مهمة التصنيف.

الحواشي

1 "Scalable and Flexible Gradient Boosting," https://xgboost.ai/ (الرابط موجود خارج موقع ibm.com).

2 Tianqi Chen and Carlos Guestrin, "XGBoost: A Scalable Tree Boosting System," University of Washington, 10 June 2016, https://arxiv.org/pdf/1603.02754 (link resides outside ibm.com).

3 "XGBoost Python Package Introduction, Data Interface," https://xgboost.readthedocs.io/en/stable/python/python_intro.html#data-interface (الرابط موجود خارج موقع ibm.com).

4 "XGBoost API Reference, Core Data Structure," https://xgboost.readthedocs.io/en/stable/python/python_api.html#module-xgboost.core (الرابط موجود خارج موقع ibm.com).

5 "XGBoost Parameters, Learning Task Parameters," https://xgboost.readthedocs.io/en/stable/parameter.html#learning-task-parameters (الرابط موجود خارج موقع ibm.com).

6 "XGBoost Parameters for Tree Booster," https://xgboost.readthedocs.io/en/stable/parameter.html#parameters-for-tree-booster (الرابط موجود خارج موقع ibm.com).

7 Yoav Freund and Robert E. Schapire, "A decision-theoretic generalization of on-line learning and an application to boosting," Journal of Computer and System Sciences, Vol. 55, pp. 119–139, August 1997.

8 "CatBoost is a high-performance open source library for gradient boosting on decision trees," https://catboost.ai/ (الرابط موجود خارج موقع ibm.com).

9 Qi Meng, Guolin Ke, Taifeng Wang, Wei Chen, Qiwei Ye, Zhi-Ming Ma and Tie-Yan Liu, "A Communication-Efficient Parallel Algorithm for Decision Tree," Peking University, Microsoft Research and Chinese Academy of Mathematics and Systems Science, 4 November 2016, https://arxiv.org/pdf/1611.01276 (الرابط موجود خارج موقع ibm.com).

10 "LightGBM Features, Leaf-wise (Best-first) Tree Growth," https://lightgbm.readthedocs.io/en/latest/Features.html#leaf-wise-best-first-tree-growth (link resides outside ibm.com).

11 "XGBoost Tutorials, Learning to Rank Overview," https://xgboost.readthedocs.io/en/latest/tutorials/learning_to_rank.html#overview (الرابط موجود خارج موقع ibm.com).

12 AlAli Moneera, AlQahtani Maram, AlJuried Azizah, Taghareed AlOnizan, Dalia Alboqaytah, Nida Aslam and Irfan Ullah Khan, "Click through Rate Effectiveness Prediction on Mobile Ads Using Extreme Gradient Boosting," College of Computer Science and Information Technology, Imam Abdulrahman bin Faisal University, 12 September 2020, https://www.techscience.com/cmc/v66n2/40673/html (الرابط موجود خارج موقع ibm.com).

13 Yetunde Faith Akande, Joyce Idowu, Abhavya Gautam, Sanjay Misra, Oluwatobi Noah Akande and Ranjan Kumar Behera, "Application of Xgboost Algorithm for Sales Forecasting Using Walmart Dataset," Landmark University, Ladoke Akintola University of Technology, Brandan University, Covenant University and XIM University, June 2022, https://www.researchgate.net/publication/361549465_Application_of_XGBoost_Algorithm_for_Sales_Forecasting_Using_Walmart_Dataset (الرابط موجود خارج موقع ibm.com).

14 Jakub Palša, Norbert Ádám, Ján Hurtuk, Eva Chovancová, Branislav Madoš, Martin Chovanec and Stanislav Kocan, "MLMD—A Malware-Detecting Antivirus Tool Based on the XGBoost Machine Learning Algorithm," MDPI.com Journal of Applied Sciences, Vol 12, 6672, 1 July 2022, https://www.mdpi.com/2076-3417/12/13/6672 (الرابط موجود خارج موقع ibm.com).

15 "Distributed (Deep) Machine Learning Community XGBoost Machine Learning Challenge Winning Solutions," https://github.com/dmlc/xgboost/tree/master/demo#machine-learning-challenge-winning-solutions (الرابط موجود خارج موقع ibm.com).