برمجة R, تعلم الآلة, علم البيانات

كيفية رسم شجرة القرار في R (مع مثال)


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

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

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

1. مقدمة إلى أشجار القرار وأهمية تمثيلها البصري في لغة R

1.1 المفهوم النظري لأشجار القرار في تعلم الآلة

تمثل خوارزميات أشجار القرار أحد الأعمدة الجوهرية في حقل التعلم الإشرافي (Supervised Learning)، حيث تُصنف كنماذج تنبؤية غير معلمية (Non-parametric Models). يعني هذا التصنيف أن النموذج لا يفترض مسبقاً توزيعاً إحصائياً محدداً للمتغيرات المستقلة أو التابعة، ولا يفرض شكلاً خطياً صارماً للعلاقة بين المدخلات والمخرجات، مما يمنحه مرونة فائقة في التعامل مع الانحرافات والتوزيعات الالتوائية المعقدة.

ينقسم هذا النوع من النماذج وظيفياً إلى فئتين رئيسيتين: أشجار التصنيف (Classification Trees) التي تهدف إلى التنبؤ بمتغير تابع فئوي أو اسمي يمثل فئات أو أصناف محددة، وأشجار الانحدار (Regression Trees) الموجهة نحو تقدير قيم عددية مستمرة للمتغير المستهدف. يعتمد كلا النوعين على خوارزمية التجزئة الثنائية التكرارية (Recursive Binary Splitting) لتجزئة فضاء المتغيرات إلى مناطق مستطيلة متعددة الأبعاد متجانسة إحصائياً.

تكمن الأهمية المحورية للتمثيل البصري في تحويل مصفوفات البيانات الضخمة والأرقام الجافة إلى خرائط مسارات منطقية واضحة. يتيح ذلك للباحثين والمحللين رؤية كيفية تجزئة البيانات عند كل عتبة رقمية بدقة. وتُعد لغة R البيئة النموذجية لتطبيق هذه المفاهيم نظراً لتكاملها العميق مع النظريات الإحصائية الكلاسيكية والحديثة وتوفيرها حزماً متخصصة ومصممة بأعلى معايير الرسوم العلمية.

1.2 الفوائد الأكاديمية والعملية للتمثيل الشجري للبيانات

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

علاوة على ذلك، يبرع التمثيل البصري للأشجار في الكشف الفوري عن التفاعلات غير الخطية المعقدة (Non-linear Interactions) بين المتغيرات التنبؤية. فهو يوضح كيف يمكن لمتغير معين أن يكون حاسماً فقط عند تحقق شرط محدد في متغير آخر، وهو ما قد تغفله نماذج الانحدار الخطي الكلاسيكية ما لم يتم تضمين حدود تفاعلية معقدة يدوياً وبشكل مسبق.

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

1.3 نظرة عامة على سير العمل البرمجي في لغة R

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

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

2. المفاهيم الرياضية والإحصائية خلف بناء أشجار القرار

2.1 معايير التقسيم والانشطار في العقد (Splitting Criteria)

يعتمد بناء شجرة القرار في جوهره الرياضي على البحث الجشع (Greedy Search) لتحديد أفضل متغير تنبؤي وأفضل نقطة قطع (Cut-off Point) تقسم العقدة الحالية إلى عقدتين فرعيتين بأعلى درجة ممكنة من التجانس ونقاء البيانات (Purity). في أشجار التصنيف، يُستخدم مؤشر جيني لعدم النقاء (Gini Impurity) ومقياس كسب المعلومات القائم على الإنتروبيا (Entropy / Information Gain) لتقييم مدى اختلاط الفئات داخل العقدة المنقسمة.

أما في أشجار الانحدار، فيعتمد معيار الانشطار على تقليل التباين (Variance Reduction) أو تصغير مجموع مربعات البواقي (Residual Sum of Squares – RSS). يُحسب هذا المعيار عبر قياس الفارق بين تباين العقدة الأم ومجموع التباينات الموزونة للعقد الفرعية الناتجة عن التقسيم، مما يضمن أن تكون القيم المستمرة داخل كل منطقة فرعية متقاربة قدر الإمكان حول متوسطها الحسابي.

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

2.2 ظاهرة الإفراط في المطابقة (Overfitting) واستراتيجيات الضبط

