تدريب نموذج شجرة القرار - كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 | المادة: الذكاء الإصطناعي | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: تدريب نموذج شجرة القرار

📚 معلومات الصفحة

الكتاب: كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 | المادة: الذكاء الإصطناعي | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

مستوى الصعوبة: متوسط

📝 ملخص الصفحة

تقدم هذه الصفحة شرحاً عملياً لتدريب نموذج شجرة القرار باستخدام لغة Python ومكتبة scikit-learn لتحليل البيانات الطبية. يتم تقسيم البيانات إلى 1400 نقطة للتدريب و600 نقطة للاختبار.

يتم عرض كود برمجي لتدريب النموذج باستخدام دالة `diagnose_v4()` على بيانات التدريب، ثم تمثيل شجرة القرار بيانياً باستخدام `plot_tree()` مع تحديد عمق مستويين فقط لتسهيل الفهم.

يحتوي النموذج على أربعة تشخيصات محتملة: الحساسية، نزلات البرد، كوفيد-19، والإنفلونزا. يتم اتخاذ القرارات بناءً على أعراض مثل الحمى، التهاب الحلق، سيلان الأنف، العطس، والتعب، مع قيم عتبة محددة (مثل 0.5).

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

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

📄 النص الكامل للصفحة

لديك الآن 1,400 نقطة بيانات ستُستخدم لتدريب النموذج و 600 نقطة ستُستخدم لاختباره. ابدأ بتدريب نموذج شجرة القرار وتمثيله:from sklearn.tree import plot_tree import matplotlib.pyplot as plt my_tree=diagnose_v4(train_data) # train a model print(my_tree.classes_) # print the possible target labels (diagnoses)plt.figure(figsize=(12,6)) # size of the visualization, in inches# plot the tree plot_tree(my_tree, max_depth=2, fontsize=10, feature_names=medical_dataset.columns[:-1] )['allergies' 'common cold' 'covid19' 'flu']شكل 2.13: نموذج شجرة القرار لمجموعة بيانات medical_data (البيانات الطبية) بعمق مستويين2023 - 1447--- VISUAL CONTEXT --- **DIAGRAM**: نموذج شجرة القرار لمجموعة بيانات medical_data (البيانات الطبية) بعمق مستويين Description: A decision tree diagram illustrating a classification model for medical diagnoses. The tree has a root node and branches down to a maximum depth of 2, as specified in the Python code. Each node represents a decision based on a symptom threshold (e.g., 'fever <= 0.5'). Inside each node, the 'gini' impurity, the number of 'samples', and the 'value' (a list representing the distribution of the four target classes: allergies, common cold, covid19, flu) are displayed. The leaf nodes are indicated by '[...]'. Data: The decision tree starts with a root node: 'fever <= 0.5', gini = 0.75, samples = 1400, value = [354, 345, 358, 343].If 'fever <= 0.5' is true (left branch), it leads to a node: 'sore throat <= 0.5', gini = 0.606, samples = 791, value = [354, 340, 71, 26]. From this node, if 'sore throat <= 0.5' is true (left branch), it leads to a node: 'runny nose <= 0.5', gini = 0.497, samples = 526, value = [354, 101, 58, 13]. This is a leaf node, indicated by '[...]'. If 'sore throat <= 0.5' is false (right branch), it leads to a node: 'tiredness <= 0.5', gini = 0.182, samples = 265, value = [0, 239, 13, 13]. This is a leaf node, indicated by '[...]'.If 'fever <= 0.5' is false (right branch), it leads to a node: 'sore throat <= 0.5', gini = 0.507, samples = 609, value = [0, 5, 287, 317]. From this node, if 'sore throat <= 0.5' is true (left branch), it leads to a node: 'sneezing <= 0.5', gini = 0.387, samples = 317, value = [0, 2, 235, 80]. This is a leaf node, indicated by '[...]'. If 'sore throat <= 0.5' is false (right branch), it leads to a node: 'headache <= 0.5', gini = 0.309, samples = 292, value = [0, 3, 52, 237]. This is a leaf node, indicated by '[...]'. Key Values: Decision criteria (e.g., symptom <= threshold), Gini impurity values (e.g., 0.75, 0.606), Number of samples (e.g., 1400, 791), Class distribution arrays (value = [count_allergies, count_common_cold, count_covid19, count_flu]), Target labels: allergies, common cold, covid19, flu Context: This diagram visually represents the decision-making process of a machine learning model (decision tree) trained on medical data. It shows how different symptoms (features) are used to split the data and classify patients into different diagnoses (target labels) based on the Gini impurity metric, aiming to reduce impurity at each split. The 'max_depth=2' parameter limits the tree's complexity, resulting in a tree with a root node and two levels of splits.

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 5 بطاقة لهذه الصفحة

