تاريخ النشر: 9 مايو 2024
المساهمون: Eda Kavlakoglu، وErika Russi
إنَّ مكتبة XGBoost (ويعني الاختصار: تعزيز التدرج المتطرف) واحدة من مكتبات التعلُّم الآلي مفتوحة المصدر والموزَّعة، التي تستخدم أشجارَ القرار المعززة ذات الاشتقاق، وهي إحدى خوارزميات تعزيز التعلم الموجَّه التي تستخدم النزول الاشتقاقي. وتشتهر بسرعتها وكفاءتها وقدرتها على التوسع جيدًا مع مجموعات البيانات الكبيرة.
طوَّر Tianqi Chen، من جامعة واشنطن، مكتبة XGBoost، وتعد هذه المكتبة تنفيذًا متقدمًا للتعزيز المتدرج بالإطار العام ذاته؛ أي إنها تجمع بين أشجار نماذج التعلم الضعيفة في نماذج تعلم قوية عن طريق إضافة البواقي (القيم المتبقية). تتوفر المكتبة بلغات البرمجة ++C وPython وR وJava وScala وJulia1.1.
تُستخدم أشجار القرار في التعلم الآلي لمهام التصنيف أو الانحدار. فتستخدم أشجارُ القرار بنية شجرة هرمية إذ تمثل العقدة الداخلية الخاصية، بينما الفرع يمثل قاعدة القرار، وكل عقدة طرفية تمثل نتيجة مجموعة البيانات.
ونظرًا لأن أشجار القرار معرضة لفرط التخصيص (فرط الملاءَمة)، فيمكن في كثير من الأحيان استخدام الطرق التجميعية، كالتعزيز مثلًا، لإنشاء نماذج أكثر قوة. ويعمل التعزيزعلى دمج عدة أشجار ضعيفة فردية؛ أي النماذج التي تعمل أفضل من الصدفة العشوائية، ولو قليلًا، لتشكيل نموذج تعلم قوي. يتم تدريب كل نموذج تعلم ضعيف على نحو متسلسل لتصحيح الأخطاء التي وقعت فيها النماذج السابقة. ثم بعد مئات التكرارات، تُحوَّل نماذج التعلم الضعيفة إلى نماذج تعلم قوية.
وتعد الغابات العشوائية وخوارزميات التعزيز طرقًا من طرق التعلم الجماعي الشائعة؛ التي تستخدم أشجار نماذج التعلم الفردية لتحسين الأداء التنبُّؤي. إذ تعتمد الغابات العشوائية على مفهوم التجميع (تجميع بوتستراب) وتدريب كل شجرة على نحوٍ مستقل لدمج تنبؤاتها، بينما تستخدم خوارزميات التعزيز نهجًا إضافيًا بينما يتم تدريب نماذج التعلم الضعيفة على نحوٍ متسلسل لتصحيح أخطاء النماذج السابقة.
تعد أشجار القرار المعززة بالتدرج نوعًا من أنواع خوارزمية التعزيز التي تستخدم النزول الاشتقاقي.وكما هو الحال مع طرق التعزيز الأخرى، يبدأ التعزيز الاشتقاقي بنموذج تعلم ضعيف لتقديم التنبؤات. إذ تُعرف شجرة القرار الأولى في التعزيز الاشتقاقي باسم نموذج التعلم الأساسي. ثم بعد ذلك، يتم إنشاء أشجار جديدة بطريقة إضافية حسب الأخطاء التي ظهرت في نموذج التعلم الأساسي. ثم تحتسب الخوارزمية بواقي تنبؤات كل شجرة لتحديد مدى ابتعاد تنبؤات النموذج عن الواقع. الباقي هو الفرق بين القيم المتوقعة والقيم الفعلية للنموذج.وبعد ذلك تُجمَّع البواقي لتسجيل النموذج باستخدام دالة الخسارة.
في التعلُّم الآلي، تُستخدم دوال الخسارة لقياس أداء النموذج. في أشجار القرار ذات التعزيز بالتدرج، يشير التدرج إلى الإنخفاض المتدرج. عند تدريب نماذج جديدة، نستخدم النزول التدريجي لتقليل الخسارة (بمعنى تحسين أداء النموذج). يُعدُّ النزول التدريجي خوارزمية من خوارزميات التحسين الشائعة، ويُستخدم لتقليل دالة الخسارة التي تحدث حين تقع مشكلات في التعلم الآلي. من أمثلة دوال الخسارة: متوسط الخطأ التربيعي أو متوسط الخطأ المطلق لمشكلات الانحدار، أو خسارة الأنتروبيا المتقاطعة لمشكلات التصنيف، أو قد يتم تطوير دوال خسارة مخصصة حسب حاجة كل حالة استخدام وكل مجموعة بيانات.
تعرَّف على المعوقات التي تَحُول دون اعتماد الذكاء الاصطناعي، لا سيما عدم تطبيق حوكمة الذكاء الاصطناعي، وعدم إيجاد حلول لإدارة المخاطر.
فيما يلي مناقشة لبعض ميزات مكتبة XGBoost المقدمة بلغة Python التي جعلتها مكتبة متفوقة مقارنةً بحزمة التعزيز بالتدرج العادية في مكتبة scikit-learn2:
سنتناول في هذا القسم كيفية استخدام حزمة XGBoost، وكيفية تحديد المعلمات الفائقة لتعزيز شجرة XGBoost، وكيفية مقارنة XGBoost بتنفيذات التعزيز الأخرى وبعض حالات استخدامها.
مع افتراض أنك أجريت بالفعل تحليلًا استكشافيًّا للبيانات، ستكون الخطوة التالية أن تستمر في توزيع بياناتك بين مجموعة بيانات التدريب ومجموعة بيانات الاختبار. ثم بعد ذلك، ينبغي أن تحول بياناتك إلى تنسيق DMatrix الذي تتوقعه مكتبة XGBoost33. يعد DMatrix هيكل البيانات الداخلي لمكتبة XGBoost المحسّنة لتحقيق كفاءة الذاكرة وسرعة التدريب4.
ثم بعد ذلك، ستقوم بإنشاء نموذج XGBoost، واعتمادًا على حالة استخدامك، عليك أن تحدد وظيفة الهدف التي ترغب في استخدامها من خلال المعلمة الفائقة "object". على سبيل المثال، إذا كانت لديك مهمة تصنيف متعددة الفئات، فيجب تعيين الهدف على "multi:softmax"55. أو بدلًا من ذلك، إذا كانت لديك مشكلة تصنيف ثنائي، فيمكنك استخدام هدف الانحدار اللوغاريتمي"binary:logistic". والآن يمكنك استخدام مجموعة التدريب لتدريب النموذج والتنبؤ بالتصنيفات لمجموعة البيانات على انفراد كمجموعة اختبار. يمكنك تقييم أداء النموذج عن طريق مقارنة القيم المتوقعة بالقيم الفعلية لمجموعة الاختبار. يمكنك استخدام مقاييس مثل الدقة أو الضبط أو التذكير أو مقياس f-1 لتقييم نموذجك. وقد ترغب أيضًا في عرض تمثيل رسومي للإيجابيات الحقيقية، والسلبيات الحقيقية، والإيجابيات الكاذبة، والسلبيات الكاذبة باستخدام مصفوفة الثقة.
ثم بعد ذلك، قد ترغب في تكرار مجموعة من المعلمات الفائقة للمساعدة على تحسين أداء نموذجك. يعد ضبط المعلمات الفائقة عملية تحسين للمعلمات الفائقة لخوارزمية التعلم الآلي. يمكن العثور على أفضل المعلمات الفائقة باستخدام طرق البحث الشبكي والتحقق المتبادل، والتي تتكرر خلال قاموس يضم تجمعات المعلمات الفائقة المحتملة.
فيما يلي شرح لبعض المعلمات الفائقة المتاحة لضبط الأشجار المعززة بالتدرج في مكتبة التعلم XGBoost:
حينما تشرع في قراءة هذا الجزء التعليمي، سترى أنه يستخدم خوارزمية XGBoost لإجراء مهمة التصنيف.
تعد خوارزمية XGBoost واحدة من العديد من خوارزميات التعزيز مفتوحة المصدر المتوفرة. في هذا القسم، سنقارن XGBoost بثلاثة أطر تعزيز أخرى.
تعد خوارزمية AdaBoost خوارزمية تعزيز مبكرة ابتكرها كل من Yoav Freund و Robert Schapire في عام 19957. في خوارزمية AdaBoost، يكون التركيز أكثر على التنبؤات غير الصحيحة من خلال نظام أوزان الترجيح الذي يؤثر في نقاط البيانات التي من الصعب جدًا التنبؤ بها. أولًا، يجب تعيين وزن ترجيح محدد لكل نقطة بيانات في مجموعة البيانات. وبما أن نماذج التعلم الضعيفة تتنبأ بمثال على نحو صحيح، فإن وزن ترجيح هذا المثال يتم تقليله. لكن إذا أخطأت نماذج التعلم في مثال ما، فإن وزن ترجيح نقطة البيانات هذه سوف يزداد. عند إنشاء أشجار جديدة، تعتمد أوزان ترجيحها على التصنيفات غير الصحيحة لأشجار نماذج التعلم السابقة. ومع زيادة عدد نماذج التعلم، فإن العينات التي يسهل التنبؤ بها ستُستخدم بدرجة أقل مع نماذج التعلم المستقبلية بينما نقاط البيانات التي يصعب التنبؤ بها سيتم ترجيحها بشكل بارز. نظرًا لدقتهما وسرعتهما، نجد أن التعزيز الاشتقاقي وخوارزمية XGBoost يمثلان غالبًا بدائل قوية عن خوارزمية AdaBoost.
يعد CatBoost إطار عمل آخر لتعزيز التدرج.تم تطويره من قِبل Yandex في عام 2017، وهو إطار متخصص في التعامل مع الميزات الفئوية دون حاجة إلى معالجة مسبقة، ويعمل جيدًا وبشكل مبتكر عمومًا دون حاجة إلى إجراء ضبط مكثف للمعلمات الفائقة8. مثلها مثل مكتبة XGBoost، تتميز مكتبة CatBoost بدعم مدمج للتعامل مع البيانات المفقودة. إنَّ مكتبة CatBoost مفيدة بصورة كبيرة لمجموعات البيانات التي تحتوي على العديد من الميزات التصنيفية. وفقًا لشركة Yandex، يُستخدم الإطار في عمليات البحث وأنظمة التوصية (الاقتراح) وأدوات المساعِد الرقمي الشخصي والسيارات ذاتية القيادة والتنبؤ بالطقس وغيرها من المهام.
تعد LightGBM (آلة التعزيز المتدرج الخفيف) آخر خوارزمية تعزيز اشتقاقي نتكلم عنها ونراجعها. طوَّرت شركة Microsoft خوارزمية LightGBM وأصدرتها لأول مرة في عام 2016.9. في حين أن معظم خوارزميات التعلم بطريقة شجرة القرار تعمل على تنمية الأشجار على أساس العمق، فإن خوارزمية LightGBM تستخدم استراتيجية نمو الأشجار على أساس الفروع10. مثلها مثل XGBoost، تتميز LightGBM بسرعة ودقة تدريب النموذج وتؤدي أداءً جيدًا مع مجموعات البيانات الكبيرة.
تُستخدم XGBoost وأشجار القرار المعززة بالاشتقاق في مجموعة متنوعة من تطبيقات علوم البيانات، تشمل ما يلي:
تعرَّف على خوارزمية التعلم الموجَّه غير المتعلقة بالمعلمات، والتي يتم استخدامها لمهام التصنيف والانحدار.
تعرَّف على طريقة التعلم الجماعي هذه، والتي تجمع مجموعة من نماذج التعلم الضعيفة في نموذج تعلم قوي.
حينما تشرع في قراءة هذا الجزء التعليمي، سترى أنه يستخدم خوارزمية 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).