تُعد معضلة فرط المطابقة (Overfitting) الخطر الأكبر الذي يهدد موثوقية أشجار القرار؛ إذ إن ترك الشجرة تنمو دون قيود يؤدي إلى تقسيم فضاء البيانات حتى تصبح كل عقدة طرفية تحتوي على مشاهدة واحدة أو عدد ضئيل جداً من المشاهدات المتطابقة. في هذه الحالة، تحقق الشجرة خطأ تدريب يقارب الصفر، لكنها تفقد قدرتها على التعميم (Generalization) وتنهار دقتها عند اختبارها على بيانات جديدة غير مرئية.

لفهم هذه الظاهرة وضبطها، يُستحضر مفهوم مفاضلة الانحياز والتباين (Bias-Variance Tradeoff)؛ فالشجرة المعقدة ذات الفروع الكثيفة تتسم بانحياز منخفض للغاية ولكن بتباين مرتفع جداً يجعلها حساسة لأي تغير طفيف في بيانات التدريب. هنا يبرز دور معامل التعقيد (Complexity Parameter – CP) الذي يفرض عقوبة رياضية تزداد طردياً مع كل انقسام إضافي في هيكل الشجرة.

يُستخدم التحقق المتقاطع (Cross-Validation)، وتحديداً التحقق المتقاطع المكون من 10 طيات (10-fold CV)، لتقدير خطأ التعميم الحقيقي للشجرة عند مختلف مستويات التعقيد، مما يمنح الباحث أساساً إحصائياً لاختيار الهيكل الشجري المتزن.

2.3 مبدأ تقليم الشجرة (Cost-Complexity Pruning)

يُمثل تقليم التكلفة والتعقيد (Cost-Complexity Pruning) الاستراتيجية الإحصائية المعتمدة لتحويل الشجرة الأولية المفرطة في التفاصيل إلى شجرة فرعية مثالية تحقق التوازن الدقيق بين البساطة الهيكلية والقوة التنبؤية. تعتمد هذه الطريقة على تقليل دالة الهدف الرياضية التي تدمج بين مجموع مربعات الخطأ وعدد العقد الطرفية مضروباً في معامل التعقيد.

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

تساعد هذه الآلية في استبعاد التشويش الإحصائي (Noise) والأنماط العشوائية المقتصرة على عينة التدريب، مما ينتج شجرة نهائية مدمجة وسهلة القراءة بصرياً وتتمتع بمصداقية علمية عالية في التنبؤ المستقبلي.

3. إعداد بيئة العمل وتثبيت الحزم البرمجية الأساسية في R

3.1 تثبيت واستدعاء المكتبات البرمجية الأساسية

يتطلب البدء في التطبيق العملي التأكد من تثبيت وتفعيل الحزم البرمجية الأساسية المعتمدة في الأوساط الأكاديمية والمهنية. تتصدر هذه الحزم مكتبة ISLR، وهي الحزمة الرسمية المرافقة للمرجع الأكاديمي الشهير An Introduction to Statistical Learning، حيث توفر قواعد بيانات معيارية غنية تتيح للمتعلم إجراء التحليلات المقارنة وفهم النماذج الإحصائية بصورة تطبيقية عميقة.

تُعد مكتبة rpart (المشتقة من اختصار Recursive Partitioning and Regression Trees) الركيزة البرمجية المركزية لبناء خوارزميات التقسيم المتكرر في R، إذ تستند إلى خوارزميات CART الشهيرة التي طورها بريمان وزملاؤه. تتولى هذه الحزمة معالجة الحسابات الرياضية وتقسيم العقد وحساب مصفوفات التعقيد بفاعلية برمجية فائقة.

أما لغايات التمثيل البياني عالي الجودة، فتأتي مكتبة rpart.plot كأداة لا غنى عنها لتوسيع إمكانات الرسوم الافتراضية في R. توفر هذه المكتبة دوال متقدمة مثل دالتي prp و rpart.plot اللتين تمنحان المستخدم سيطرة كاملة على تخصيص الألوان وتنسيق النصوص وتوزيع الفروع، بما يتوافق مع أحدث إصدارات بيئة R وواجهة RStudio.

3.2 إعداد الجلسة وضبط بذور العشوائية (Reproducibility)

