شعار زيفيرنت

Shapash: جعل نماذج التعلم الآلي مفهومة

التاريخ:

Shapash: جعل نماذج التعلم الآلي مفهومة

الوسوم (تاج): شرح, تعلم آلة, بايثون, الشكل

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


By يان جولين، MAIF ، عالم البيانات الرئيسي.

عرض تطبيق ويب Shapash

شاباش by MAIF هي مجموعة أدوات Python التي تسهل فهم نماذج التعلم الآلي لعلماء البيانات. يجعل من السهل مشاركة ومناقشة إمكانية تفسير النموذج مع المتخصصين بخلاف البيانات: محللي الأعمال والمديرين والمستخدمين النهائيين.

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

في هذا المنشور ، سنقدم الميزات الرئيسية لـ Shapash وكيف تعمل. سنقوم بتوضيح تنفيذ المكتبة في حالة استخدام ملموسة.

عناصر السياق

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

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

ومع ذلك ، هناك ما هو أكثر من ذلك:

الذكاء مهم للأغراض التربوية. يمكن مناقشة نماذج التعلم الآلي الذكية مع أشخاص ليسوا متخصصين في البيانات: محللو الأعمال والمستخدمون النهائيون ...

بشكل ملموس ، هناك خطوتان في مشاريع علوم البيانات لدينا والتي تشمل غير المتخصصين:

خطوة استكشافية ونموذج مناسب

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

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

نشر النموذج في بيئة الإنتاج

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

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

تم تطوير Shapash لمساعدة علماء البيانات على تلبية هذه الاحتياجات.

ميزات Shapash الرئيسية

  • تصورات سهلة القراءة للجميع.
  • تطبيق ويب: لفهم كيفية عمل النموذج ، عليك إلقاء نظرة على العديد من الرسوم البيانية ، وأهمية السمات ، والمساهمة العالمية لميزة في النموذج. يعد تطبيق الويب أداة مفيدة لذلك.
  • عدة طرق لإظهار النتائج بالصياغة المناسبة (عكس المعالجة المسبقة ، المعالجة اللاحقة). يمكنك بسهولة إضافة قواميس البيانات الخاصة بك ، فئة الترميزكائن أو sklearn عمود محول لمزيد من النواتج الواضحة.
  • وظائف للحفظ بسهولة مخللالملفات وتصدير النتائج في الجداول.
  • ملخص قابلية التفسير: الملخص قابل للتكوين ليناسب حاجتك وللتركيز على ما يهم للتفسير المحلي.
  • القدرة على النشر بسهولة في بيئة الإنتاج وإكمال كل توقع / توصية مع ملخص إمكانية شرح محلي لكل تطبيقات تشغيلية (دفعة أو API)
  • ينفتح Shapashis على عدة طرق للمتابعة: يمكن استخدامه للوصول بسهولة إلى النتائج أو للعمل على صياغة أفضل. هناك عدد قليل جدًا من الوسائط المطلوبة لعرض النتائج. ولكن كلما عملت على تنظيف مجموعة البيانات وتوثيقها ، كانت النتائج أوضح للمستخدم النهائي.

يعمل Shapash مع مشاكل الانحدار أو التصنيف الثنائي أو متعدد الفئات. متوافق مع العديد من الموديلات: كاتبووستXgboostLightGBMفرقة Sklearnالنماذج الخطيةSVM.

يعتمد Shapash على المساهمات المحلية المحسوبة باستخدام Shap (قيم shapley) أو Lime أو أي تقنية تسمح بحساب المساهمات المحلية القابلة للتلخيص.

التنزيل

يمكنك تثبيت الحزمة من خلال النقطة:

$ pip تثبيت shapash 

مظاهرة شاباش

لنستخدم Shapash على مجموعة بيانات ملموسة. في بقية هذه المقالة ، سنوضح لك كيف يمكن لـ Shapash استكشاف النماذج.

سنستخدم مجموعة بيانات "أسعار المنازل" الشهيرة من Kaggle لتناسب الانحدار والتنبؤ بأسعار المساكن! لنبدأ بتحميل مجموعة البيانات:

استيراد الباندا كـ pd من shapash.data.data_loader import data_loading house_df، house_dict = data_loading ('house_prices') y_df = house_df ['SalePrice']. to_frame () X_df = house_df [house_df.columns.difference (['SalePrice']) ] house_df.head (3) 

تشفير الميزات الفئوية:

من category_encoders import OrdinalEncoder categorical_features = [col for col in X_df.columns if X_df [col] .dtype == 'object'] encoder = OrdinalEncoder (cols = categorical_features) .fit (X_df) X_df = encoder.transform (X_df) 

القطار واختبار الانقسام وتركيب النموذج:

من sklearn.model_selection ، قم باستيراد train_test_split من sklearn.ensemble import RandomForestRegressor Xtrain ، Xtest ، ytrain ، ytest = train_test_split (X_df، y_df، train_size = 0.75) reg = RandomForestRegressor (n_estimators. 

وتوقع بيانات الاختبار:

y_pred = pd.DataFrame (reg.predict (Xtest) ، الأعمدة = ['pred'] ، index = Xtest.index) 

دعنا نكتشف ونستخدم Shapash SmartExplainer.

الخطوة 1 - الاستيراد

من shapash.explainer.smart_explainer استيراد SmartExplainer 

الخطوة 2 - تهيئة كائن SmartExplainer

xpl = SmartExplainer (features_dict = house_dict) # معلمة اختيارية 
  • features_dict: الذي يحدد معنى اسم كل عمود من x pd.DataFrame.

الخطوة 3 - ترجمة

xpl.compile (x = Xtest ، model = regressor ، preprocessing = encoder ، # اختياري: استخدم طريقة inverse_transform y_pred = y_pred # اختياري) 

تسمح طريقة التحويل البرمجي باستخدام معلمة اختيارية أخرى: مرحلة ما بعد العملية. إنه يوفر إمكانية تطبيق وظائف جديدة لتحديد صياغة أفضل (regex ، mapping dest ، ...).

الآن ، يمكننا عرض النتائج وفهم كيفية عمل نموذج الانحدار!

الخطوة 4 - بدء تشغيل تطبيق الويب

التطبيق = xpl.run_app () 

يظهر رابط تطبيق الويب في إخراج Jupyter (الوصول إلى العرض التوضيحي هنا).

هناك أربعة أجزاء لتطبيق الويب هذا:

يتفاعل كل واحد للمساعدة في استكشاف النموذج بسهولة.

أهمية الميزات: يمكنك النقر فوق كل ميزة لتحديث مخطط المساهمة أدناه.

مؤامرة المساهمة: كيف تؤثر الميزة على التنبؤ؟ عرض مخطط الكمان أو التشتت لكل مساهمة محلية للميزة.

قطعة الأرض المحلية:

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

جدول التحديد: يسمح لمستخدم تطبيق الويب بتحديد:

  • مجموعة فرعية لتركيز الاستكشاف على هذه المجموعة الفرعية
  • صف واحد لعرض التفسير المحلي المرتبط

كيف تستخدم جدول البيانات لتحديد مجموعة فرعية؟ في أعلى الجدول ، أسفل اسم العمود الذي تريد استخدامه للتصفية ، حدد:

  • = القيمة ،> القيمة ،
  • إذا كنت تريد تحديد كل صف يحتوي على كلمة معينة ، فما عليك سوى كتابة تلك الكلمة بدون "="

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

لقتل التطبيق:

app.kill () 

الخطوة 5 - المؤامرات

تتوفر جميع المؤامرات في دفاتر jupyter ، وتصف الفقرة أدناه النقاط الرئيسية لكل قطعة.

أهمية الميزة

تسمح هذه المعلمة بمقارنة ميزات أهمية مجموعة فرعية. من المفيد اكتشاف سلوك معين في مجموعة فرعية.

مجموعة فرعية = [168 ، 54 ، 995 ، 799 ، 310 ، 322 ، 1374 ، 1106 ، 232 ، 645 ، 1170 ، 1229 ، 703 ، 66 ، 886 ، 160 ، 191 ، 1183 ، 1037 ، 991 ، 482 ، 725 ، 410 ، 59 ، 28، 719، 337، 36] xpl.plot.features_importance (اختيار = مجموعة فرعية) 

مؤامرة المساهمة

تُستخدم مخططات المساهمة للإجابة على أسئلة مثل:

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

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

xpl.plot.contribution_plot ("OverallQual") 

تم تطبيق مخطط المساهمة على معلم مستمر.

حالة التصنيف: مصنف تيتانيك - تم تطبيق مخطط المساهمة على ميزة فئوية.

قطعة أرض محلية

يمكنك استخدام المؤامرات المحلية للتوضيح المحلي للنماذج.

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

سننشر مقالًا ثانيًا لشرح كيفية نشر التفسير المحلي في الإنتاج.

اجمع بين طرق التصفية و local_plot

استخدم تصفية طريقة لتحديد كيفية تلخيص القابلية للتفسير المحلي. لديك أربع معلمات لتكوين الملخص الخاص بك:

  • max_contrib: الحد الأقصى لعدد المعايير المراد عرضها
  • العتبة: الحد الأدنى لقيمة المساهمة (بالقيمة المطلقة) اللازمة لعرض معيار
  • إيجابي: عرض مساهمة إيجابية فقط؟ سلبي؟ (الافتراضي لا شيء)
  • features_to_hide: قائمة الميزات التي لا تريد عرضها

بعد تحديد هذه المعلمات ، يمكننا عرض النتائج بامتداد local_plot () طريقة ، أو تصديرها مع to_pandas ().

xpl.filter (max_contrib = 8 ، العتبة = 100) xpl.local_plot (الفهرس = 560) 

تصدير إلى Pandas DataFrame:

xpl.filter (max_contrib = 3، Theshold = 1000) abstract_df = xpl.to_pandas () abstract_df.head () 

قارن المؤامرة

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

xpl.plot.compare_plot (row_num = [0، 1، 2، 3، 4]، max_features = 8) 

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

أصلي. تم إعادة النشر بإذن.

هذا الموضوع ذو علاقة بـ:

كوينسمارت. Beste Bitcoin-Börse في أوروبا
المصدر: https://www.kdnuggets.com/2021/04/shapash-machine-learning-models-understandable.html

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة

الدردشة معنا

أهلاً! كيف يمكنني مساعدك؟