تعلم الآلة متوسط · Intermediate 12 دقيقة

الغابة العشوائية

Random Forest

تجميع أشجار قرار كثيرة مدربة على عينات وسمات عشوائية لتقليل التباين.

تقدّمك في المسار0%

الفكرة

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

  1. عينة إقلاعية: كل شجرة تتدرب على عينة بحجم البيانات مسحوبة مع الإعادة.
  2. سمات عشوائية: عند كل تقسيم تختار الشجرة من مجموعة فرعية عشوائية من السمات (max_features).

مثال

from sklearn.datasets import load_breast_cancer
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score

X, y = load_breast_cancer(return_X_y=True)
rf = RandomForestClassifier(n_estimators=300, oob_score=True, random_state=0, n_jobs=-1)
rf.fit(X, y)
print("OOB:", rf.oob_score_)
print("CV:", cross_val_score(rf, X, y, cv=5).mean())

المعاملات الفائقة الأهم

  • n_estimators: عدد الأشجار؛ زيادته لا تسبب فرط تخصيص عادة لكنها تزيد زمن الحساب.
  • max_features: عدد السمات المرشحة عند كل تقسيم.
  • max_depth وmin_samples_leaf: تعقيد كل شجرة.

أهمية السمات

from sklearn.inspection import permutation_importance
r = permutation_importance(rf, X, y, n_repeats=10, random_state=0)

أهمية التبديل تقيس انخفاض الأداء عند خلط قيم سمة واحدة، ويُفضّل حسابها على بيانات لم يتدرب عليها النموذج.

متى تستخدمها؟

خط أساس قوي للبيانات الجدولية، يتعامل مع العلاقات غير الخطية ويحتاج إلى ضبط قليل. للمقارنة، تحقق أيضاً من طرق التعزيز التدرجي (Gradient Boosting) التي تحقق غالباً أداءً أعلى على البيانات الجدولية بضبط أدق.

مصطلحات الدرس

التجميع بالإقلاع Bagging
تدريب نماذج على عينات بإعادة السحب من البيانات ثم دمج تنبؤاتها.
التعلم التجميعي Ensemble Learning
دمج تنبؤات عدة نماذج للحصول على أداء أفضل وأكثر استقراراً من أي نموذج منفرد.
خطأ خارج الحقيبة Out-of-Bag Error
تقدير لخطأ التعميم باستخدام الأمثلة التي لم تُسحب في عينة كل شجرة.

الملخص

الغابة العشوائية مجموعة (ensemble) من أشجار القرار، تُدرَّب كل شجرة على عينة إقلاعية (bootstrap) من البيانات وتختار عند كل تقسيم من مجموعة عشوائية من السمات، ثم تُجمع التنبؤات بالتصويت أو المتوسط. يقلل ذلك التباين ويحسن التعميم مقارنة بالشجرة الواحدة، ويوفر تقدير خطأ خارج الحقيبة (OOB) ومقاييس لأهمية السمات.

أسئلة مراجعة

  1. ما مصدرا العشوائية في الغابة العشوائية؟

    عينة إقلاعية مختلفة لكل شجرة، واختيار مجموعة فرعية عشوائية من السمات عند كل تقسيم.

  2. لماذا قد تكون أهمية السمات المبنية على عدم النقاء مضللة؟

    لأنها تميل إلى تفضيل السمات ذات القيم الكثيرة، لذا يُفضّل التحقق بأهمية التبديل (permutation importance).

المصادر والمراجع

  1. Breiman (2001) Random Forests — Machine Learning 45
  2. scikit-learn — Ensembles: Random forests
  3. scikit-learn — Permutation feature importance

إكمال الدرس