تُعد قابلية تكرار النتائج وإعادة إنتاجها (Reproducibility) أحد أهم معايير النزاهة العلمية في الأبحاث والتحليلات الإحصائية. ونظراً لأن خوارزميات التحقق المتقاطع الداخلية لتقدير معاملات الخطأ تعتمد على تقسيم عشوائي للبيانات إلى طيات متعددة، فإن عدم تثبيت النواة العشوائية سيؤدي إلى توليد قيم مختلفة قليلاً لمعامل التعقيد وخطأ التنبؤ في كل مرة يتم فيها تشغيل الكود البرمجي.

يتحقق هذا الضبط المنهجي من خلال استدعاء الدالة set.seed() مع تمرير قيمة عددية ثابتة في مستهل جلسة العمل. تضمن هذه الخطوة تطابقاً تاماً في حسابات التحقق المتقاطع وهيكل الشجرة الناتجة في كل مرة يُنفذ فيها الكود عبر أجهزة مختلفة أو من قبل باحثين آخرين، وهو ما يعزز موثوقية التقرير التحليلي وقابليته للتدقيق العلمي.

ينبغي كذلك تنظيف مساحة الذاكرة المؤقتة وحذف أي كائنات أو متغيرات سابقة لتفادي التداخل في أسماء المتغيرات، وضبط إعدادات مساحة الرسم البياني لتأهيل بيئة R لإنتاج مخرجات عالية الوضوح.

4. استكشاف وتجهيز مجموعة البيانات التطبيقية (Hitters Dataset)

4.1 نظرة عامة على مجموعة بيانات Hitters

سنعتمد في هذا الدليل على مجموعة بيانات دوري البيسبول الأمريكي للمحترفين الشهيرة Hitters المتوفرة داخل حزمة ISLR. تحتوي هذه المجموعة على بيانات تاريخية مفصلة تشمل 322 لاعباً، وتغطي مجموعة متنوعة من الإحصاءات الرياضية ومقاييس الأداء الفردي والجماعي خلال موسمي 1986 و1987، مما يجعلها ميداناً تطبيقياً ممتازاً للنمذجة الإحصائية المتقدمة.

يتمثل المتغير المستهدف في هذا التطبيق في الراتب السنوي للاعب (Salary) مقاساً بآلاف الدولارات، وهو متغير كمي مستمر يجعل من الشجرة المطلوب بناؤها شجرة انحدار بامتياز. يهدف التحليل إلى استكشاف الكيفية التي يتحدد بها راتب اللاعب استناداً إلى مقاييس أدائه وسنوات مسيرته المهنية الرياضية.

سنركز نموذجنا التعليمي على متغيرين تنبؤيين أساسيين يتميزان بتأثيرهما النظري والعملي الكبير: عدد الضربات الناجحة أو ضربات الهوم رن التي سجلها اللاعب (HmRun)، وإجمالي عدد سنوات الخبرة والمشاركة في الدوري الرئيس (Years)، مما يتيح دراسة التفاعل بين الأداء المهاري والخبرة الزمنية في تحديد الدخل المالي.

4.2 معالجة القيم المفقودة وتنظيف البيانات

تتطلب الممارسة الإحصائية الرصينة فحصاً دقيقاً لسلامة البيانات واكتمالها قبل الشروع في بناء أي نموذج تنبؤي. عند استكشاف مصفوفة بيانات Hitters، يتضح وجود قيم مفقودة (Missing Values – NA) مقتصرة على المتغير التابع (Salary) لدى 59 لاعباً، وتعود هذه المشكلة غالباً لعدم الإفصاح الرسمي عن رواتب بعض اللاعبين الجدد أو المنتقلين حديثاً في تلك الحقبة.

نظراً لأن وجود قيم مفقودة في المتغير التابع يمنع خوارزميات الانحدار من حساب مجموع مربعات البواقي وتقييم دقة التنبؤ، فإن الاستراتيجية الإحصائية الأسلم في هذا السياق تتمثل في استبعاد هذه المشاهدات غير المكتملة عبر تطبيق دالة الاستبعاد الآمن na.omit()، مما ينتج عينة صافية ومكتملة تبلغ 263 مشاهدة مستقرة وجاهزة للتحليل.

يتبع عملية التنظيف إجراء فحص وصفي سريع للمتغيرات قيد الدراسة؛ للتحقق من المدى الحسابي، والمتوسط، والانحراف المعياري، والتأكد من عدم وجود تسجيلات سالبة غير منطقية أو أخطاء إدخال قد تشوه بنية الشجرة التنبؤية أو تحرف نقاط الانقسام عن دلالاتها الواقعية.

