مصنف الغابة العشوائية: نظرة عامة ، كيف يعمل ، إيجابيات وسلبيات

نشرت: 2021-06-18

هل تساءلت يومًا كيف تختار Netflix فيلمًا تنصحك به؟ أو كيف تختار أمازون المنتجات لتظهر في خلاصتك؟

يستخدمون جميعًا أنظمة التوصية ، وهي تقنية تستخدم مصنف الغابة العشوائي.

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

سنغطي مزايا وعيوب Sklearn العشوائية للغابات وأكثر من ذلك بكثير في النقاط التالية.

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

مصنف الغابة العشوائي: مقدمة

مصنف الغابة العشوائية عبارة عن خوارزمية تعلم خاضعة للإشراف يمكنك استخدامها لمشاكل الانحدار والتصنيف. إنها من بين أكثر خوارزميات التعلم الآلي شيوعًا نظرًا لمرونتها العالية وسهولة تنفيذها.

لماذا يسمى مصنف الغابة العشوائية الغابة العشوائية؟

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

له العديد من التطبيقات في حياتنا اليومية مثل محددات الميزات وأنظمة التوصية ومصنفات الصور. تتضمن بعض تطبيقاته الواقعية اكتشاف الاحتيال ، وتصنيف طلبات القروض ، والتنبؤ بالأمراض. إنها تشكل الأساس لخوارزمية Boruta ، التي تختار الميزات الحيوية في مجموعة البيانات.

كيف يعمل؟

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

بعد ذلك ، تقسم الخوارزمية العقدة إلى عقد فرعية وتكرر هذه العملية "n" مرات. الآن لديك غابة بها عدد n من الأشجار. أخيرًا ، ستقوم بإجراء bootstrapping ، أي دمج نتائج جميع أشجار القرار الموجودة في مجموعتك.

إنها بالتأكيد واحدة من أكثر الخوارزميات تعقيدًا لأنها تعتمد على وظائف أشجار القرار.

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

يعد تطبيق Python للغابات العشوائية أبسط وقويًا بكثير من الخوارزميات غير الخطية الأخرى المستخدمة في مشاكل التصنيف.

سيساعدك المثال التالي على فهم كيفية استخدام مصنف الغابة العشوائي في حياتك اليومية:

مثال

لنفترض أنك تريد شراء سيارة جديدة وسألت صديقك المقرب Supratik عن توصياته. سيسألك عن تفضيلاتك وميزانيتك ومتطلباتك وسيشارك أيضًا تجاربه السابقة مع سيارته ليقدم لك توصية.

هنا ، تستخدم Supratik طريقة Decision Tree لإعطائك ملاحظات بناءً على ردك. بعد اقتراحاته ، تشعر بالضيق حيال نصيحته ، لذا تسأل Aditya عن توصياته ويسألك أيضًا عن تفضيلاتك والمتطلبات الأخرى.

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

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

إيجابيات وسلبيات Random Forest Classifier

كل خوارزمية تعلم الآلة لها مزاياها وعيوبها. فيما يلي مزايا وعيوب خوارزمية تصنيف الغابات العشوائية:

مزايا

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

سلبيات

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

الفرق بين الغابة العشوائية وأشجار القرار

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

من ناحية أخرى ، تستخدم الغابة العشوائية العديد من أشجار القرار ، وبالتالي اسم "الغابة". فهو يجمع الأصوات من مختلف أشجار القرار التي استخدمتها لإجراء التنبؤ المطلوب.

ومن ثم ، فإن الاختلاف الأساسي بين مصنف الغابة العشوائية وشجرة القرار هو أن الأول يستخدم مجموعة من الأخيرة. فيما يلي بعض الاختلافات الإضافية بين الاثنين:

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

بناء الخوارزمية (Random Forest Sklearn)

في المثال التالي ، أجرينا تنفيذًا عشوائيًا للغة بايثون باستخدام مكتبة scikit-Learn. يمكنك اتباع خطوات هذا البرنامج التعليمي لإنشاء مصنف غابة عشوائي خاص بك.

بينما يتطلب منك 80٪ من أي مهمة في علم البيانات تحسين البيانات ، والتي تتضمن تنظيف البيانات وتطهيرها وإصلاح القيم المفقودة وغير ذلك الكثير. ومع ذلك ، في هذا المثال ، سنركز فقط على تنفيذ الخوارزمية الخاصة بنا.

