Explicabilidad local con LIME

IA explicable en Python

Fouad Trad

Machine Learning Engineer

  • LIME → Local Interpretable Model-Agnostic Explanations
  • Explica predicciones de modelos complejos
  • Funciona en instancias individuales
  • Agnóstico al tipo de modelo

Logo de LIME.

IA explicable en Python

Explicadores LIME

  • Adaptado a distintos tipos de datos

Diagrama que muestra los explicadores LIME disponibles. El primero es el explicador tabular de LIME.

IA explicable en Python

Explicadores LIME

  • Adaptado a distintos tipos de datos

Mismo diagrama mostrando además el explicador de texto.

IA explicable en Python

Explicadores LIME

  • Adaptado a distintos tipos de datos
  • Genera perturbaciones alrededor de una muestra
  • Observa el efecto en la salida del modelo
  • Crea un modelo más simple para explicar

Mismo diagrama mostrando además el explicador de imágenes.

IA explicable en Python

Explicadores LIME

  • Adaptado a distintos tipos de datos
  • Genera perturbaciones alrededor de una muestra
  • Observa el efecto en la salida del modelo
  • Crea un modelo más simple para explicar

Mismo diagrama con el explicador Tabular resaltado.

IA explicable en Python

Dataset de admisiones

Puntuación GRE Puntuación TOEFL Valoración de la universidad SOP LOR CGPA Prob. de admisión Aceptado
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 prob. de admisión
  • classifier: predice aceptación
  • Variables en X
IA explicable en Python

Crear explicador tabular

Regresión
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
)
Clasificación
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

Visualizar la explicación

Regresión
explanation_reg.as_pyplot_figure()

Gráfico de barras que muestra el efecto de cada variable en el modelo de regresión. Las variables se sitúan en un rango para facilitar la interpretación.

Clasificación
explanation_class.as_pyplot_figure()

Gráfico de barras que muestra el efecto de cada variable en el modelo de clasificación. Las variables se sitúan en un rango para facilitar la interpretación.

IA explicable en Python

SHAP vs. LIME

SHAP
shap.waterfall_plot(...)

Gráfico waterfall de SHAP que muestra cómo cada variable empuja la predicción positiva o negativamente.

LIME
explanation_class.as_pyplot_figure()

Gráfico de barras que muestra el efecto de cada variable en el modelo de clasificación. Las variables se sitúan en un rango para facilitar la interpretación.

IA explicable en Python

¡Vamos a practicar!

IA explicable en Python

Preparing Video For Download...