5. بناء النموذج الشجري الأولي باستخدام دالة rpart

5.1 صياغة معادلة النموذج وضبط معلمات التحكم

يبدأ البناء الفعلي للشجرة في لغة R من خلال استدعاء دالة rpart() مع تمرير الصيغة الرمزية (Formula) التي تحدد العلاقة بين المتغير المستهدف والمتغيرات المستقلة بالشكل التالي: Salary ~ Years + HmRun. تترجم هذه الصيغة رغبتنا الإحصائية في التنبؤ بمتغير الراتب بالاعتماد الحصري على سنوات الخبرة وعدد ضربات الهوم رن.

لضمان استكشاف جميع التفاعلات والانقسامات المحتملة داخل البيانات، نتحكم في سلوك الخوارزمية عبر تمرير كائن إعدادات مخصص من خلال دالة rpart.control(). نقوم بتعيين معامل تعقيد منخفض جداً (مثل cp = 0.0001)، وهو ما يجبر الخوارزمية على تجاوز قيود التوقف الافتراضية والسماح للشجرة بالنمو إلى أقصى حد ممكن لتشكيل الشجرة الكاملة (Fully Grown Tree).

تتيح لنا هذه الدالة أيضاً ضبط معلمات التفرع الإضافية مثل minsplit (الحد الأدنى للمشاهدات المطلوبة في العقدة لمحاولة الانقسام) وminbucket (الحد الأدنى من المشاهدات في العقدة الطرفية)، مما يمنحنا سيطرة تامة على ديناميكية التوسع العنقودي للبيانات قبل الانتقال لمرحلة التقليم الإحصائي المنهجي.

5.2 فحص بنية الكائن الناتج من دالة rpart

يولد تنفيذ دالة rpart كائناً برمجياً معقداً يختزل الشجرة وجميع تفاصيلها الإحصائية والحسابية. يوفر استعراض هذا الكائن عبر دالة summary() سجلاً نصياً شاملاً يوضح قائمة العقد المرقمة، والمتغيرات المستخدمة في التقسيم عند كل نقطة، والقيم الحدية الفاصلة، وعدد المشاهدات الواقعة في كل عقدة، بالإضافة إلى متوسط الراتب التنبؤي المحسوب لكل قطاع من البيانات.

يتضمن الكائن أيضاً مصفوفة إحصائية حيوية تُعرف بجدول معامل التعقيد (cptable). يُعد هذا الجدول السجل المرجعي لتقييم مستويات النمو المتتالية للشجرة؛ حيث يسجل لكل مستوى تعقيد عدد الانقسامات المتولدة، ومقدار الخطأ النسبي على بيانات التدريب، ومقدار خطأ التحقق المتقاطع المقدر، بالإضافة إلى انحرافه المعياري.

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

6. تقليم الشجرة وتحديد القيمة المثلى لمعامل التعقيد (CP)

6.1 تحليل جدول التعقيد cptable ورسم منحنى الخطأ

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

  • CP: قيمة معامل التعقيد المناظرة لكل حجم شجري.
  • nsplit: عدد الانشطارات المنفذة في الشجرة.
  • rel error: الخطأ النسبي المحسوب مباشرة على بيانات التدريب (والذي ينخفض حتماً مع كل انقسام إضافي).
  • xerror: خطأ التحقق المتقاطع المقدر (Cross-Validated Error)، وهو المقياس الحقيقي لجودة التعميم على بيانات غير مشهودة.
  • xstd: الخطأ المعياري لتقدير خطأ التحقق المتقاطع.

لتسهيل قراءة هذه البيانات رقمياً وبصرياً، توفر لغة R الدالة التحليلية plotcp()، التي ترسم منحنى بيانياً يوضح العلاقة العكسية الأولية ثم الطردية بين حجم الشجرة وخطأ التحقق المتقاطع. يظهر في هذا الرسم خط أفقي متقطع يمثل قاعدة الخطأ المعياري الواحد (1-SE Rule)، وهي قاعدة إحصائية معتمدة توصي باختيار أصغر شجرة يقع خطؤها التنبؤي ضمن نطاق خطأ معياري واحد من أدنى نقطة خطأ مسجلة، مما يضمن أقصى درجات البساطة دون التضحية بالدقة.

