الـ decision trees
طب لو الـ model بتاعك قدر يفكّر زي البني آدم — يسأل سلسلة أسئلة آه/لأ لحد ما يوصل لإجابة؟ ده بالظبط اللي الـ decision trees (أشجار القرار) بتعمله.
شكل الشجرة
الـ decision tree هي flowchart من قرارات ثنائية. كل internal node بتسأل عن feature. كل فرع إجابة. وكل leaf هي الـ prediction النهائي.
الـ Gini impurity
الـ Gini impurity (شائبة جيني) بتقيس احتمال إن عنصر متختار عشوائي يتصنّف غلط. الـ node النضيفة (class واحد) الـ Gini بتاعها = 0. والـ node المخلوطة خالص الـ Gini بتاعها = 0.5.
الـ entropy والـ information gain
الـ entropy (الانتروبيا) بتقيس اللخبطة في الـ node. وبنختار الـ split اللي بيكبّر الـ information gain (كسب المعلومات) — يعني بيقلّل الـ entropy بعد الـ split. والمعيارين بيطلّعوا أشجار شبه بعض.
بناء الشجرة
- 1. ابدأ من الـ root بكل بيانات التدريب
- 2. دوّر على أحسن feature وthreshold للـ split
- 3. قسّم البيانات لـ child nodes اتنين
- 4. عيد بشكل recursive على كل فرع
- 5. وقّف لما شرط التوقف يتحقق
الـ overfitting
الشجرة اللي كبرت للآخر بتحفظ بيانات التدريب، وبتجيب training error صفر بس generalization ضعيف. الشجرة اتعلّمت الـ noise، مش الـ pattern. وده الـ overfitting (الإفراط في التخصيص).
تقليم الشجرة
الـ pruning (التقليم) بيشيل الفروع اللي بتزوّد قدرة تنبؤية قليلة. الـ pre-pruning بيوقّف النمو بدري. والـ post-pruning بيكبّر الشجرة كاملة وبعدين يشيل الفروع الضعيفة.
زراير التحكم
- max_depth — أقصى depth للشجرة
- min_samples_split — أقل عينات عشان node تتقسم
- min_samples_leaf — أقل عينات في الـ leaf
- max_features — features بتتحسب في كل split
- criterion — gini أو entropy
ليه الأشجار بتلمع
- سهل تفسيرها: تقدر تعرض وتشرح كل قرار
- مش محتاجة scaling: الـ features مش محتاجة normalization
- بيانات مختلطة: بتتعامل مع الرقمية والفئوية
- غير خطية: بتمسك decision boundaries معقّدة
- inference سريع: مجرد مشي في الشجرة
حدود الأشجار
- مش مستقرة: تغييرات صغيرة بتغيّر الشجرة خالص
- موازية للمحاور: الحدود المايلة محتاجة splits كتير
- greedy: الـ splits المثلى محليًا مش مثلى عالميًا
- overfitting: سهل تحفظ بيانات التدريب
مثال بسيط
بنصنّف نلعب تنس ولا لأ على حسب الجو. الـ root بيسأل عن شكل الجو (Outlook)، وبعدين الفروع بتسأل عن الرطوبة أو الهوا.
اتعلّمت إيه النهارده
الـ decision trees بتقسم البيانات بأسئلة عن الـ features، والـ Gini impurity أو الـ entropy هما اللي بيوجّهوها. سهل تفسيرها ومرنة بس معرّضة للـ overfitting — وعلاجه الـ pruning. الجاي: الـ random forests بتخلّيها أقوى بكتير.