الـ gradient boosting
الـ random forests بتبني أشجار بالتوازي، كل واحدة مستقلة. والـ gradient boosting (التعزيز التدريجي) بيبنيها ورا بعض — كل شجرة جديدة بتصلّح الغلطات اللي سابتها الأشجار اللي قبلها. استراتيجية دقيقة وقوية.
تصليح الـ residuals
ابدأ بـ prediction بسيط. احسب الـ residuals (البواقي) — اللي غلطت فيه. درّب الشجرة الجاية تتنبأ بالـ residuals دي. زوّدها على الـ model بتاعك. وعيد لحد ما توصل لنتيجة كويسة.
ensemble ورا بعض
الـ model النهائي هو مجموع كل الأشجار، كل واحدة متقيّدة بـ learning rate η.
الـ gradient descent في فضاء الـ functions
كل شجرة بتتعمل fit على الـ negative gradient بتاع الـ loss function بالنسبة للـ predictions الحالية. ده الـ gradient descent (النزول التدرجي)؛ ومع الـ MSE loss، ده بيساوي الـ residuals بالظبط. ومع الـ losses التانية بيتعمّم بشكل أنيق.
الـ learning rate
كل شجرة بتتزوّد بـ weight صغير η (عادةً 0.01–0.3). والـ shrinkage (الانكماش) ده بيمنع أي شجرة إنها تسيطر. η صغير = أشجار أكتر، بس تعميم أحسن. وη كبير = أشجار أقل، وخطر overfitting.
أشجار ضحلة
الـ boosting بيستخدم أشجار ضحلة — عادةً عمق 3–6. دول "weak learners (متعلمين ضعفاء)" أحسن شوية بس من التخمين العشوائي. وweak learners كتير متجمّعين ورا بعض بيعملوا model قوي جدًا.
XGBoost / LightGBM
XGBoost (2014) زوّد regularization ومعالجة بالتوازي وبناء أشجار أذكى على الـ boosting التقليدي. وLightGBM (2017) زوّد نمو الأشجار leaf-wise والـ splits المبنية على histogram عشان تسريع ×10–100. ومع بعض بيسيطروا على مسابقات Kaggle.
objective فيها regularization
XGBoost بيقلّل objective function فيها regularization، فيها عقوبة على التعقيد لكل شجرة، فبتمنع الـ overfitting بطبيعتها.
ظبط الـ gradient boosting
- n_estimators — عدد الأشجار (استخدم الـ early stopping)
- learning_rate (η) — حجم الخطوة لكل شجرة (0.01–0.3)
- max_depth — عمق الشجرة (3–6 لأغلب المسائل)
- subsample — نسبة العينات لكل شجرة (0.6–0.9)
- colsample_bytree — نسبة الـ features لكل شجرة
- reg_lambda / reg_alpha — regularization L2 / L1
الـ early stopping
راقب الـ validation loss في كل جولة boosting. وقّف زيادة الأشجار أول ما الـ validation loss تبدأ تطلع. مش محتاج grid search على n_estimators — خليه عالي بس وسيب الـ early stopping (الإيقاف المبكر) يلاقي العدد الصح لوحده.
الـ boosting قصاد الـ bagging
- الـ random forests بالتوازي، والـ boosting ورا بعض
- الغابات بتقلّل الـ variance، والـ boosting بيقلّل الـ bias
- الغابات أصعب تعمل overfitting، والـ boosting محتاج regularization
- الـ boosting عادةً بيكسب في الدقة مع الظبط الصح
- الغابات أسرع في التدريب وأسهل تتوازى
- الـ boosting بيسيطر على مسابقات البيانات الجدولية
أهم النقط
- الـ gradient boosting بيدرّب الأشجار ورا بعض، كل واحدة بتتعمل fit على residuals اللي قبلها
- كل شجرة متقيّدة بـ learning rate η — η أصغر = تعميم أحسن
- بيستخدم أشجار ضحلة "weak learner" بعمق 3–6
- XGBoost / LightGBM بيزوّدوا regularization وسرعة
- استخدم الـ early stopping عشان تلاقي n_estimators الأمثل لوحده
- غالبًا أدق طريقة على البيانات الجدولية
الوحدة 4: الـ neural networks
الأشجار بتتعامل مع البيانات الجدولية بشطارة. بس للصور والنصوص والصوت — الدنيا بتروح لـ الـ neural networks (الشبكات العصبية): layers من nodes مترابطة بتتعلّم representations متدرّجة على طول من البيانات الخام.