6.2 الاستخراج البرمجي لأفضل قيمة CP وتقليم الشجرة

بدلاً من الاعتماد على التقدير البصري التقريبي، يُفضل استخراج القيمة المثلى لمعامل التعقيد برمجياً وبشكل ديناميكي يضمن الدقة والأتمتة في بيئة العمل. يتم ذلك عبر تحديد موقع الصف الذي يسجل أدنى قيمة في عمود xerror باستخدام دالة which.min()، ثم استخلاص قيمة CP المناظرة له بدقة حسابية متناهية.

تُمرر هذه القيمة المستخرجة مباشرة إلى دالة التقليم prune() إلى جانب كائن الشجرة الأولي، لتقوم الدالة بحذف كافة التفرعات الزائدة التي لا تقدم خفضاً حقيقياً في الخطأ التنبؤي العام، وتحويل الشجرة إلى بنية مدمجة ورصينة.

بإتمام هذه الخطوة، يتقلص عدد العقد الطرفية وتختفي الفروع الدقيقة التي نشأت عن ملاحقة التشويش في بيانات العينة، مما ينتج شجرة انحدار مصغلة (Pruned Tree) مهيأة تماماً لعمليات الرسم المتقدم والتفسير الإحصائي القويم.

7. رسم شجرة القرار الأساسية باستخدام دالة prp

plotting a decision tree in R
plotting a decision tree in R

7.1 بناء أول مخطط شجري عبر دالة prp()

تُعد دالة prp() المتوفرة في حزمة rpart.plot الأداة الأكثر تنوعاً وقوة لرسم المخططات الشجرية في لغة R. بمجرد تمرير كائن الشجرة المقلمة pruned_tree إلى الدالة، يتم توليد رسم هيكلي منظم يوضح العقدة الجذرية (Root Node) في أعلى المخطط، تليها العقد الداخلية (Internal Nodes) التي تتفرع منها المسارات وفق شروط منطقية واضحة، وصولاً إلى العقد الورقية أو الطرفية (Terminal Leaves) في الأسفل.

يظهر في هذا المخطط الأساسي نص الشرط المنطقي أعلى كل تفريع (مثل: Years < 4.5)، حيث يمثل الاتجاه نحو اليسار دائماً تحقق الشرط بصيغة “نعم” (TRUE)، بينما يمثل المسار المتجه نحو اليمين عدم تحقق الشرط بصيغة “لا” (FALSE). يتيح هذا التصميم قراءة انسيابية وسريعة للمخطط من النظرة الأولى.

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

7.2 المعايير الأساسية لتنسيق العقد والروابط الشجرية

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

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

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

8. تخصيص المعلمات الجمالية والبيانية لدالة prp المتقدمة

8.1 التحكم في الألوان وتظليل العقد حسب القيم التنبؤية

يمثل التوظيف الذكي للألوان عنصراً فارقاً في تحويل المخطط الشجري من مجرد رسم تخطيطي صامت إلى أداة تواصل بصري قوية ومقنعة. تتيح دالة prp عبر وسيط box.palette تطبيق تدرجات لونية احترافية تتناسب تلقائياً مع قيم المتغير التنبؤي المستهدف؛ بحيث تكتسب العقد ذات التنبؤات المنخفضة تدرجاً لونياً فاتحاً أو هادئاً، بينما تتدرج العقد ذات التنبؤات المرتفعة نحو ألوان أكثر عمقاً وكثافة.

يمكن للمحلل استخدام باليتات ألوان جاهزة ومقننة أكاديمياً مثل التدرجات الزرقاء أو الخضراء (مثل "Blues" أو "Greens" أو باليتات "RdYlGn" المعكوسة)، والتي تتميز بمراعاتها للتباين اللوني وقابليتها للقراءة بوضوح حتى عند الطباعة الأحادية اللون أو لدى الأفراد الذين يعانون من متلازمات عمى الألوان.

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

8.2 تخصيص النصوص والخطوط والمسميات داخل الشجرة

يتطلب إعداد الرسوم البيانية للنشر العلمي أو العروض التنفيذية ضبطاً دقيقاً لكافة النصوص التوضيحية والعناوين المصاحبة للشجرة. يوفر وسيط cex ووسيط tweak في دالة prp إمكانية تصغير أو تكبير حجم خطوط النصوص رقمياً لتلائم أبعاد الصفحة وتمنع تداخل الكلمات والأرقام في الأشجار متعددة الفروع.