الخطوة الأولى: استيراد المكتبات وتحميل مجموعة البيانات

أولاً ، سيتعين علينا استيراد المكتبات المطلوبة وتحميل مجموعة البيانات الخاصة بنا في إطار بيانات.

إدخال:

# استيراد المكتبات المطلوبة

استيراد الباندا كما pd

استيراد numpy كـ np

استيراد matplotlib.pyplot كـ PLT

# استيراد مجموعة البيانات

من sklearn.datasets استيراد load_iris
مجموعة البيانات = load_iris ()

الخطوة الثانية: قسّم مجموعة البيانات إلى مجموعة تدريب ومجموعة اختبار

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

إدخال:

# تناسب المصنف لمجموعة التدريب

من sklearn.tree استيراد DecisionTreeClassifier

النموذج = DecisionTreeClassifier (المعيار = "الانتروبيا" ، التقسيم = "الأفضل" ، الحالة العشوائية = 0)

model.fit (X_train، y_train)

انتاج:

DecisionTreeClassifier (class_weight = لا شيء ، المعيار = 'entropy' ، max_depth = لا شيء ،
max_features = لا شيء ، max_leaf_nodes = لا شيء ،
min_impurity_decrease = 0.0 ، min_impurity_split = لا شيء ،
min_samples_leaf = 1 ، min_samples_split = 2 ،
min_weight_fraction_leaf = 0.0 ، فرز مسبق = خطأ ، حالة عشوائية = 0 ،

الخائن = "الأفضل")

الخطوة الثالثة: إنشاء مصنف عشوائي للغابات

الآن ، سنقوم بإنشاء مصنف الغابة العشوائي الخاص بنا باستخدام Python و scikit-Learn.

إدخال:

# ملاءمة المصنف لمجموعة التدريب

من sklearn.ensemble استيراد RandomForestClassifier

النموذج = RandomForestClassifier (n_estimators = 100 ، المعيار-'entropy '، random_state = 0)

model.fit (X_train، y_train)

انتاج:

RandomForestClassifier (التمهيد = صحيح ، class_weight = لا شيء ، المعيار = 'إنتروبيا' ،

max_depth = لا شيء ، max_features = 'auto' ، max_leaf_nodes = لا شيء ،

min_impurity_decrease = 0.0 ، min_impurity_split = لا شيء ،

min_samples_leaf = 1 ، min_sampes_split = 2 ،

min_weight_fraction_leaf = 0.0 ، n_estimators = 100 ، n_jobs = لا شيء ،

oob_score = False، random_state = 0، verbose = 0، warm_start = False)

الخطوة الرابعة: توقع النتائج وإنشاء مصفوفة الارتباك

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

إدخال:

# توقع نتائج مجموعة الاختبار

y_pred = mode.predict (X_test)

# إنشاء مصفوفة الارتباك

من sklearn.metrics استيراد confusion_matrix

سم = confusion_matrix (y_test ، y_pred)

سم

الإخراج :

مجموعة ([16 ، 0 ، 0]

[0 ، 17 ، 1]

[0 ، 0 ، 11]])

المدخلات :

# احصل على النتيجة لطرازك

model.score (X_test، y_test)

الإخراج :

0.977777777777777

خاتمة

المصنفات العشوائية للغابات لها العديد من التطبيقات. إنها من بين أقوى خوارزميات التعلم الآلي وهي ضرورية في أي متخصص في الذكاء الاصطناعي والتعلم الآلي.

إذا كنت مهتمًا بمعرفة المزيد عن الذكاء الاصطناعي ، تحقق من IIIT-B & upGrad's Executive PG Program in Machine Learning & AI المصمم للمهنيين العاملين ويقدم أكثر من 450 ساعة من التدريب الصارم ، وأكثر من 30 دراسة حالة ومهمة ، IIIT -ب حالة الخريجين ، 5+ مشاريع التخرج العملية العملية والمساعدة في العمل مع الشركات الكبرى.

ما هي Random Forest في التعلم الآلي؟

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

ما هي الاختلافات بين الغابة العشوائية وأشجار القرار؟

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

ما هي عيوب الغابة العشوائية؟

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