Lokal förklarbarhet med LIME

Förklarbar AI i Python

Fouad Trad

Machine Learning Engineer

  • LIMELocal Interpretable Model-Agnostic Explanations
  • Förklarar prediktioner från komplexa modeller
  • Fungerar på enskilda instanser
  • Modelltypsagnostisk

LIME-logotyp.

Förklarbar AI i Python

LIME-förklarare

  • Anpassad för olika datatyper

Diagram som visar tillgängliga LIME-förklarare. Den första är LIME tabular explainer.

Förklarbar AI i Python

LIME-förklarare

  • Anpassad för olika datatyper

Samma diagram med Text Explainer tillagd.

Förklarbar AI i Python

LIME-förklarare

  • Anpassad för olika datatyper
  • Genererar perturbationer kring ett sampel
  • Observerar effekten på modellens utdata
  • Konstruerar en enklare modell för förklaringen

Samma diagram med Image Explainer tillagd.

Förklarbar AI i Python

LIME-förklarare

  • Anpassad för olika datatyper
  • Genererar perturbationer kring ett sampel
  • Observerar effekten på modellens utdata
  • Konstruerar en enklare modell för förklaringen

Samma diagram med Tabular Explainer markerad.

Förklarbar AI i Python

Antagningsdataset

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: predicerar antagningschans
  • classifier: predicerar antagning
  • Särdrag i X
Förklarbar AI i Python

Skapa en tabular explainer

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
)
Klassificering
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
)
Förklarbar AI i Python

Visualisera förklaringen

Regression
explanation_reg.as_pyplot_figure()

Stapeldiagram som visar varje särdags effekt på regressionsmodellen. Särdragen placeras inom ett intervall för bättre tolkbarhet.

Klassificering
explanation_class.as_pyplot_figure()

Stapeldiagram som visar varje särdags effekt på klassificeringsmodellen. Särdragen placeras inom ett intervall för bättre tolkbarhet.

Förklarbar AI i Python

SHAP vs. LIME

SHAP
shap.waterfall_plot(...)

SHAP-vattenfallsdiagram som visar hur varje särdrag påverkar prediktionen positivt eller negativt.

LIME
explanation_class.as_pyplot_figure()

Stapeldiagram som visar varje särdags effekt på klassificeringsmodellen. Särdragen placeras inom ett intervall för bättre tolkbarhet.

Förklarbar AI i Python

Nu kör vi en övning!

Förklarbar AI i Python

Preparing Video For Download...