Menu
CoddyTech
flag Ar iconالعربيةdown icon

شجرة القرار

الدرس 17 من 19 في دورة مقدمة في تعلم الآلة على Coddy.

شجرة القرار (Decision Tree) هي نموذج غير خطي يُستخدم لمهام التصنيف والانحدار على حد سواء. وهي تحاكي عملية اتخاذ القرار البشري بشكل أوثق من الخوارزميات الأخرى، مما يجعلها بديهية وقوية للتعامل مع مجموعات البيانات المعقدة. في جوهرها، تقوم شجرة القرار بتقسيم البيانات إلى مجموعات فرعية باستخدام سلسلة من القواعد البسيطة، وهو ما يشبه طرح سلسلة من أسئلة نعم/لا حول ميزات نقاط البيانات.
 

المصدر: ويكيبيديا

تخيل شجرة القرار كرسم بياني يشبه الشجرة، حيث:

  • تمثل كل عقدة داخلية "اختباراً" على سمة معينة (على سبيل المثال، ما إذا كانت نتيجة رمي العملة هي وجه أم ظهر)، 
  • يمثل كل فرع نتيجة الاختبار، و
  • تمثل كل عقدة ورقية (leaf node) تسمية فئة (القرار المتخذ بعد حساب جميع السمات).

أنواع أشجار القرار:

  • أشجار التصنيف (Classification Trees): تُستخدم عندما تكون النتيجة المتوقعة هي الفئة التي تنتمي إليها البيانات.
  • أشجار الانحدار (Regression Trees): تُستخدم عندما يمكن اعتبار النتيجة المتوقعة رقماً حقيقياً (مثل سعر المنزل).


 

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

challenge icon

التحدي

متوسط

قم بإنشاء دالة باسم decide_outcome تستقبل قائمة من القواعد بالتنسيق التالي:

rules = {
	rule1: {"type": "bigger", "value": 5},
	rule2: {"type": "smaller", "value": 7},

}

وتستقبل القاعدة التي يجب الانتقال إليها إذا تحقق الشرط أم لا:

outcome = {
	"rule1": {True: "rule2", False: "rule3"},
	"rule2": {True: "rule3", False: "rule4"},
	"rule3": {True: None, False: None}
	"rule4": {True: None, False: None}

}
data_point = {
	"rule1": 8,
	"rule2": 10,
}

يجب أن يكون المخرج هو rule4

  • 8 أكبر من 5 (True) ← انتقل إلى rule2 من هذا "rule1": {True: "rule2", False: "rule3"},
  • 10 أصغر من 7 (False) ← انتقل إلى rule4 من هذا "rule2": {True: "rule3", False: "rule4"},
  • لا توجد طرق أخرى للمتابعة، لذا فإن المخرج هو rule4

ابدأ دائماً من <strong>rule1</strong>

جرّب بنفسك

def decide_outcome(rules, outcome, point):
    current_rule = "rule1"
    # اكتب كودك هنا

جميع دروس مقدمة في تعلم الآلة

تدرّب بنفسك: مترجم Python عبر الإنترنت