0Pricing
Learn AI with Python · درس

قيم SHAP لقابلية تفسير النماذج

‏shap.Explainer وTreeExplainer ومخططات القوة ومخططات beeswarm وترتيب أهمية الميزات

قيم SHAP لقابلية تفسير النماذج درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

أهمية قابلية التفسير

النماذج المعقدة دقيقة لكنها معتمة. تجيب قابلية التفسير عن السؤال «لماذا أصدر النموذج هذا التنبؤ؟»، وهو أمر أساسي للثقة وتصحيح الأخطاء والامتثال التنظيمي. ويُعد SHAP أحد أكثر أساليب التفسير استخدامًا.

ما الذي يقيسه SHAP

SHAP (SHapley Additive exPlanations) يسند إلى كل سمة مساهمة في تنبؤ واحد. وتستند القيم إلى قيم Shapley من نظرية الألعاب التعاونية: تمثل كل سمة «لاعبًا»، وقيمة SHAP الخاصة بها هي حصتها العادلة من التنبؤ مقارنةً بقيمة الأساس.

قابلية الجمع

تتسم قيم SHAP بأنها قابلة للجمع: تساوي قيمة الأساس (متوسط مخرجات النموذج) مضافًا إليها مجموع قيم SHAP لجميع السمات التنبؤ الفعلي. ويجعل ذلك كل تفسير سجلًا كاملًا وقابلًا للتدقيق لمخرجات النموذج.

# prediction = base_value + sum(shap_values_for_each_feature)

TreeExplainer

بالنسبة إلى نماذج الأشجار (XGBoost وLightGBM والغابات العشوائية)، تحسب shap.TreeExplainer قيم SHAP الدقيقة بسرعة من خلال استغلال بنية الشجرة.

import shap
import xgboost

model = xgboost.XGBClassifier().fit(X_train, y_train)
explainer = shap.TreeExplainer(model)

حساب shap_values

تعيد explainer.shap_values(X_test) مصفوفة: قيمة SHAP واحدة لكل سمة في كل صف. وهذه هي المساهمات الأولية التي ستعرضها بصريًا.

shap_values = explainer.shap_values(X_test)
print(shap_values.shape)  # (n_samples, n_features)

مخطط السرب في summary_plot

ينتج shap.summary_plot مخطط سرب: تمثل كل نقطة عينة واحدة لسمة واحدة. ويُظهر الموضع قيمة SHAP (اتجاه التأثير وحجمه)؛ ويُظهر اللون قيمة السمة. وتُرتب السمات حسب أهميتها الإجمالية.

shap.summary_plot(shap_values, X_test)

قراءة مخطط السرب

لقراءة مخطط السرب:

  • السمات الموجودة في الأعلى هي الأكثر أهمية على المستوى العام
  • النقاط البعيدة إلى اليمين ترفع التنبؤ، والبعيدة إلى اليسار تخفضه
  • يكشف اللون الاتجاه؛ فمثلًا، تعني قيم السمات المرتفعة (بالأحمر) على اليمين أن «القيمة المرتفعة تزيد التنبؤ»

تفسير تنبؤ واحد

تتألق SHAP على المستوى الفردي. ولتفسير صف واحد، تحتاج إلى قيم SHAP الخاصة به وقيمة الأساس للنموذج.

idx = 0
base = explainer.expected_value
row_shap = shap_values[idx]

force_plot

يعرض shap.force_plot تنبؤًا واحدًا بوصفه قوى تدفع انطلاقًا من قيمة الأساس: تدفع السمات الحمراء المخرج إلى الأعلى، بينما تدفعه السمات الزرقاء إلى الأسفل. وتستقر النتيجة الصافية عند التنبؤ النهائي.

shap.force_plot(
    explainer.expected_value,
    shap_values[0],
    X_test.iloc[0],
)

waterfall_plot

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

shap.waterfall_plot(
    shap.Explanation(
        values=shap_values[0],
        base_values=explainer.expected_value,
        data=X_test.iloc[0],
    )
)

عام مقابل محلي

تلبي SHAP احتياجين:

  • عام: يوضح summary_plot السمات التي تحرك النموذج على المستوى العام
  • محلي: يفسر force_plot وwaterfall_plot تنبؤًا محددًا واحدًا

وينطلق كلا العرضين من قيم SHAP نفسها، ما يوفر تفسيرًا متسقًا عبر المستويات المختلفة.

اختبار سريع

اختبر معرفتك بـ SHAP.

مراجعة

لقد تعلمت قابلية تفسير النماذج باستخدام SHAP:

  • تحسب shap.TreeExplainer(model) القيم الدقيقة لنماذج الأشجار
  • تعيد explainer.shap_values(X_test) مساهمات كل سمة
  • يعرض مخطط السرب في summary_plot الأهمية العامة
  • يفسر force_plot وwaterfall_plot تنبؤًا واحدًا
  • قيم SHAP قابلة للجمع: قيمة الأساس + المساهمات = التنبؤ

الأسئلة الشائعة

هل درس «قيم SHAP لقابلية تفسير النماذج» مجاني؟

نعم — نص درس «قيم SHAP لقابلية تفسير النماذج» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

ماذا ستتعلم في «قيم SHAP لقابلية تفسير النماذج»؟

‏shap.Explainer وTreeExplainer ومخططات القوة ومخططات beeswarm وترتيب أهمية الميزات تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟

لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «قيم SHAP لقابلية تفسير النماذج»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟

نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. اكتشاف التحيّز في نماذج التعلم الآلي
  2. قيم SHAP لقابلية تفسير النماذج
  3. ‏LIME: تفسيرات محلية قابلة للتفسير
  4. أطر أخلاقيات الذكاء الاصطناعي وحوكمته
← العودة إلى Learn AI with Python