في العقدة التي تمثل 'fever <= 0.5' (صحيحة) و 'sore throat <= 0.5' (صحيحة)، ما هو عدد العينات (samples) التي تمثلها هذه العقدة؟

الإجابة: يبلغ عدد العينات التي تمثلها هذه العقدة 526 عينة.

الشرح: يشير عدد العينات إلى حجم مجموعة البيانات الفرعية التي تم تصنيفها في هذه العقدة المحددة من شجرة القرار.

تلميح: ابحث عن القيمة المسماة 'samples' في العقدة المحددة.

ما هي الغاية الأساسية من تدريب نموذج شجرة القرار؟

الإجابة: الغاية الأساسية هي تصنيف المرضى إلى تشخيصات مختلفة (مثل الحساسية، نزلة البرد، كوفيد-19، الإنفلونزا) بناءً على الأعراض التي تظهر لديهم.

الشرح: تهدف نماذج تعلم الآلة مثل شجرة القرار إلى أتمتة عملية التشخيص أو المساعدة فيها من خلال التعرف على الأنماط في البيانات.

تلميح: فكر في الهدف الرئيسي من استخدام تقنيات تعلم الآلة في المجال الطبي.

ماذا يمثل مؤشر 'gini' في عقد شجرة القرار؟

الإجابة: يمثل مؤشر 'gini' مستوى عدم نقاء أو عدم تجانس البيانات في عقدة معينة. كلما انخفضت قيمة 'gini'، زاد نقاء العقدة وأصبحت أفضل في تصنيف البيانات.

الشرح: يُستخدم مؤشر جيني كمعيار لاختيار أفضل تقسيم للأعراض لتقليل عدم اليقين في التشخيصات الممكنة.

تلميح: فكر في ما تحاول شجرة القرار تحقيقه في كل تقسيم.

ماذا يعني 'max_depth=2' عند رسم نموذج شجرة القرار؟

الإجابة: يعني أن أقصى عمق للشجرة سيكون مستويين، بمعنى أن الشجرة تحتوي على عقدة جذرية واحدة ومستويين إضافيين من التقسيمات الفرعية، مما يحد من تعقيد النموذج.

الشرح: يساعد تحديد أقصى عمق في منع النموذج من التعقيد المفرط (overfitting) وجعله أكثر قابلية للتفسير.

تلميح: ما هو تأثير تحديد الحد الأقصى لعدد المستويات في بنية شجرية؟

إذا كانت قيمة 'fever <= 0.5' خاطئة، فما هي الخطوة التالية في شجرة القرار الموضحة؟

الإجابة: إذا كانت قيمة 'fever <= 0.5' خاطئة، فهذا يعني أن المريض يعاني من حمى (أعلى من 0.5)، وتنتقل الشجرة بعد ذلك إلى تقسيم بناءً على 'sore throat <= 0.5'.

الشرح: التقسيمات في شجرة القرار تتم بناءً على شروط محددة. في هذه الحالة، تشير الحمى إلى مسار معين في الشجرة.

تلميح: ابحث في الرسم البياني عن الفرع الذي يمثل حالة 'fever > 0.5'.