ML 101
M03 · L02
القوة في العدد

الـ random forests

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

01 / 14
ML 101
M03 · L02
المشكلة

الأشجار بتعمل overfitting

الـ decision tree العميقة بتحفظ بيانات التدريب. غيّر نقطة بيانات واحدة والهيكل كله يتغيّر. ده الـ high variance (التباين العالي) — هايلة على بيانات التدريب، ضعيفة على البيانات الجديدة.

100%
training accuracy
60%
test accuracy
02 / 14
ML 101
M03 · L02
الفكرة

حكمة الجماعة

تور بقرون في حظيرة في معرض بالليل، بيتفرج عليه جمهور شايل ورق، ووراهم خيام.
تخمين كل واحد غلط بطريقة مختلفة. وزي trees كتير بتغلط غلطات مختلفة، خد متوسط التخمينات فغلطاتها تتلاشى لحد كبير.

كل شجرة لوحدها بتغلط — بس الأشجار المختلفة بتغلط غلطات مختلفة. ولما تاخد متوسط أشجار كتير، الغلطات بتلغي بعضها. ده الـ ensemble learning (التعلم التجميعي).

03 / 14
ML 101
M03 · L02
الخطوة 1

الـ bootstrap sampling

كل شجرة بتتدرّب على عيّنة عشوائية مختلفة من بيانات التدريب، بالسحب مع الإرجاع. ودي اسمها الـ bagging (التجميع التكثيفي) (Bootstrap Aggregating — Bagging).

خاصية مهمة
في المتوسط، كل bootstrap sample فيها ~63% من أمثلة التدريب المميزة. والباقي (~37%) عينات "out-of-bag" — بتتستخدم في الـ validation.
04 / 14
ML 101
M03 · L02
الخطوة 2

اختيار features عشوائية

عند كل split، كل شجرة بتبص على subset عشوائية من الـ features بس — مش كلها. وده بيجبر الأشجار تبقى مختلفة عن بعض، فبيكسر الترابط.

حجم الـ subset المعتاد
m = \begin{cases}\sqrt{p} & \text{classification}\\p/3 & \text{regression}\end{cases}
05 / 14
ML 101
M03 · L02
الخطوة 3

تصويت الأغلبية

كل شجرة بتتنبأ لوحدها. والغابة بتاخد تصويت الأغلبية (classification) أو المتوسط (regression). وكل ما الأشجار تزيد، النتايج بتبقى أثبت.

آه
←
🌲
آه
🌲
لأ
🌲
آه
🌲
آه
06 / 14
ML 101
M03 · L02
validation ببلاش

الـ out-of-bag error

كل عينة بتبقى "out-of-bag (خارج الحقيبة)" لحوالي ~37% من الأشجار. استخدم الأشجار دي عشان تتنبأ بيها: مش محتاج validation set منفصلة. والـ OOB error تقدير موثوق للـ generalization error.

37%
عينات OOB
ببلاش
validation
07 / 14
ML 101
M03 · L02
معلومة زيادة

الـ feature importance

الـ random forests بتقيس كل feature بتقلّل الـ impurity قد إيه على كل الأشجار وكل الـ splits. خد المتوسط على الغابة — وهتاخد ترتيب importance قوي لكل الـ features. وده الـ feature importance (أهمية الميزات).

متوسط انخفاض الشوائب
\text{FI}(j) = \frac{1}{N_T}\sum_{t=1}^{N_T}\sum_{\text{splits on }j}\Delta\text{Gini}
08 / 14
ML 101
M03 · L02
الزراير اللي بتتظبط

أهم الـ hyperparameters

  • n_estimators — عدد الأشجار (أكتر = أحسن، بس الفايدة بتقل)
  • max_features — الـ features لكل split (√p للـ classification، وp/3 للـ regression)
  • max_depth — depth كل شجرة (None = نمو كامل)
  • min_samples_split — أقل عدد عينات عشان node تتقسم
  • bootstrap — نستخدم الـ bootstrap sampling ولا لأ (True)
09 / 14
ML 101
M03 · L02
ليه بتنجح

تقليل الـ variance

الأشجار المنفردة عندها bias واطي وvariance عالي. ولما تاخد متوسط N شجرة مستقلة: الـ variance بينكمش بمقدار 1/N (لو مش مترابطين). واختيار الـ features العشوائي بيضمن إن الأشجار مش مترابطة بشكل كفاية.

10 / 14
ML 101
M03 · L02
بتتستخدم فين

الـ random forests في الواقع

  • المالية — كشف الاحتيال، التقييم الائتماني
  • الطب — تشخيص الأمراض، اكتشاف الأدوية
  • الاستشعار عن بُعد — تصنيف الغطاء الأرضي من بيانات الأقمار الصناعية
  • علم البيئة — modeling توزيع الأنواع
  • مسابقات Kaggle — لسه baseline لحد 2024
11 / 14
ML 101
اختبار سريع

شوف إيه اللي ثبت

أربع أسئلة من الدرس ده. جاوب عشان تشوف السبب — الشرح بيظهر سواء جاوبت صح أو غلط. ونتيجتك مش بتتحفظ.

السؤال 1 من 0
النتيجة 0/0

12 / 14
ML 101
أهم النقط
ملخص

أهم النقط

  • الـ random forests بتجمع أشجار كتير عن طريق bagging + features عشوائية
  • كل شجرة بتشوف bootstrap sample مختلفة ومجموعة features مختلفة
  • الـ prediction النهائي = تصويت الأغلبية (classification) أو المتوسط (regression)
  • الـ OOB error بيدّي validation ببلاش من غير مجموعة منفصلة
  • الـ feature importance مكسب زيادة — بيرتّب المتنبئات لوحده
  • بتقلّل الـ variance من غير ما تزوّد الـ bias: النقطة المثالية
13 / 14
ML 101
الجاي
الجاي

الـ gradient boosting

الـ random forests بتبني الأشجار بالتوازي. والـ gradient boosting (التعزيز بالتدرج) بيبنيها ورا بعض — كل شجرة جديدة بتصلّح غلطات كل اللي قبلها. وغالبًا أدق.

الدرس الجاي
14 / 14