Explicabilidad local con SHAP

IA explicable en Python

Fouad Trad

Machine Learning Engineer

Explicabilidad global vs. local

Explicabilidad global
  • Comportamiento general del modelo
  • No explica casos individuales

Profesor explicando el rendimiento general de la clase a todo el alumnado.

Explicabilidad local
  • Explica la predicción para un dato concreto
  • Clave en aplicaciones sensibles

Profesor explicando a un estudiante concreto el motivo de su nota.

1 Imágenes generadas con DALL-E
IA explicable en Python

Dataset de cardiopatías

age sex chest_pain_type blood_pressure ecg_results thalassemia target
52 1 0 125 1 3 0
53 1 0 140 0 3 0
70 1 0 145 1 3 0
61 1 0 148 1 3 0
62 0 0 138 1 2 0

 

knn: clasificador KNN que predice riesgo de cardiopatía

IA explicable en Python

Explicabilidad local con SHAP

explainer = shap.KernelExplainer(knn.predict_proba, shap.kmeans(X, 10))

test_instance = X.iloc[0, :]
shap_values = explainer.shap_values(test_instance)
print(shap_values.shape)
(6, 2)
IA explicable en Python

Diagramas de cascada SHAP

  • Muestra cómo las variables suben o bajan la predicción del modelo

Un diagrama de cascada que muestra varias variables y la contribución de cada una a la predicción.

IA explicable en Python

Diagramas de cascada SHAP

  • Muestra cómo las variables suben o bajan la predicción del modelo

Mismo diagrama de cascada que muestra el valor base, que sirve como punto inicial de la predicción.

IA explicable en Python

Diagramas de cascada SHAP

  • Muestra cómo las variables suben o bajan la predicción del modelo

Mismo diagrama de cascada que muestra que, en estos diagramas, las variables que empujan a la derecha aumentan la predicción y las que empujan a la izquierda la disminuyen.

IA explicable en Python

Crear diagramas de cascada

shap.waterfall_plot(

shap.Explanation(
values=shap_values[:,1],
base_values=explainer.expected_value[1],
data=test_instance,
feature_names=X.columns
)
)
IA explicable en Python

Cascadas para varias instancias

Figura con cuatro diagramas de cascada, uno por muestra, que ilustran cómo cada muestra sigue patrones distintos hasta la decisión del modelo.

IA explicable en Python

¡Vamos a practicar!

IA explicable en Python

Preparing Video For Download...