Explicabilité locale avec LIME

IA explicable en Python

Fouad Trad

Machine Learning Engineer

  • LIME → Local 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 LIME.

IA explicable en Python

Explainers LIME

  • Adapté à différents types de données

Schéma des explainers LIME disponibles. Le premier est l’explainer tabulaire LIME.

IA explicable en Python

Explainers LIME

  • Adapté à différents types de données

Même schéma montrant en plus le Text Explainer.

IA explicable en Python

Explainers LIME

  • Adapté à différents 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 en plus l’Image Explainer.

IA explicable en Python

Explainers LIME

  • Adapté à différents 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’explainer Tabular mis en évidence.

IA explicable en Python

Jeu de données Admissions

Score GRE Score TOEFL Note université SOP LOR CGPA Proba d’admission 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
  • Variables dans X
IA explicable en Python

Créer un explainer 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
)
IA explicable en Python

Visualiser l’explication

Régression
explanation_reg.as_pyplot_figure()

Diagramme en barres montrant l’effet de chaque variable sur le modèle de régression. Les variables sont placées sur une plage pour une meilleure interprétation.

Classification
explanation_class.as_pyplot_figure()

Diagramme en barres montrant l’effet de chaque variable sur le modèle de classification. Les variables sont placées sur une plage pour une meilleure interprétation.

IA explicable en Python

SHAP vs LIME

SHAP
shap.waterfall_plot(...)

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

LIME
explanation_class.as_pyplot_figure()

Diagramme en barres montrant l’effet de chaque variable sur le modèle de classification. Les variables sont placées sur une plage pour une meilleure interprétation.

IA explicable en Python

Passons à la pratique !

IA explicable en Python

Preparing Video For Download...