Explicabilitate locală cu LIME

AI Explicabil în Python

Fouad Trad

Machine Learning Engineer

  • LIMELocal Interpretable Model-Agnostic Explanations
  • Explică predicțiile modelelor complexe
  • Funcționează pe instanțe individuale
  • Agnostic față de tipul modelului

Logo LIME.

AI Explicabil în Python

Explicatoare LIME

  • Adaptat pentru diferite tipuri de date

Diagramă care prezintă explicatoarele LIME disponibile. Primul este explicatorul tabular LIME.

AI Explicabil în Python

Explicatoare LIME

  • Adaptat pentru diferite tipuri de date

Aceeași diagramă care prezintă suplimentar explicatorul Text.

AI Explicabil în Python

Explicatoare LIME

  • Adaptat pentru diferite tipuri de date
  • Generează perturbații în jurul unui eșantion
  • Observă efectul asupra ieșirii modelului
  • Construiește un model mai simplu pentru explicație

Aceeași diagramă care prezintă suplimentar explicatorul Image.

AI Explicabil în Python

Explicatoare LIME

  • Adaptat pentru diferite tipuri de date
  • Generează perturbații în jurul unui eșantion
  • Observă efectul asupra ieșirii modelului
  • Construiește un model mai simplu pentru explicație

Aceeași diagramă cu explicatorul Tabular evidențiat.

AI Explicabil în Python

Setul de date pentru admitere

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: prezice șansa de admitere
  • classifier: prezice acceptarea
  • Variabile în X
AI Explicabil în Python

Crearea unui explicator tabular

Regresie
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
)
Clasificare
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
)
AI Explicabil în Python

Vizualizarea explicației

Regresie
explanation_reg.as_pyplot_figure()

Diagramă cu bare care arată efectul fiecărei variabile asupra modelului de regresie. Variabilele sunt plasate într-un interval pentru interpretabilitate mai bună.

Clasificare
explanation_class.as_pyplot_figure()

Diagramă cu bare care arată efectul fiecărei variabile asupra modelului de clasificare. Variabilele sunt plasate într-un interval pentru interpretabilitate mai bună.

AI Explicabil în Python

SHAP vs. LIME

SHAP
shap.waterfall_plot(...)

Grafic waterfall SHAP care arată cum fiecare variabilă influențează predicția pozitiv sau negativ.

LIME
explanation_class.as_pyplot_figure()

Diagramă cu bare care arată efectul fiecărei variabile asupra modelului de clasificare. Variabilele sunt plasate într-un interval pentru interpretabilitate mai bună.

AI Explicabil în Python

Să exersăm!

AI Explicabil în Python

Preparing Video For Download...