زراعة أشجار اتخاذ القرار

مثل جميع نماذج تعلُّم الآلة المراقَب، يتم تدريب أشجار القرارات على أفضل وشرح مجموعة من أمثلة التدريب. التطبيق الأمثل لشجرة القرارات هو مشكلة صعبة بالنسبة إلى NP. وبالتالي، يتم إجراء التدريب بشكل عام باستخدام الاستدلالات - خوارزمية تعلم سهلة الإنشاء وتوفر خوارزمية غير مثالية، ولكنها قريبة من والمثالية، شجرة القرار.

تعمل معظم الخوارزميات المستخدمة لتدريب أشجار القرارات مع فواصل جشعة والتغلب على الاستراتيجية. تبدأ الخوارزمية بإنشاء عقدة واحدة (الجذر) ينمو شجرة القرار بشكل متكرر وطمع.

في كل عقدة، يتم تقييم جميع الشروط المحتملة وتسجيلها. تشير رسالة الأشكال البيانية تختار الخوارزمية الخيار "الأفضل" الشرط الأول، أي الشرط بأعلى الجودة. ما عليك الآن سوى معرفة أن النتيجة هي مقياس يرتبط والمهمة والشروط والشروط لتحقيق أقصى قدر من هذا المقياس.

على سبيل المثال، في بالمر طيور البطريق (تُستخدم لأمثلة التعليمات البرمجية لاحقًا في هذه الدورة)، ومعظم Adelie وChinstrap يكون طول منقار البطاريق أكبر من 16 مم، في حين أن معظم بقايا الجنتو لدى طيور البطريق منقار أصغر. ومن ثم، لا يكون للشرط تقدّم bill_length_mm ≥ 16 توقّعات مثالية بطاريق جنتو ولكن لا يمكنها التفريق بين Adelies وChinstraps. وعلى الأرجح أن تختار الخوارزمية هذا الشرط.

شرط واحد يؤدي إلى ورقتين. الشرط هو 'bill_length_mm >= 16'.
إذا كانت الإجابة بنعم، تكون ورقة الشجر هي "Adelie" (آديلي) أو "Chinstrap" (شريطي الذقن).  إذا لم يكن كذلك، سيتم
هي "Gentoo".

الشكل 7. الخطوة الأولى في زراعة شجرة.

 

ثم تتكرر الخوارزمية بشكل متكرر ومستقل على كلا العقدين الثانويين. عندما لا يتم العثور على شروط مرضية، تصبح العقدة ورقة. ورقة الشجر التنبؤ باعتباره قيمة التصنيف الأكثر تمثيلاً في الأمثلة.

تكون الخوارزمية على النحو التالي:

def train_decision_tree(training_examples):
  root = create_root() # Create a decision tree with a single empty root.
  grow_tree(root, training_examples) # Grow the root node.
  return root

def grow_tree(node, examples):
  condition = find_best_condition(examples) # Find the best condition.

  if condition is None:
    # No satisfying conditions were found, therefore the grow of the branch stops.
    set_leaf_prediction(node, examples)
    return

  # Create two childrens for the node.
  positive_child, negative_child = split_node(node, condition)

  # List the training examples used by each children.
  negative_examples = [example for example in examples if not condition(example)]
  positive_examples = [example for example in examples if condition(example)]

  # Continue the growth of the children.
  grow_tree(negative_child, negative_examples)
  grow_tree(positive_child, positive_examples)

ندعوك للاطّلاع على خطوات تطبيق شجرة قرارات معيّنة على بمزيد من التفصيل.

الخطوة 1: إنشاء جذر:

عقدة تحتوي على علامة استفهام.

الخطوة 2: زيادة العقدة رقم 1. الشرط "x1 ≥ 1" . يتم إنشاء عقدتين فرعيتين:

العقدة الأساسية
   مما يؤدي إلى عقدتين غير محددتين.

الخطوة 3: زيادة العقدة رقم 2. لم يتم العثور على أي شروط مُرضية. لذا، اجعل العقدة في ورقة شجر:

الجذر
   تؤدي إلى عقدتين غير محددتين.

الخطوة 4: زيادة العقدة رقم 3. الشرط "x2 ≥ 0.5" . طفلان يتم إنشاء العُقد.

العقدة الجذر،
وحالة الجهاز، وثلاث أوراق.

توجد طرق أخرى لزراعة أشجار القرارات. هناك بديل شائع وهو تحسين العُقد على مستوى العالم بدلاً من استخدام استراتيجية القسمة والفتح.

رمز YDF
في YDF، تُزرع أشجار القرارات باستخدام "التقسيم والغلب الجشع" الموضحة أعلاه بشكل افتراضي. وبدلاً من ذلك، يمكنك تفعيل الإعدادات العامة النمو باستخدام المعلمة growing_strategy="BEST_FIRST_GLOBAL". عرض المستندات لمزيد من التفاصيل.

بناءً على عدد ونوع ميزات الإدخال، يصبح عدد قد تكون الظروف الممكنة لعقدة معينة ضخمة، ولانهائية عمومًا. على سبيل المثال، بالنظر إلى شرط الحد الأدنى $\mathrm{feature}_i \geq t$، مزيج من كل ممكن قيَم الحدّ لـ $t \in \mathbb{R}$ لانهائي.

يُطلق على الروتين المسؤول عن إيجاد أفضل حالة التقسيم. ولأنها تحتاج إلى اختبار الكثير من الشروط الممكنة، فإن المقسومات هي المعوقات عند تدريب شجرة قرارات.

تعتمد النتيجة التي يتم تكبيرها باستخدام المُقسِّم على المهمة. بالنسبة مثال:

  • اكتساب المعلومات وGini (كلاهما التي سنتناولها لاحقًا) شائعة الاستخدام في التصنيف.
  • ويشيع استخدام متوسط الخطأ التربيعي في الانحدار.

هناك العديد من الخوارزميات التقسيمية، ولكل منها دعم متنوع فيما يلي:

  • نوع الميزات مثل: المعلومات الرقمية والفئوية والنصية
  • المهمة؛ مثل، التصنيف الثنائي، متعدد الفئات التصنيف، الانحدار
  • نوع الشرط مثلًا، الحد الأدنى للشروط، والحالة المعلنة، شرط مائل
  • معايير التسوية على سبيل المثال، الفواصل الدقيقة أو التقريبية لشروط الحدّ الأدنى

بالإضافة إلى ذلك، تتوفّر صيغ مقسَّمة مكافئة بخيارات مقايضة مختلفة. بخصوص استخدام الذاكرة، واستخدام وحدة المعالجة المركزية (CPU)، وتوزيع الحوسبة، وما إلى ذلك.

رمز YDF
في YDF، يتم تحديد الفواصل ضمنيًا من جهاز الكشف التلقائي (أو المحددة يدويًا) ونوع الميزة، والمعلَمات الفائقة، والمعلمة سرعة كل مقسَّم (أثناء التطبيق، يُشغِّل YDF نموذجًا صغيرًا للتنبؤ سرعة كل مقسَّم مرشح).