Lokale uitlegbaarheid met LIME

Explainable AI in Python

Fouad Trad

Machine Learning Engineer

  • LIMELocal Interpretable Model-Agnostic Explanations
  • Legt voorspellingen van complexe modellen uit
  • Werkt op individuele instanties
  • Onafhankelijk van modeltype

LIME-logo.

Explainable AI in Python

LIME-explainers

  • Aangepast aan verschillende datatypen

Diagram met beschikbare LIME-explainers. De eerste is de LIME tabular-explainer.

Explainable AI in Python

LIME-explainers

  • Aangepast aan verschillende datatypen

Zelfde diagram met daarnaast de Text-explainer.

Explainable AI in Python

LIME-explainers

  • Aangepast aan verschillende datatypen
  • Genereert verstoringen rond een sample
  • Bekijkt het effect op de modeloutput
  • Bouwt een eenvoudiger model voor uitleg

Zelfde diagram met daarnaast de Image-explainer.

Explainable AI in Python

LIME-explainers

  • Aangepast aan verschillende datatypen
  • Genereert verstoringen rond een sample
  • Bekijkt het effect op de modeloutput
  • Bouwt een eenvoudiger model voor uitleg

Zelfde diagram met de Tabular-explainer gemarkeerd.

Explainable AI in Python

Admissions-dataset

GRE-score TOEFL-score Universiteitsrating SOP LOR CGPA Kans op toelating Geaccepteerd
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: voorspelt kans op toelating
  • classifier: voorspelt acceptatie
  • Features in X
Explainable AI in Python

Tabular-explainer maken

Regressie
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
)
Classificatie
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 in Python

Uitleg visualiseren

Regressie
explanation_reg.as_pyplot_figure()

Staafdiagram met het effect van elke feature op het regressiemodel. Features staan in een bereik voor extra interpretatie.

Classificatie
explanation_class.as_pyplot_figure()

Staafdiagram met het effect van elke feature op het classificatiemodel. Features staan in een bereik voor extra interpretatie.

Explainable AI in Python

SHAP vs. LIME

SHAP
shap.waterfall_plot(...)

SHAP-waterfalldiagram dat laat zien hoe elke feature de voorspelling positief of negatief beïnvloedt.

LIME
explanation_class.as_pyplot_figure()

Staafdiagram met het effect van elke feature op het classificatiemodel. Features staan in een bereik voor extra interpretatie.

Explainable AI in Python

Laten we oefenen!

Explainable AI in Python

Preparing Video For Download...