شجرة القرارات (Decision Trees): كيف يتخذ الذكاء الاصطناعي قراراته بخطوات منطقية؟
شجرة القرارات: كيف يتخذ الذكاء الاصطناعي قراراته بخطوات منطقية؟
تُعد خوارزمية Decision Trees من أكثر نماذج Machine Learning سهولة في الفهم والتفسير، لأنها تحاكي أسلوب اتخاذ القرار البشري عبر سلسلة من الأسئلة المنطقية المتتابعة. بدلاً من بناء معادلة رياضية معقدة، تقوم الشجرة بتقسيم البيانات تدريجياً إلى فروع حتى تصل إلى قرار نهائي مثل تصنيف عميل، اكتشاف احتيال، أو توقع نتيجة طبية.
إذا كنت قد اطلعت سابقاً على مقدمة في تعلم الآلة (Machine Learning): الفرق بين التعلم الخاضع وغير الخاضع للإشراف فستعرف أن هذا النموذج ينتمي غالباً إلى التعلم الخاضع للإشراف، حيث نمتلك بيانات تاريخية تحتوي على السمات والنتيجة المستهدفة. ومن هنا تبدأ الشجرة في تعلم الأنماط التي تفصل بين الفئات أو تساعد في التنبؤ بالقيم.
تكمن قوة هذا النموذج في أنه مناسب جداً للبيانات الجدولية، ويمكن دمجه بسهولة مع خطوات التنظيف والمعالجة السابقة مثل تنظيف البيانات (Data Cleaning): اكتشاف ومعالجة القيم المفقودة (Missing Values) وهندسة الميزات (Feature Engineering): كيف تستخرج بيانات جديدة من البيانات الحالية؟. لذلك فهو ليس مجرد خوارزمية أكاديمية، بل أداة عملية ضمن خطوط العمل الحقيقية في التحليل واتخاذ القرار.
ما هي شجرة القرارات من الناحية التقنية؟
شجرة القرارات هي بنية هرمية تتكون من عقد داخلية وفروع وأوراق. كل عقدة داخلية تحتوي على شرط يختبر قيمة سمة معينة، وكل فرع يمثل نتيجة هذا الاختبار، أما الورقة النهائية فتمثل القرار أو الفئة المتوقعة. هذا التصميم يجعل النموذج قابلاً للتفسير حتى لغير المتخصصين، وهي ميزة مهمة جداً في المجالات الحساسة مثل التمويل والرعاية الصحية.
على سبيل المثال، قد يبدأ النموذج بسؤال: هل دخل العميل أكبر من قيمة معينة؟ إذا كانت الإجابة نعم، ينتقل إلى فرع، وإذا كانت لا، ينتقل إلى فرع آخر. ثم يُطرح سؤال جديد مثل عدد المعاملات أو سجل التأخر في السداد. بهذه الطريقة، يبني النموذج مساراً منطقياً واضحاً للوصول إلى التنبؤ.
المكونات الأساسية داخل الشجرة
- العقدة الجذرية
Root Node: أول نقطة انقسام في البيانات. - العقد الداخلية
Internal Nodes: تمثل اختبارات على السمات. - الفروع
Branches: تمثل ناتج كل اختبار. - الأوراق
Leaf Nodes: القرار النهائي أو القيمة المتوقعة.
كيف تختار الشجرة أفضل سؤال في كل خطوة؟
السؤال المحوري في بناء شجرة القرارات هو: ما هو أفضل انقسام ممكن للبيانات عند كل عقدة؟ للإجابة عن ذلك، تستخدم الخوارزمية مقاييس رياضية مثل Gini Impurity أو Entropy في مسائل التصنيف. الهدف من هذه المقاييس هو قياس مدى “نقاء” البيانات بعد الانقسام.
إذا كان الانقسام يؤدي إلى مجموعات أكثر تجانساً، فإن جودته تكون أعلى. بمعنى آخر، تبحث الشجرة عن السؤال الذي يجعل كل فرع يحتوي على عينات متشابهة قدر الإمكان في النتيجة المستهدفة. وفي مسائل الانحدار، تستخدم الخوارزمية مقاييس مثل تقليل التباين Variance Reduction.
مثال منطقي مبسط
- هل عمر العميل أقل من 30؟
- إذا نعم: هل دخله الشهري أكبر من 5000؟
- إذا لا: هل لديه تاريخ ائتماني جيد؟
- في النهاية: تصنيف الطلب إلى موافقة أو رفض.
هذه البنية تبدو بسيطة، لكنها في الواقع ناتجة عن حسابات دقيقة تبحث في آلاف الاحتمالات لاختيار الانقسام الأفضل في كل مستوى من مستويات الشجرة.
دور تجهيز البيانات قبل بناء الشجرة
رغم أن Decision Trees أقل حساسية لتحجيم السمات مقارنة بخوارزميات أخرى، فإن جودة البيانات تظل عاملاً حاسماً. من الأفضل معالجة القيم المفقودة، إزالة التشوهات، وفحص المتغيرات غير المفيدة قبل التدريب. وهنا تظهر أهمية المقالات السابقة مثل معالجة البيانات المكررة والمشوهة (Duplicates & Outliers) باستخدام بايثون ومكتبة Pandas (2): استكشاف هيكل البيانات وفهم DataFrame و Series.
كما أن اختيار السمات المناسبة يرفع جودة النموذج بشكل ملحوظ. فعبر هندسة الميزات (Feature Engineering) يمكن اشتقاق متغيرات جديدة أكثر تعبيراً، مثل نسبة الإنفاق إلى الدخل، أو عدد الأيام منذ آخر معاملة، ما يمنح الشجرة قدرة أفضل على الفصل بين الأنماط.
في بيئات البيانات الكبيرة، لا تبدأ ببناء النموذج مباشرة على كل الأعمدة المتاحة. تقليل السمات غير المهمة مبكراً داخل خط
ETL Pipelineيخفف كلفة الذاكرة، يسرّع التدريب، ويقلل خطر بناء شجرة شديدة التعقيد يصعب تعميمها على بيانات جديدة.
تطبيق عملي باستخدام بايثون
فيما يلي مثال مبسط لبناء شجرة قرارات لتصنيف جودة الموافقة الائتمانية. يبدأ العمل بقراءة البيانات، ثم تقسيمها إلى تدريب واختبار، ثم تدريب النموذج وقياس الدقة. إذا لم تكن جهزت بيئة العمل بعد، يمكنك الرجوع إلى إعداد مختبر البيانات: تثبيت بيئة Jupyter Notebook ومكتبات التحليل الأساسية.
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score, classification_report
# قراءة البيانات
df = pd.read_csv("credit_data.csv")
# اختيار السمات والهدف
X = df[["age", "income", "loan_amount", "credit_score"]]
y = df["approved"]
# تقسيم البيانات
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
# إنشاء النموذج
model = DecisionTreeClassifier(
criterion="gini",
max_depth=4,
min_samples_split=10,
random_state=42
)
# التدريب
model.fit(X_train, y_train)
# التنبؤ
y_pred = model.predict(X_test)
# التقييم
print("Accuracy:", accuracy_score(y_test, y_pred))
print(classification_report(y_test, y_pred))
لاحظ استخدام المتغيرات max_depth وmin_samples_split. هذه الإعدادات مهمة لمنع الشجرة من التعمق الزائد والتقاط الضوضاء بدلاً من الأنماط الحقيقية. كما أن تقييم النموذج يجب أن يتم على بيانات لم يرها سابقاً، وهو ما شرحناه في تقسيم البيانات (Train/Test Split): لماذا يجب أن نختبر النموذج على بيانات لم يرها من قبل؟.
مزايا شجرة القرارات وقيودها
أهم المزايا
- سهولة الفهم والشرح حتى لفرق الأعمال غير التقنية.
- لا تحتاج غالباً إلى
Scalingصارم للبيانات. - تتعامل مع البيانات الرقمية والفئوية معاً.
- مفيدة في اكتشاف العلاقات غير الخطية بين المتغيرات.
أهم القيود
- قد تعاني من فرط التعلّم
Overfittingإذا تُركت بدون ضبط. - تتأثر أحياناً بتغيرات صغيرة في البيانات مما يغيّر بنية الشجرة.
- قد لا تكون الأفضل منفردة مقارنة بنماذج تجميعية مثل
Random Forest.
في أنظمة التحليل واسعة النطاق المبنية على
SparkأوHadoop، تُستخدم أشجار القرار غالباً بعد مرحلة تقليل البيانات وتنظيفها وتوحيدها. التدريب المباشر على بيانات خام موزعة قد يرفع زمن التنفيذ ويزيد من الانقسامات غير المفيدة، خصوصاً إذا كانت السمات عالية الضجيج أو غير متوازنة.
استخدام شجرة القرارات في البيانات الضخمة
في بيئات Big Data لا تكون المشكلة في الخوارزمية فقط، بل في دورة حياة البيانات كاملة: الاستخراج، التنظيف، الدمج، التوزيع، ثم التدريب. لذلك يُفضّل قبل بناء النموذج تنفيذ عمليات مثل دمج وتوحيد الجداول (Merge, Join, Concat) لبناء قاعدة بيانات تحليلية شاملة والفلترة المتقدمة (Filtering & Sorting): استخراج رؤى دقيقة من ملايين السجلات.
في سيناريو فعلي مثل كشف العمليات الاحتيالية، قد يتم أولاً تجميع البيانات من مصادر متعددة، ثم إنشاء سمات زمنية وسلوكية، ثم تدريب شجرة قرارات أو نموذج مشتق منها لاتخاذ قرار لحظي. هذا النوع من النماذج يكون جذاباً لأن فرق الامتثال أو التدقيق تستطيع فهم سبب رفض معاملة معينة من خلال مسار الشجرة نفسه.
متى تكون شجرة القرارات خياراً ممتازاً؟
تكون شجرة القرارات مناسبة جداً عندما تحتاج إلى نموذج قابل للتفسير، وعندما تكون البيانات الجدولية متوسطة التعقيد، وعندما يكون من المهم شرح القرار النهائي بلغة مفهومة. كما تُعد نقطة انطلاق ممتازة قبل الانتقال إلى نماذج أكثر تعقيداً، لأنها تكشف بسرعة ما إذا كانت السمات الحالية تحمل قدرة تنبؤية حقيقية أم لا.
أما إذا كان الهدف هو بناء نظام عالي الدقة في بيئة إنتاجية مع بيانات متقلبة جداً، فقد تكون الشجرة المفردة بداية جيدة للتحليل، ثم يليها استخدام نماذج تجميعية أكثر استقراراً بعد التحقق من الأنماط الأساسية.
خاتمة
شجرة القرارات ليست مجرد رسم متفرع، بل هي طريقة رياضية ومنطقية لفهم كيف يمكن للذكاء الاصطناعي أن يحول البيانات إلى قرارات. قوتها الحقيقية تظهر عندما تُستخدم داخل سلسلة متكاملة تبدأ من تنظيف البيانات، مروراً باختيار السمات، ثم التدريب والتقييم على بيانات سليمة وممثلة للواقع.
ولذلك، فإن فهم Decision Trees يمنحك أساساً قوياً لفهم كثير من نماذج الذكاء الاصطناعي القابلة للتفسير، ويمهد لك الانتقال لاحقاً إلى نماذج أكثر تقدماً دون فقدان البوصلة المنطقية التي تجعل القرار مفهوماً، قابلاً للتدقيق، وقابلاً للتحسين.