تتيح الدالة أيضاً إعادة صياغة أسماء المتغيرات البرمجية وعرضها بتسميات وصفية كاملة ومفهومة (مثل استبدال Years بـ سنوات الخبرة الرياضية، واستبدال HmRun بـ ضربات الهوم رن)، مما يرفع من سوية الفهم الفوري للمتلقي دون الحاجة للرجوع إلى قاموس مصفوفة البيانات الأصلي.

يمكن كذلك ضبط عدد الخانات والكسور العشرية للأرقام التنبؤية عبر وسيط digits ووسيط roundint، وإضافة عنوان رئيسي معبر (Main Title) وعناوين فرعية وهوامش سفلية تشرح حجم العينة وقيم الأخطاء باستخدام المعلمات التنسيقية القياسية في R.

8.3 التحكم في شكل الصناديق والمسارات الهندسية للفروع

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

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

لضمان أعلى جودة للمخرجات النهائية، يمكن توجيه المخطط ليتم تصديره وتفريغه عبر محركات الرسوم المتجهية في R بصيغ عالية الدقة مثل PDF وSVG للمنشورات الورقية، أو صيغة TIFF بدقة 300 أو 600 نقطة في البوصة (DPI) لتلبية المعايير الصارمة لدور النشر والمجلات العلمية العالمية المحكمة.

9. استكشاف حزم وأدوات بديلة لتصور أشجار القرار في R

9.1 استخدام دالة rpart.plot المباشرة وخياراتها الجاهزة

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

تتميز دالة rpart.plot() بقدرتها التلقائية على استشعار نوع الشجرة (تصنيف أم انحدار) وتطبيق التلوين المناسب لعقدها دون الحاجة لتعريف لوحات الألوان يدوياً. كما تدمج الدالة بصورة افتراضية النسبة المئوية لحجم البيانات المستقرة في كل عقدة، مما يوفر قراءة بصرية متزامنة للتنبؤ وحجم العينة في آن واحد.

تُعد هذه الدالة الخيار الأمثل للمحللين أثناء مراحل الاستكشاف السريع وبناء النماذج الأولية؛ نظراً لقدرتها على تقديم تمثيل بصري نظيف ومتكامل من خلال سطر برمجي واحد وبكفاءة تشغيلية متناهية السرعة.

9.2 التمثيل البصري التفاعلي والهيكلي عبر حزم partykit وvisNetwork

تتجاوز إمكانات التصور في R الرسوم الثابتة التقليدية لتمتد إلى مكتبات متطورة تقدم أبعاداً تحليلية جديدة. تبرز في هذا الصدد حزمة partykit الرائدة، التي تتيح تحويل كائنات rpart إلى كائنات هيكلية شرطية موحدة، مما يمكن المحلل من رسم مخططات تتضمن رسوماً بيانية صندوقية (Boxplots) أو مدرجات تكرارية مصغرة داخل كل عقدة طرفية، لتمثيل توزيع القيم الفعلية وتباينها الداخلي بدقة متناهية.

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

تُعد هذه الرسوم التفاعلية خياراً استثنائياً عند تصميم لوحات المعلومات التفاعلية المعتمدة على حزمة Shiny أو عند إعداد تقارير الأعمال الرقمية عبر R Markdown وQuarto لتقديم تجربة تصفح غنية للمستخدم النهائي.

10. تفسير النتائج واستخراج الاستدلالات الإحصائية من المخطط الشجري

Interpreting a regression tree in R
Interpreting a regression tree in R

10.1 قراءة المسارات المنطقية وقواعد القرار (Decision Rules)

تكتمل القيمة التحليلية للمخطط الشجري بالقدرة على استنطاق نتائجه واستخراج القواعد المنطقية التي تحكم توزيع البيانات. يُقرأ المخطط بتتبع المسار من العقدة الجذرية نحو الأسفل؛ ففي مثالنا العملي لبيانات Hitters، تظهر العقدة الأولى أن الشرط الحاسم الأولي لرواتب اللاعبين يرتبط بسنوات الخبرة: Years < 4.5.

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

