Lokální vysvětlitelnost pomocí LIME

Explainable AI v Pythonu

Fouad Trad

Machine Learning Engineer

  • LIMELocal Interpretable Model-Agnostic Explanations
  • Vysvětluje predikce složitých modelů
  • Pracuje s jednotlivými instancemi
  • Nezávislé na typu modelu

Logo LIME.

Explainable AI v Pythonu

Explainery LIME

  • Přizpůsobeno různým typům dat

Diagram zobrazující dostupné explainery LIME. První je tabulkový explainer LIME.

Explainable AI v Pythonu

Explainery LIME

  • Přizpůsobeno různým typům dat

Stejný diagram zobrazující navíc textový explainer.

Explainable AI v Pythonu

Explainery LIME

  • Přizpůsobeno různým typům dat
  • Generuje perturbace v okolí vzorku
  • Sleduje vliv na výstup modelu
  • Vytváří jednodušší model pro vysvětlení

Stejný diagram zobrazující navíc obrazový explainer.

Explainable AI v Pythonu

Explainery LIME

  • Přizpůsobeno různým typům dat
  • Generuje perturbace v okolí vzorku
  • Sleduje vliv na výstup modelu
  • Vytváří jednodušší model pro vysvětlení

Stejný diagram se zvýrazněným tabulkovým explainerem.

Explainable AI v Pythonu

Dataset přijímacího řízení

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: predikuje šanci na přijetí
  • classifier: predikuje přijetí
  • Příznaky v X
Explainable AI v Pythonu

Vytvoření tabulkového explaineru

Regrese
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
)
Klasifikace
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
)
Explainable AI v Pythonu

Vizualizace vysvětlení

Regrese
explanation_reg.as_pyplot_figure()

Sloupcový graf zobrazující vliv každého příznaku na regresní model. Příznaky jsou zobrazeny v rozsahu pro lepší interpretovatelnost.

Klasifikace
explanation_class.as_pyplot_figure()

Sloupcový graf zobrazující vliv každého příznaku na klasifikační model. Příznaky jsou zobrazeny v rozsahu pro lepší interpretovatelnost.

Explainable AI v Pythonu

SHAP vs. LIME

SHAP
shap.waterfall_plot(...)

Vodopádový graf SHAP zobrazující, jak každý příznak posouvá predikci kladně nebo záporně.

LIME
explanation_class.as_pyplot_figure()

Sloupcový graf zobrazující vliv každého příznaku na klasifikační model. Příznaky jsou zobrazeny v rozsahu pro lepší interpretovatelnost.

Explainable AI v Pythonu

Pojďme procvičovat!

Explainable AI v Pythonu

Preparing Video For Download...