Spiegabilità locale con LIME

Explainable AI in Python

Fouad Trad

Machine Learning Engineer

  • LIMELocal Interpretable Model-Agnostic Explanations
  • Spiega le predizioni di modelli complessi
  • Lavora su singole istanze
  • Agnostico al tipo di modello

Logo LIME.

Explainable AI in Python

Explainer LIME

  • Adattato a diversi tipi di dati

Diagramma che mostra gli explainer LIME disponibili. Il primo è l’explainer tabellare LIME.

Explainable AI in Python

Explainer LIME

  • Adattato a diversi tipi di dati

Stesso diagramma che mostra anche il Text Explainer.

Explainable AI in Python

Explainer LIME

  • Adattato a diversi tipi di dati
  • Genera perturbazioni attorno a un campione
  • Osserva l’effetto sull’output del modello
  • Costruisce un modello più semplice per spiegare

Stesso diagramma che mostra anche l’Image Explainer.

Explainable AI in Python

Explainer LIME

  • Adattato a diversi tipi di dati
  • Genera perturbazioni attorno a un campione
  • Osserva l’effetto sull’output del modello
  • Costruisce un modello più semplice per spiegare

Stesso diagramma con l'explainer Tabular evidenziato.

Explainable AI in Python

Dataset ammissioni

Punteggio GRE Punteggio TOEFL Valutazione università SOP LOR CGPA Prob. di ammissione Accetta
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: predice la probabilità di ammissione
  • classifier: predice l’accettazione
  • Feature in X
Explainable AI in Python

Creare un explainer tabellare

Regressione
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
)
Classificazione
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

Visualizzare la spiegazione

Regressione
explanation_reg.as_pyplot_figure()

Grafico a barre che mostra l’effetto di ogni feature sul modello di regressione. Le feature sono posizionate su un intervallo per una migliore interpretabilità.

Classificazione
explanation_class.as_pyplot_figure()

Grafico a barre che mostra l’effetto di ogni feature sul modello di classificazione. Le feature sono posizionate su un intervallo per una migliore interpretabilità.

Explainable AI in Python

SHAP vs LIME

SHAP
shap.waterfall_plot(...)

Grafico a cascata SHAP che mostra come ogni feature spinge la predizione in positivo o in negativo.

LIME
explanation_class.as_pyplot_figure()

Grafico a barre che mostra l’effetto di ogni feature sul modello di classificazione. Le feature sono posizionate su un intervallo per una migliore interpretabilità.

Explainable AI in Python

Ayo berlatih!

Explainable AI in Python

Preparing Video For Download...