أما إذا لم يتحقق الشرط (المسار الأيمن، للاعبين ذوي الخبرة التي تزيد عن 4.5 سنوات)، يتفرع المسار إلى انقسام ثانوي يستند إلى الأداء الرياضي التخصصي: HmRun < 15.5. يتقاضى اللاعبون أصحاب الخبرة المرتفعة ولكن بضربات هوم رن منخفضة متوسط راتب يبلغ حوالي 465 ألف دولار، بينما يقفز متوسط الراتب إلى أكثر من 840 ألف دولار لأولئك الذين يجمعون بين سنوات الخبرة الطويلة والإنتاجية العالية في ضربات الهوم رن. تتحول هذه المسارات مباشرة إلى قواعد قرار واضحة بصيغة (IF-THEN) قابلة للتنفيذ الإداري والمالي الفوري.

10.2 التحقق من دقة النموذج وتقييم جودة المواءمة التنبؤية

لا يكتمل التحليل الإحصائي دون التحقق الكمي من كفاءة النموذج الشجري ومصداقيته التنبؤية. يتطلب ذلك حساب مقاييس الأداء الانحدارية الأساسية، وفي مقدمتها متوسط مربع الخطأ (Mean Squared Error – MSE) وجذر متوسط مربع الخطأ (Root Mean Squared Error – RMSE)، واللذان يعكسان متوسط الفارق بين الرواتب الفعلية وتنبؤات الشجرة على مستوى العينة.

يُستكمل هذا التقييم برسم بياني لتشتت القيم الفعلية في مقابل القيم المتوقعة (Actual vs. Predicted Plot) لفحص مدى تقارب النقاط من خط التطابق التام، والتأكد من خلو البواقي من أي أنماط توزيعية غير عشوائية تشير إلى وجود انحياز متبقٍ لم تستوعبه الانقسامات الشجرية.

على الرغم من البساطة والقوة التفسيرية الفائقة للشجرة الفردية، يجب على الباحث إدراك قيودها الهيكلية المتمثلة في عدم استقرار الفروع وحساسيتها العالية لأي تغييرات طفيفة في البيانات مقارنة بالنماذج المجمعة مثل الغابات العشوائية (Random Forests) أو نماذج التدرج المعزز (Gradient Boosting).

11. الأخطاء الشائعة واستكشاف المشكلات وإصلاحها أثناء رسم الشجرة في R

11.1 معالجة أخطاء الرسوم البيانية وتداخل النصوص

يواجه العديد من مستخدمي لغة R أثناء رسم الأشجار الشائكة رسائل خطأ برمجية أو تشوهات بصرية متكررة؛ ولعل أشهرها رسالة الخطأ الشائعة figure margins too large. تحدث هذه المشكلة عندما تتجاوز أبعاد المخطط الشجري المساحة المخصصة لنافذة العرض الرسومي في RStudio، ويكمن حلها في إعادة ضبط هوامش الرسم عبر استدعاء دالة par(mar = c(1, 1, 1, 1)) أو توسيع مساحة نافذة الرسم يدوياً قبل استدعاء أمر الرسم.

تتمثل المشكلة البصرية الأخرى في تداخل النصوص والأرقام داخل العقد الطرفية، خاصة في الأشجار ذات العمق الكبير. يمكن معالجة هذا التشوه بفاعلية عبر استخدام وسيط compress = TRUE الذي يضغط المسافات الأفقية بين الفروع، ووسيط uniform = TRUE لتنظيم التباعد الرأسي المتساوي بين العقد، إلى جانب تخفيض قيمة وسيط حجم الخط tweak لتنسيق النص بما يتناسب مع حجم الصندوق.

يُنصح كذلك بضبط أبعاد مخرجات ملفات التصدير بصورة صريحة عبر تحديد العرض والارتفاع ومعدل الدقة في دوال التصدير (مثل pdf("tree.pdf", width = 10, height = 7)) لضمان طباعة نقية وخالية من الاقتطاع للأطراف أو التداخل في المسميات.

11.2 أخطاء البيانات وبناء النماذج وتأثيرها على الرسم

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

تؤدي المشاهدات التي تتضمن قيماً مفقودة غير معالجة في بعض الحزم إلى توقف مفاجئ للرسم أو توليد انقسامات بديلة (Surrogate Splits) قد تربك تفسير المسار المنطقي للمخطط ما لم يتم فهم كيفية تعامل الخوارزمية مع البيانات الناقصة وتوثيق ذلك بوضوح.

