الـ random forests
شجرة واحدة ممكن تعمل overfitting. بس أشجار كتير شغّالة مع بعض — كل واحدة اتدرّبت على بيانات عشوائية، وكل واحدة بتشوف features عشوائية — بتطلّع نتيجة قوية ومتينة جدًا. ودي الـ random forests (الغابات العشوائية).
الأشجار بتعمل overfitting
الـ decision tree العميقة بتحفظ بيانات التدريب. غيّر نقطة بيانات واحدة والهيكل كله يتغيّر. ده الـ high variance (التباين العالي) — هايلة على بيانات التدريب، ضعيفة على البيانات الجديدة.
حكمة الجماعة

كل شجرة لوحدها بتغلط — بس الأشجار المختلفة بتغلط غلطات مختلفة. ولما تاخد متوسط أشجار كتير، الغلطات بتلغي بعضها. ده الـ ensemble learning (التعلم التجميعي).
الـ bootstrap sampling
كل شجرة بتتدرّب على عيّنة عشوائية مختلفة من بيانات التدريب، بالسحب مع الإرجاع. ودي اسمها الـ bagging (التجميع التكثيفي) (Bootstrap Aggregating — Bagging).
اختيار features عشوائية
عند كل split، كل شجرة بتبص على subset عشوائية من الـ features بس — مش كلها. وده بيجبر الأشجار تبقى مختلفة عن بعض، فبيكسر الترابط.
تصويت الأغلبية
كل شجرة بتتنبأ لوحدها. والغابة بتاخد تصويت الأغلبية (classification) أو المتوسط (regression). وكل ما الأشجار تزيد، النتايج بتبقى أثبت.
الـ out-of-bag error
كل عينة بتبقى "out-of-bag (خارج الحقيبة)" لحوالي ~37% من الأشجار. استخدم الأشجار دي عشان تتنبأ بيها: مش محتاج validation set منفصلة. والـ OOB error تقدير موثوق للـ generalization error.
الـ feature importance
الـ random forests بتقيس كل feature بتقلّل الـ impurity قد إيه على كل الأشجار وكل الـ splits. خد المتوسط على الغابة — وهتاخد ترتيب importance قوي لكل الـ features. وده الـ feature importance (أهمية الميزات).
أهم الـ hyperparameters
- n_estimators — عدد الأشجار (أكتر = أحسن، بس الفايدة بتقل)
- max_features — الـ features لكل split (√p للـ classification، وp/3 للـ regression)
- max_depth — depth كل شجرة (None = نمو كامل)
- min_samples_split — أقل عدد عينات عشان node تتقسم
- bootstrap — نستخدم الـ bootstrap sampling ولا لأ (True)
تقليل الـ variance
الأشجار المنفردة عندها bias واطي وvariance عالي. ولما تاخد متوسط N شجرة مستقلة: الـ variance بينكمش بمقدار 1/N (لو مش مترابطين). واختيار الـ features العشوائي بيضمن إن الأشجار مش مترابطة بشكل كفاية.
الـ random forests في الواقع
- المالية — كشف الاحتيال، التقييم الائتماني
- الطب — تشخيص الأمراض، اكتشاف الأدوية
- الاستشعار عن بُعد — تصنيف الغطاء الأرضي من بيانات الأقمار الصناعية
- علم البيئة — modeling توزيع الأنواع
- مسابقات Kaggle — لسه baseline لحد 2024
أهم النقط
- الـ random forests بتجمع أشجار كتير عن طريق bagging + features عشوائية
- كل شجرة بتشوف bootstrap sample مختلفة ومجموعة features مختلفة
- الـ prediction النهائي = تصويت الأغلبية (classification) أو المتوسط (regression)
- الـ OOB error بيدّي validation ببلاش من غير مجموعة منفصلة
- الـ feature importance مكسب زيادة — بيرتّب المتنبئات لوحده
- بتقلّل الـ variance من غير ما تزوّد الـ bias: النقطة المثالية
الـ gradient boosting
الـ random forests بتبني الأشجار بالتوازي. والـ gradient boosting (التعزيز بالتدرج) بيبنيها ورا بعض — كل شجرة جديدة بتصلّح غلطات كل اللي قبلها. وغالبًا أدق.