Локальная объяснимость с LIME

Объяснимый ИИ на Python

Fouad Trad

Machine Learning Engineer

  • LIMELocal Interpretable Model-Agnostic Explanations
  • Объясняет предсказания сложных моделей
  • Работает с отдельными экземплярами
  • Не зависит от типа модели

Логотип LIME.

Объяснимый ИИ на Python

Объяснители LIME

  • Адаптирован к различным типам данных

Диаграмма доступных объяснителей LIME. Первый — табличный объяснитель LIME.

Объяснимый ИИ на Python

Объяснители LIME

  • Адаптирован к различным типам данных

Та же диаграмма с дополнительно показанным текстовым объяснителем.

Объяснимый ИИ на Python

Объяснители LIME

  • Адаптирован к различным типам данных
  • Генерирует возмущения вокруг экземпляра
  • Оценивает их влияние на выход модели
  • Строит упрощённую модель для объяснения

Та же диаграмма с дополнительно показанным объяснителем изображений.

Объяснимый ИИ на 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

Создание табличного объяснителя

Регрессия
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
)
Классификация
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

Визуализация объяснения

Регрессия
explanation_reg.as_pyplot_figure()

Столбчатая диаграмма, показывающая влияние каждого признака на регрессионную модель. Признаки отображены в диапазоне значений для наглядности.

Классификация
explanation_class.as_pyplot_figure()

Столбчатая диаграмма, показывающая влияние каждого признака на модель классификации. Признаки отображены в диапазоне значений для наглядности.

Объяснимый ИИ на Python

SHAP и LIME

SHAP
shap.waterfall_plot(...)

Каскадный график SHAP, показывающий, как каждый признак сдвигает предсказание в положительную или отрицательную сторону.

LIME
explanation_class.as_pyplot_figure()

Столбчатая диаграмма, показывающая влияние каждого признака на модель классификации. Признаки отображены в диапазоне значений для наглядности.

Объяснимый ИИ на Python

Давайте потренируемся!

Объяснимый ИИ на Python

Preparing Video For Download...