انتقل إلى المحتوى الرئيسي

جارٍ تحميل المختبر المرئي…

#decision-treesالتعلّم المُشرَف

شجرة تنحت المستوى إلى مستطيلات: جيني، الإنتروبيا، العمق، التقليم — وفرط التعلّم الذي تراه بأمّ عينيك.

ما ستُجرّبه

  1. مرحبًا بك في #decision-trees. على اليسار، المستوى [-2, 2]²: 120 نقطة تدريب (زرقاء ووردية) و60 نقطة تحقّق (أصغر وشبه شفّافة). على اليمين، شجرة اختُزلت إلى جذر وورقتين: طرحت سؤالًا واحدًاx ≤ 0.88 ? — وقُطع المستوى إلى مستطيلَين، أحدهما شبه نقيّ والآخر لا يزال مختلطًا. إنّها لعبة العشرين سؤالًا مطبَّقة على سحابة نقاط: اختر متغيّرًا وعتبة، قسِّم، وأعِد على كلّ نصف. تصوِّت كلّ ورقة لفئتها الأغلبيّة، وتُخبرك شفافيّة مستطيلها عن مدى نقائها.
  2. أضِف مستوى: /split. كلّ ورقة لا تزال غير نقيّة تطرح الآن سؤالها الخاصّ بدورها — سؤالان متسلسلان، أربعة مستطيلات على الأكثر.
  3. مستوى إضافيّ: /split. عند العمق 3، يمكن للشجرة أن تنمو حتّى ثماني أوراق، لكنّها تتوقّف من تلقاء نفسها حيث تكون الورقة نقيّة أصلًا: لا مكسب يُرتجى.
  4. كيف تختار الشجرة سؤالها؟ تُجرِّب كلّ عتبة ممكنة على x وعلى y وتحتفظ بالتي تُخفِّض عدم النقاء (impurity) في النصفَين أكثر ما يمكن. يوجد مقياسان: مؤشّر جيني (Gini) (الافتراضيّ) والإنتروبيا (entropy). قارِن: /criterion entropy.
  5. دع الشجرة الآن تنمو كما تشاء: /depth 8. ستواصل التقسيم حتّى تصير كلّ ورقة نقيّة — ولو تطلَّب ذلك عزل نقطة واحدة.
  6. العلاج التقليديّ: امنَع الأوراق الصغيرة جدًّا. /min-leaf 8 يشترط ثماني نقاط على الأقلّ في كلّ ورقة — نوع من التقليم (pruning) الوقائيّ يُقرَّر قبل التقسيم.
  7. أرضيّة جديدة: /dataset checkerboard. أربعة أرباع متناوبة، XOR موزَّع: لا خطّ مستقيم يفصل بين هاتين الفئتَين، والانحدار اللوجستيّ يُخفق تمامًا هنا.
  8. القوّة الأخيرة: يمكن قراءة الشجرة. اطرح عليها سؤالًا: /predict 1 -1. تظهر نقطة الاستعلام بالأصفر على المستوى ويُضاء مسارها من الجذر إلى الورقة في الشجرة، اختبارًا تلو الآخر.
  9. دورك: /prune للتراجع مستوى واحدًا، /depth 2 لرؤية رقعة الشطرنج تُحَلّ بسؤالَين، /noise 0.4 ثمّ /depth 8 لفرط تعلُّم مذهل، /seed 7 لسحب آخر (الشجرة الجشعة غير مستقرّة — وهذا ما تستغلّه الغابات العشوائيّة (random forests) بحساب متوسّط مئات الأشجار)، /dataset blobs لتراقب السلَّم يقارب قطرًا، /reset للعودة إلى البداية. التالي: #knn الذي يقرِّر دون بناء أيّ نموذج، ثمّ #overfitting لملاقاة الشرك نفسه مع شبكة عصبيّة.

أوامر القناة

  • /depth <1..8>يضبط الحدّ الأقصى لعمق الشجرة؛ يُعاد تدريب الشجرة.
  • /splitيضيف مستوى واحدًا: العمق الأقصى + 1.
  • /pruneيحذف مستوى واحدًا: العمق الأقصى − 1.
  • /criterion <gini|entropy>يختار مقياس عدم النقاء: مؤشّر جيني أو الإنتروبيا.
  • /min-leaf <1..20>الحدّ الأدنى لعدد نقاط التدريب في كلّ ورقة (تقليم مسبق).
  • /dataset <blobs|moons|checkerboard>يبدّل مجموعة البيانات (يُعاد توليد التدريب والتحقّق).
  • /noise <0..0.5>تشتُّت النقاط وحصّة الوسوم المقلوبة (يُعاد توليد البيانات).
  • /seed <1..99>سحب عشوائيّ آخر للنقاط (بالتوزيع نفسه).
  • /predict <x=-2..2> <y=-2..2>يضع نقطة استعلام ويُبرز مسارها من الجذر إلى الورقة.
  • /resetيعيد الحالة الابتدائيّة: الهلالان، العمق 1، جيني، بلا استعلام.

