SHAP, una Liberia de Python para la interpretabilidad de modelos de Machine Learning

Skillsbox
4 min readSep 21, 2023

Cuando nos adentramos en el mundo del Machine Learning, una de las primeras lecciones que aprendemos es que los modelos de IA pueden ser como cajas negras. ¿Qué significa esto? En esencia, estos modelos pueden tomar datos de entrada y generar predicciones con una precisión asombrosa, pero rara vez podemos entender completamente cómo llegaron a esas predicciones. Aquí es donde entra SHAP (Shapley Additive Explanations), una herramienta que nos permite iluminar el interior de esas cajas negras y entender cómo se toman las decisiones.

¿Qué es SHAP?

SHAP, o Shapley Additive Explanations, es un marco teórico y una biblioteca de Python que se utiliza para explicar el resultado de cualquier modelo de Machine Learning. Pero, ¿qué significa “explicar”? En el contexto de Machine Learning, explicar se refiere a revelar cómo cada característica (como edad, género o ingresos) contribuyó a una decisión de predicción específica.

Piénsalo como si estuvieras jugando en un equipo de fútbol y quieres saber la contribución de cada jugador para ganar el partido. SHAP hace algo similar para tus características: asigna un valor de importancia a cada característica en una predicción.

Cómo funciona SHAP

Imagina que tienes un modelo de Machine Learning entrenado para predecir si un paciente tiene diabetes o no en función de características como la glucosa, la edad, el IMC y la presión arterial. Queremos entender por qué el modelo predijo “Sí” para un paciente en particular.

  1. Valor base: SHAP comienza con un valor base, que es la salida promedio de todas las predicciones. En nuestro caso, sería la probabilidad promedio de tener diabetes en el conjunto de datos.
  2. Permutación de características: Luego, SHAP evalúa cómo cambia la predicción cuando quitamos aleatoriamente características del conjunto de datos. Por ejemplo, podríamos quitar temporalmente la característica de la glucosa y ver cómo afecta la predicción.
  3. Contribución de características: La contribución de cada característica se calcula como la diferencia entre la predicción con la característica y sin ella. Esto nos dice cuánto cambia la predicción debido a la presencia de esa característica.
  4. Valores SHAP: Finalmente, SHAP agrega todas estas contribuciones de características para obtener un valor SHAP para cada característica. Cuanto mayor sea el valor SHAP, más contribuye esa característica a que la predicción sea “Sí” en lugar de “No”.

Visualización de valores SHAP

Una de las formas más efectivas de comprender los valores SHAP es a través de visualizaciones. Aquí hay algunas visualizaciones comunes que te ayudarán a interpretar los resultados de SHAP:

  • Gráfico de barras de valores SHAP: Este gráfico muestra los valores SHAP para cada característica en una predicción específica. Cuanto más largo sea la barra, más influencia tiene esa característica en la predicción.
  • Resumen de importancia de características: Este gráfico muestra una vista general de la importancia de todas las características en todo el conjunto de datos. Te permite identificar las características más influyentes en general.
  • Gráfico de cascada (Waterfall plot): Similar al gráfico de barras, pero muestra cómo las características individuales contribuyen a una predicción específica de manera más detallada y visualmente atractiva.

Beneficios de SHAP

Entonces, ¿por qué deberías usar SHAP en tus proyectos de Machine Learning?

  1. Transparencia: SHAP te ayuda a comprender cómo se toman las decisiones de tu modelo, lo que es esencial para explicar y justificar esas decisiones a las partes interesadas.
  2. Depuración: Puede ayudarte a identificar problemas en tu modelo. Si ves que una característica tiene un valor SHAP inesperadamente alto o bajo, es una señal de que algo podría estar mal.
  3. Mejora del modelo: Puedes utilizar SHAP para optimizar tus características o incluso seleccionar las más relevantes para mejorar la precisión de tu modelo.
  4. Ética: SHAP puede ayudar a identificar y mitigar sesgos en tus modelos al mostrar cómo se toman las decisiones.

¿Cómo usar SHAP?

El uso de SHAP es bastante sencillo. Puedes empezar por importar la biblioteca de SHAP en tu entorno de Python y aplicarla a tu modelo entrenado. Luego, puedes generar visualizaciones y gráficos para interpretar los resultados.

import shap

# Crear un objeto explainer
explainer = shap.Explainer(modelo, datos)

# Calcular los valores SHAP
shap_values = explainer(data)

# Visualizar los resultados
shap.plots.waterfall(shap_values[0])

Conclusión

SHAP es una herramienta para comprender y explicar tus modelos de Machine Learning. No importa si eres un principiante o un experto en IA, SHAP puede ayudarte a visualizar las decisiones de tu modelo y tomar decisiones más informadas.

--

--

Skillsbox

Nuestro objetivo es compartir contigo ideas concretas y enfoques realistas para hacer más, aprender mejor y alcanzar tus objetivos.