Локальна пояснюваність з LIME

Пояснюваний ШІ в Python

Fouad Trad

Machine Learning Engineer

  • LIMELocal Interpretable Model-Agnostic Explanations
  • Пояснює прогнози складних моделей
  • Працює для окремих прикладів
  • Незалежний від типу моделі

Логотип LIME.

Пояснюваний ШІ в Python

Пояснювачі LIME

  • Адаптований до різних типів даних

Схема доступних пояснювачів LIME. Перший — табличний пояснювач LIME.

Пояснюваний ШІ в Python

Пояснювачі LIME

  • Адаптований до різних типів даних

Та сама схема з доданим Text Explainer.

Пояснюваний ШІ в Python

Пояснювачі LIME

  • Адаптований до різних типів даних
  • Генерує збурення навколо зразка
  • Відслідковує вплив на вихід моделі
  • Будує простішу модель для пояснення

Та сама схема з доданим Image Explainer.

Пояснюваний ШІ в Python

Пояснювачі LIME

  • Адаптований до різних типів даних
  • Генерує збурення навколо зразка
  • Відслідковує вплив на вихід моделі
  • Будує простішу модель для пояснення

Та сама схема з підсвіченим табличним пояснювачем.

Пояснюваний ШІ в Python

Набір даних про вступ

GRE Score TOEFL Score University Rating SOP LOR CGPA Chance of Admit Accept
337 118 4 4.5 4.5 9.65 0.92 1
324 107 4 4 4.5 8.87 0.76 1
316 104 3 3 3.5 8 0.72 1
322 110 3 3.5 2.5 8.67 0.8 1
314 103 2 2 3 8.21 0.45 0

 

  • regressor: прогнозує ймовірність зарахування
  • classifier: прогнозує факт прийняття
  • Ознаки в X
Пояснюваний ШІ в Python

Створення табличного пояснювача

Regression
from lime.lime_tabular import LimeTabularExplainer

instance = X.iloc[1,:]
explainer_reg = LimeTabularExplainer( X.values,
feature_names=X.columns,
mode='regression'
)
explanation_reg = explainer_reg.explain_instance(
instance.values,
regressor.predict
)
Classification
from lime.lime_tabular import LimeTabularExplainer

instance = X.iloc[1,:]
explainer_class = LimeTabularExplainer( X.values,
feature_names=X.columns,
mode='classification'
)
explanation_class = explainer_class.explain_instance(
instance.values,
classifier.predict_proba
)
Пояснюваний ШІ в Python

Візуалізація пояснень

Regression
explanation_reg.as_pyplot_figure()

Стовпчикова діаграма, що показує вплив кожної ознаки на регресійну модель. Ознаки розміщені в діапазоні для кращої інтерпретації.

Classification
explanation_class.as_pyplot_figure()

Стовпчикова діаграма, що показує вплив кожної ознаки на класифікаційну модель. Ознаки розміщені в діапазоні для кращої інтерпретації.

Пояснюваний ШІ в Python

SHAP vs. LIME

SHAP
shap.waterfall_plot(...)

Графік водоспаду SHAP, що показує, як кожна ознака підвищує або знижує прогноз.

LIME
explanation_class.as_pyplot_figure()

Стовпчикова діаграма, що показує вплив кожної ознаки на класифікаційну модель. Ознаки розміщені в діапазоні для кращої інтерпретації.

Пояснюваний ШІ в Python

Давайте потренуємось!

Пояснюваний ШІ в Python

Preparing Video For Download...