My IBM Log in اشترك

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

9 مايو 2024

المؤلفين

Eda Kavlakoglu

Program Manager

Erika Russi

Data Scientist

IBM

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

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

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

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

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

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

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

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

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

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

مميزات مكتبة XGBoost

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

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

كيف تعمل مكتبة XGBoost

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

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

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

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

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

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

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

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

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

  • يُعدُّ معدل التعلم (المعروف أيضًا باسم "حجم الخطوة" أو "الانكماش") أهم معلمة ضبط فائقة للتعزيز الاشتقاقي. في مكتبة XGBoost، يُعرف باسم "eta" وينبغي أن يكون رقمًا بين 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 بخوارزميات التعزيز الأخرى

تعد خوارزمية 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 وأصدرتها لأول مرة في عام 20169. في حين أن معظم خوارزميات التعلم بطريقة أشجار القرار تعمل على تنمية الأشجار عموديًا، فإن خوارزمية LightGBM تستخدم إستراتيجية نمو الأشجار على أساس الأوراق10. وكما هو الحال في مكتبة XGBoost، تتميز خوارزمية LightGBM بسرعة ودقة تدريب النماذج وتؤدي أداءً جيدًا مع مجموعات البيانات الكبيرة.

تطبيقات XGBoost

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

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

1 "التعزيز الاشتقاقي الموسع والمرن"، https://xgboost.ai/.

2 Tianqi Chen وCarlos Guestrin، "XGBoost: نظام تعزيز الأشجار الموسع"، جامعة واشنطن، 10 يونيو 2016، https://arxiv.org/pdf/1603.02754.

3 "مقدمة إلى حزمة XGBoost Python، واجهة البيانات"، https://xgboost.readthedocs.io/en/stable/python/python_intro.html#data-interface.

4 "مرجع واجهة برمجة تطبيقات XGBoost، بنية البيانات الأساسية"، https://xgboost.readthedocs.io/en/stable/python/python_api.html#module-xgboost.core.

5 "معلمات XGBoost، معلمات مهمة التعلم"، https://xgboost.readthedocs.io/en/stable/parameter.html#learning-task-parameters.

"معلمات XGBoost لأداة تعزيز الأشجار"، https://xgboost.readthedocs.io/en/stable/parameter.html#parameters-for-tree-booster.

7 Yoav Freund وRobert E. Schapire، تعميم التعلم الإلكتروني بنظرية اتخاذ القرارات وتطبيقات التعزيز"، مجلة Journal of Computer and System Sciences، المجلد 55، ص. 119–139، أغسطس 1997.

8 "CatBoost هي مكتبة مفتوحة المصدر عالية الأداء للتعزيز الاشتقاقي بطريقة أشجار القرار"، https://catboost.ai/.

9 Qi Meng وGuolin Ke وTaifeng Wang وWei Chen وQiwei Ye وZhi-Ming Ma وTie-Yan Liu"خوارزمية توازي فعالة لأشجار القرار"، جامعة بكين، وبحث Microsoft ، والأكاديمية الصينية Academy of Mathematics and Systems Science، 4 نوفمبر 2016، https://arxiv.org/pdf/1611.01276.

10 "مزايا LightGBM، نمو الأشجار بإضافة الأوراق (الأفضل أولاً)"، https://lightgbm.readthedocs.io/en/latest/Features.html#leaf-wise-best-first-tree-growth.

11 "دروس XGBoost، نظرة عامة على تعلم الترتيب"، https://xgboost.readthedocs.io/en/latest/tutorials/learning_to_rank.html#overview.

12 AlAli Moneera وAlQahtani Maram وAlJuried Azizah وTaghareed AlOnizan وDalia Alboqaytah وNida Aslam وIrfan Ullah Khan، "التنبؤ بفعالية معدل النقر على الإعلانات عبر الهاتف المحمول باستخدام التعزيز الاشتقاقي الصارم"، كلية علوم الحاسب وتقنية المعلومات، جامعة الإمام عبد الرحمن بن فيصل، 12 سبتمبر 2020، https://www.techscience.com/cmc/v66n2/40673/html.

13 Yetunde Faith Akande وJoyce Idowu وAbhavya Gautam وSanjay Misra وOluwatobi Noah Akande وRanjan Kumar Behera، "تطبيق خوارزمية Xgboost للتنبؤ بالمبيعات باستخدام مجموعة بيانات Walmart"، جامعة لاندمارك، جامعة لادوك أكينتولا للتكنولوجيا، جامعة براندان، جامعة كوفيننت وجامعة XIM، يونيو 2022، https://www.researchgate.net/publication/361549465_Application_of_XGBoost_Algorithm_for_Sales_Forecasting_Using_Walmart_Dataset.

14 Jakub Palša وNorbert Ádám وJán Hurtuk وEva Chovancová وBranislav Madoš وMartin Chovanec وStanislav Kocan، "MLMD - أداة مكافحة الفيروسات القائمة على خوارزمية التعلم الآلي XGBoost للكشف عن البرامج الخبيثة"، MDPI.com مجلة العلوم التطبيقية، المجلد 12، 6672، 1 يوليو 2022، https://www.mdpi.com/2076-3417/12/13/6672.

15 "مجتمع التعلم الآلي (العميق) الموزع حلول XGBoost للفوز في تحديات التعلم الآلي"، https://github.com/dmlc/xgboost/tree/master/demo#machine-learning-challenge-winning-solutions.