يجب الانتباه أيضاً إلى ضرورة ترميز المتغيرات الفئوية كعوامل تصنيفية معتمدة (Factors) داخل R قبل إدخالها في النموذج؛ إذ إن إدخالها كنصوص مجردة أو قيم عددية غير محددة قد يشوه تسميات العقد في الرسم ويؤدي إلى تمثيل بياني خاطئ لشروط الانقسام وتصنيف الفئات.

12. تطبيقات متقدمة ودليل الكود الكامل القابل لإعادة الاستخدام

Regression tree example in R
Regression tree example in R

12.1 تطبيق الطريقة على أشجار التصنيف (Classification Trees Example)

تتطابق المبادئ البرمجية والهندسية التي تم استعراضها لأشجار الانحدار مع تطبيقات أشجار التصنيف (Classification Trees)، مع وجود اختلافات طفيفة في التفسير الإحصائي والمعايير التقييمية. عند الرغبة في التنبؤ بمتغير فئوي (مثل التنبؤ بما إذا كان اللاعب يتقاضى راتباً “مرتفعاً” أو “منخفضاً”)، يتم تحويل المتغير المستهدف إلى عامل فئوي عبر دالة as.factor().

ينعكس هذا التغيير مباشرة على مخرجات الرسم البياني في دالة prp() أو rpart.plot()؛ حيث يتم تلوين العقد الطرفية تلقائياً وفقاً للفئة الغالبة (Majority Class)، وتُعرض داخل كل عقدة نسب الاحتمالية الانتمائية لكل فئة (Class Probabilities)، مما يوفر تمثيلاً بيانياً لدرجة اليقين الإحصائي لكل مسار تصنيفي.

يُستكمل تقييم هذا النموذج التصنيفي ببناء مصفوفة الارتباك (Confusion Matrix) لحساب معدلات الدقة (Accuracy)، والحساسية (Sensitivity)، والنوعية (Specificity)، مما يثري التقرير النهائي برؤى إحصائية متكاملة تجمع بين الجاذبية البصرية والعمق الرياضي الرصين.

12.2 الاسكريبت البرمجي النهائي الشامل وأفضل الممارسات البرمجية

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

  • تحميل المكتبات: استدعاء الحزم المعتمدة (ISLR للبيانات، rpart للنمذجة، وrpart.plot للتصور البياني).
  • تثبيت البذور: استخدام set.seed(123) لتأكيد قابلية تكرار النتائج عبر كل جلسات التشغيل والتحقق المتقاطع.
  • تنظيف البيانات: تصفية القيم المفقودة عبر na.omit() على مصفوفة بيانات Hitters لضمان استقرار النموذج.
  • بناء الشجرة الكاملة: تدريب الشجرة بصيغة Salary ~ Years + HmRun مع خفض معامل التعقيد cp = 0.0001 للسماح بالنمو الهيكلي الشامل.
  • استخراج معامل التقليم الأمثل: تحديد أدنى قيمة لـ xerror من مصفوفة cptable وتقليم الشجرة عبر دالة prune().
  • الرسم البياني الاحترافي: استدعاء دالة prp() مع ضبط التدرج اللوني box.palette = "Blues"، وتفعيل التسميات التوضيحية وتنسيق الأرقام والهوامش.
  • التصدير عالي الدقة: حفظ المخطط الشجري النهائي بصيغ متجهية عالية الجودة جاهزة للاستخدام في الأبحاث والتقارير التنفيذية.

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

خاتمة

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

المراجع (References)

اقتباس هذا المقال

looti, M. (2026, سبتمبر 1). كيفية رسم شجرة القرار في R (مع مثال). عرب سايكلوجي. https://arabpsychology.com/how-to-plot-a-decision-tree-in-r-with-example/
looti, Mohammed. “كيفية رسم شجرة القرار في R (مع مثال).” عرب سايكلوجي, 1 سبتمبر 2026, https://arabpsychology.com/how-to-plot-a-decision-tree-in-r-with-example/.
looti, Mohammed. “كيفية رسم شجرة القرار في R (مع مثال).” عرب سايكلوجي. سبتمبر 1, 2026. https://arabpsychology.com/how-to-plot-a-decision-tree-in-r-with-example/.