الغابات العشوائية
المعلوماتية >>>> الذكاء الصنعي
لَبِنة البناء الأساسية للغابة العشوائية مستوحاةٌ من شجرة القرار (Classification and Regression Trees
Image: http://xgboost.readthedocs.io/en/latest/model.html
وُضِعت الغابات العشوائية في الأصل من قِبَل ليو بريمان Leo Breiman من جامعة كاليفورنيا في بيركلي، في ورقةٍ بحثيةٍ نُشِرت عام 1999، بناءً على عُمْرٍ من المساهمات المؤثّرة، من بينها شجرة القرار CART. إذ عَمِلَ على إتقان الغابات العشوائية لفترةٍ طويلةٍ مع معاوِنَتِه طالبة الدكتوراه أديل كاتلر Adele Cutler لتطويرِ الشّكلِ النّهائيِّ للغابات العشوائية، ويتضمّنُ ذلك الرسوماتِ المتطورة التي تسمحُ بفهمٍ أعمقَ للبيانات.
يُمكن للغابات العشوائية التنبُّؤ بالمتغيرِّات المستمرّة مثلَ مبيعاتِ مُنتَجٍ في موقعٍ على شبكة الإنترنت، ويُمكن أيضاً أن تُستَخَدَم لتقديرِ احتمالِ أن تحدثُ نتيجةٌ معينة، إذ يُمكن أن تكون النتائج "نعم/لا"، أو واحداً من بين عدّة احتمالات، ويمكن أن يكون هناك العديدُ من النتائج المحتملة ولكن عادةً ليست أكثرَ من 8 نتائج.
Image: https://citizennet.com/blog/wp-content/uploads/2012/11/RF.jpg
لنتخيل سحبَ عينةٍ عشوائيةٍ من قاعدة البيانات الرئيسية وبناءَ شجرةِ قرارٍ على أساسِ هذهِ العينة العشوائية، ولنفترضْ أنَّ هذه العينة تَستخدِم نصفَ البيانات المتاحة، حتى لو كان من الممكن أن يكون هذا النصف مختلفاً عن قاعدة البيانات الرئيسية. الآن نكرر العملية، نختارُ عينةً عشوائيةً مختلفةً ونبني شجرة القرار الثانية، ستكونُ التّوقُّعاتُ التي تُقدِّمُها شجرةُ القرار الثانية مختلفةً (على الأقل قليلاً) عن الشجرة الأولى. نواصلُ توليدَ المزيد من الأشجار بحيثُ يكونُ كلٌ منها مبنياً على عينةٍ مختلفة قليلاً، وسوف تتولّدُ تنبؤاتٌ مختلفةٌ -على الأقل قليلاً- في كل مرة. يمكن أن تستمرّ هذه العملية إلى ما لا نهاية، لكننا عادةً نكتفي بحوالي 200 إلى 500 شجرة. سوف تولّدُ كلُّ شجرةٍ التوقعاتِ الخاصَّةَ بها لكلِّ سِجِلٍّ في قاعدة البيانات، وللجمع بين كل هذه التنبؤات المنفصلة؛ يُمكننا استخدام إما المتوسط أو التصويت، للتنبؤِ بعنصرٍ مثلَ حجمِ المبيعات، نأخذ متوسط التوقعات التي قدمتها الأشجار، ولتوقع نتائج تصنيف مثل "نعم/لا" يمكننا جمع الأصوات، كم عدد الأشجار التي صوتت "نعم" مقابل عدد الأشجار التي صوتت "لا"، والأصواتُ الأعلى تحدد التنبؤ، وأخيراً لتوقُّعِ نتائجِ تصنيفٍ متعددِ الاحتمالات، يُمكن أن نحسبَ احتمال توقع كلِّ نتيجةٍ ممكنة على أساس الحصة النسبية من الأصوات لكلِّ نتيجة.
تُعرَفُ العملية التي تمَّ وصفها للتو باسم "bagger"، وهي إصدارُ ليو بريمان الأقدم من الغابات العشوائية. قمنا بإهمال الكثير من التفاصيل ولكنْ قدمنا الضروريات، مثّلتْ "bagger" تقدماً متميزاً في تعلُّم الآلة عندما تمّ عرضُه لأول مرة عامَ 1994، إذ اكتشف بريمان أنَّ "bagger" كانت طريقةً جيدةً بتعلم الآلة ولكنها ليست دقيقة كما كان يأَمل، وبتحليل تفاصيل العديد من النماذج وصل إلى استنتاجٍ مفادُهُ أنَّ الأشجار في "bagger" كانت مشابهةً جداً لبعضها البعض، ويكون الإصلاحُ بإيجاد وسيلةٍ لجعل الأشجار مختلفةٍ بشكلٍ أكبر.
كانت الفكرة الرئيسية الجديدة لبريمان هي إدخالُ العشوائيةِ ليس فقط في عينات التدريب، بل في الشجرة الأساسية أيضاً. في بناء شجرة القرار يجري عادةً بحثٌ شاملٌ في جميع التنبؤات المُحتَمَلة للعثور على أفضل تقسيمٍ ممكنٍ للبيانات في كل عقدة، لنفترض الآن أنه بدلاً من اختيار أفضلِ تقسيمٍ دائماً، يتم اختيار التقسيم عشوائياً، هذا من شأنه أن يضمن أنَّ الأشجار ستكون مغايرة تماماً لبعضها البعض.
نسبة الخطأ في الغابات تعتمد على أمرين:
1. العلاقةُ بين أي شجرتين في الغابة: زيادة الارتباط يزيد من نسبة الخطأ في الغابات.
2. قوةُ كل شجرة على حدة في الغابة: شجرةٌ مُعدّلُ خطئها منخفضٌ تُعتَبر مصنِّفاً قوياً، أي أن زيادة قوة الأشجار الفردية يقلل من نسبة الخطأ في الغابة.
عند رسم مجموعة التدريب للشجرة الحالية عن طريق أخذ عيناتٍ من البيانات الأصلية، يتم تركُ حوالي ثلث تلك البيانات لاستخدامها للاختبار. تُسمَّى هذه البيانات (Out-Of-Bag
يتمُّ إنشاءُ كلِّ شجرةٍ باستخدامِ عيّنةٍ تمهيديةٍ مُختلفةٍ من البيانات الأصلية. يُترك حوالي ثلثُ الحالات ولا تُستَخدُم كعيناتٍ تمهيديةٍ ولا في بناء شجرة. تُوضَع كلُّ الحالات التي تم استبعادها في عملية بناء الشجرة أسفلَ تلك الشجرة للحصول على تصنيفها، وفي النهاية يتم اتخاذ التصنيف الحائز على أغلبية الأصوات، نسبة الحالات التي لا يكون فيها التصنيف مساوياً للتصنيف الصحيح إلى كل الحالات هي تقدير الخطأ OOB، وقد ثبت أنَّ هذا الخطأ غيرُ منحازٍ في العديد من الاختبارات.
الغابات عشوائيةٌ سريعةٌ جداً، يمكن أن تعمل على مجموعة من البيانات تحوي 50000 حالة و100 متغير، وتُنتِج 100 شجرةٍ في 11 دقيقةً على جهازٍ تردده 800 Mhz، وتعملُ بكفاءةٍ على قواعد البيانات الكبيرة، ويُمكنها التَّعامل مع الآلاف من متغيرات الدخل. وهي قادرةٌ على التعامل مع البيانات غير المتوازنة والتي تحوي قيماً مفقودة، وتُحافظ على الدقة عند وجود نسبة كبيرة من البيانات المفقودة.
لديها عددٌ قليل من الضوابط للتعلم ويُمكن تنفيذُها بشكلٍ متوازٍ بسهولة. ولكنَّ حجم النموذج قد يتجاوز حجم البيانات التي تم تصميمُه لتحليلها. لذلك فهي غيرُ مناسبةٍ تماماً لتحليل بُنى البيانات المُعقّدة المتضمنة في مجموعات البيانات التي يحتمل أن تحتوي الملايين من الأعمدة مع عددٍ محدود من الصفوف.
بطبيعة الحال، فإنَّ أفضل اختبارٍ لأيِّ خوارزمية هو تجربةُ عملها بشكلٍ جيد على مجموعة البيانات الخاصة بك.
المصادر:
An Introduction to Random Forests for Beginners
هنا
هنا