Explications locales avec LIME

Explainable AI en Python

Fouad Trad

Machine Learning Engineer

  • LIMELocal Interpretable Model-Agnostic Explanations
  • Explique les prédictions de modèles complexes
  • Fonctionne sur des instances individuelles
  • Indépendant du type de modèle

Logo de LIME.

Explainable AI en Python

Explicateurs LIME

  • Adapté à divers types de données

Schéma des explicateurs LIME offerts. Le premier est l'explicateur LIME pour données tabulaires.

Explainable AI en Python

Explicateurs LIME

  • Adapté à divers types de données

Même schéma montrant aussi l'explicateur de texte.

Explainable AI en Python

Explicateurs LIME

  • Adapté à divers types de données
  • Génère des perturbations autour d'un échantillon
  • Observe l'effet sur la sortie du modèle
  • Construit un modèle plus simple pour expliquer

Même schéma montrant aussi l'explicateur d'images.

Explainable AI en Python

Explicateurs LIME

  • Adapté à divers types de données
  • Génère des perturbations autour d'un échantillon
  • Observe l'effet sur la sortie du modèle
  • Construit un modèle plus simple pour expliquer

Même schéma avec l'explicateur tabulaire en surbrillance.

Explainable AI en Python

Ensemble de données sur les admissions

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 : prédit la probabilité d'admission
  • classifier : prédit l'acceptation
  • Caractéristiques dans X
Explainable AI en Python

Créer un explicateur tabulaire

Régression
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
)
Classification
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 en Python

Visualiser l'explication

Régression
explanation_reg.as_pyplot_figure()

Diagramme en barres montrant l'effet de chaque caractéristique sur le modèle de régression. Les caractéristiques sont placées dans une plage pour faciliter l'interprétation.

Classification
explanation_class.as_pyplot_figure()

Diagramme en barres montrant l'effet de chaque caractéristique sur le modèle de classification. Les caractéristiques sont placées dans une plage pour faciliter l'interprétation.

Explainable AI en Python

SHAP vs LIME

SHAP
shap.waterfall_plot(...)

Graphique en cascade SHAP montrant comment chaque caractéristique pousse la prédiction positivement ou négativement.

LIME
explanation_class.as_pyplot_figure()

Diagramme en barres montrant l'effet de chaque caractéristique sur le modèle de classification. Les caractéristiques sont placées dans une plage pour faciliter l'interprétation.

Explainable AI en Python

Passons à la pratique !

Explainable AI en Python

Preparing Video For Download...