المسرد

شجرة القرار
نموذج يصنّف نقطة بأن يطرح عليها سلسلة من أسئلة x ≤ عتبة ?، من الجذر إلى ورقة. كلّ سؤال يقسم الفضاء إلى نصفَين: الشجرة تنحت المستوى إلى مستطيلات.
عقدة / ورقة
العقدة الداخليّة تحمل اختبارًا (متغيّر + عتبة) وطفلَين: نعم إلى اليسار، لا إلى اليمين. الورقة لا تختبر شيئًا: تتنبّأ بالفئة الأغلبيّة لنقاط التدريب التي تحتويها.
عدم نقاء جيني (Gini)
يقيس اختلاط الفئات في عقدة: 1 − Σ p². يساوي 0 لعقدة نقيّة و0.5 لخليط 50/50 مع فئتَين. هو المعيار الافتراضيّ في CART وscikit-learn.
الإنتروبيا (entropy)
مقياس آخر للاختلاط: −Σ p·log₂ p، بالبِتّات. يساوي 0 لعقدة نقيّة و1 بت لخليط 50/50. عمليًّا، ينتج جيني والإنتروبيا شجرتَين متشابهتَين جدًّا.
مكسب المعلومة (information gain)
انخفاض عدم النقاء عند التقسيم: عدم نقاء العقدة الأمّ ناقص المتوسّط المرجَّح لعدم نقاء الطفلَين. عند كلّ عقدة، تُجرِّب الخوارزميّة الجشعة كلّ عتبة وتحتفظ بالتي تحقّق أكبر مكسب.
العمق (depth)
العدد الأقصى للأسئلة بين الجذر وورقة. كلّما تعمَّقت الشجرة، دقَّت في التقسيم — وزاد احتمال أن تحفظ الضوضاء. هو المعامل الأهمّ في شجرة.
التقليم (pruning)
تبسيط شجرة كي تُعمِّم بشكل أفضل: إمّا بمنعها من النموّ (عمق أقصى، حدّ أدنى للنقاط في كلّ ورقة — تقليم مسبق)، وإمّا بحذف فروع لاحقًا لا تُفيد التحقّق (تقليم لاحق).
فرط التعلّم (overfitting)
حين يلتصق النموذج بنقاط التدريب بشدّة فيحفظ الاستثناءات: دقّة التدريب قرب 100%، والتحقّق ثابت أو ينخفض. على شجرة، يظهر جليًّا: مستطيلات صغيرة تلتفّ حول نقاط معزولة.
الغابة العشوائيّة (random forest)
تجميع لمئات الأشجار، كلّ منها مدرَّبة على إعادة تعيين للبيانات ومجموعة فرعيّة من المتغيّرات، ويُؤخذ متوسّط أصواتها. تُصلح العيب الرئيس لشجرة واحدة: عدم استقرارها.
القابلية للتفسير (interpretability)
قدرة النموذج على تفسير تنبّؤاته بلغة إنسانيّة. الشجرة قابلة للتفسير بالبناء: مسار الجذر ← الورقة هو قائمة قواعد يمكن قراءتها («y ≤ −0.3 وx > 0.9 إذًا وردية»).

قنوات أخرى في التعلّم المُشرَف

  • #live-trainingستّ خوارزميات تتعلّم أمام عينيك كفيديو: REC، عدّاد زمني، تعليقات توضيحية، مؤشّرات مباشرة. المشاهدة مجانية؛ تعديل النموذج بريميوم.
  • #linear-regressionمطابقة خطّ: المربّعات الصغرى، البواقي، MSE، R² والنزول التدرّجي — اللبنة الأولى لكلّ نموذج تعلّم مُوجَّه.
  • #logistic-regressionالتصنيف إلى فئتين: السيغمويد، حدّ القرار، العتبة والخسارة اللوغاريتمية — ولماذا لا يكفي الخطّ دائمًا.
  • #decision-treesشجرة تنحت المستوى إلى مستطيلات: جيني، الإنتروبيا، العمق، التقليم — وفرط التعلّم الذي تراه بأمّ عينيك.
  • #knnأقرب k جار: صنِّف بالشبه، اختر k، غيّر المسافة — وشاهد الحدّ ينعم أو يتشظّى.
  • #svm-marginsآلات متّجهات الدعم: أوسع هامش ممكن، المعامل C، ونواة RBF التي تُقوِّس الحدّ.
  • #classification-metricsالدقّة، الاستدعائيّة، F1، مصفوفة الالتباس، ROC وAUC: قراءة مصنِّف بأمانة، خاصّة عند اختلال توازن الفئات.