SHAP#
SHAP (SHapley Additive exPlanations) es un marco de interpretabilidad para modelos de machine learning basado en los valores de Shapley de la teoría de juegos cooperativos. Su objetivo es responder una pregunta fundamental: ¿por qué el modelo hizo esta predicción?
SHAP descompone cualquier predicción individual en contribuciones atribuibles a cada feature de entrada. Por ejemplo, si un modelo predice que el precio de una casa es 350.000, SHAP puede decirnos que la ubicación sumó 40.000, el tamaño sumó 25.000, la antigüedad restó 15.000, y así sucesivamente, hasta sumar exactamente la diferencia entre la predicción y el valor base.
El problema original:
En 1953, Lloyd Shapley planteó un problema de teoría de juegos cooperativos: si un grupo de jugadores trabaja en conjunto para obtener una ganancia total, ¿cómo repartir esa ganancia de forma justa entre todos los participantes?
La solución de Shapley consiste en calcular la contribución marginal promedio de cada jugador, considerando todas las posibles coaliciones (subconjuntos de jugadores) en las que podría participar.
Adaptación a machine learning
En el contexto de ML:
Los jugadores son los features (variables de entrada).
La ganancia es la predicción del modelo para una instancia específica.
La coalición es un subconjunto de features que “participan” en la predicción.
El valor de Shapley de un feature i se calcula evaluando cuánto cambia la predicción al agregar ese feature a cada posible subconjunto de los demás features, y luego promediando esas contribuciones marginales.
Fórmula matemática
Para un conjunto total de N features, el valor de Shapley del feature i es:
Donde:
\(S\) es un subconjunto de features que no incluye a \(i\).
\(f(S)\) es la predicción del modelo usando solo los features del subconjunto \(S\).
\(f(S \cup \{i\})\) es la predicción al agregar el feature \(i\) al subconjunto.
El factor combinatorio \(\frac{|S|! \; (|N|-|S|-1)!}{|N|!}\) pondera cada coalición para garantizar equidad.
La suma recorre todos los subconjuntos posibles de features excluyendo a \(i\), lo que implica evaluar \(2^{N-1}\) coaliciones por feature.
Cuatro propiedades
Lo que hace único a SHAP frente a otros métodos de explicabilidad es que es el único método de atribución aditivo que satisface simultáneamente estas cuatro propiedades:
1. Eficiencia (Efficiency)
Las contribuciones de todos los features suman exactamente la diferencia entre la predicción del modelo y la predicción base (el valor esperado del modelo):
No queda ningún residuo sin explicar. Toda la predicción está completamente distribuida entre los features.
2. Simetría (Symmetry)
Si dos features i y j contribuyen de forma idéntica en todas las coaliciones posibles, entonces reciben el mismo valor de Shapley:
No hay favoritismo arbitrario entre features equivalentes.
3. Nulidad (Dummy / Null Player)
Si un feature no cambia la predicción en ninguna coalición, su valor de Shapley es cero:
No se atribuye importancia ficticia a features irrelevantes.
4. Linealidad (Additivity)
Si se combinan dos modelos (por ejemplo, un ensamble), los valores SHAP del modelo combinado son la suma de los valores SHAP de cada modelo individual:
El problema computacional
Calcular valores de Shapley exactos requiere evaluar \(2^N\) coaliciones para cada feature, donde \(N\) es el número total de features. Para un modelo con 20 features, esto implica más de un millón de evaluaciones por feature; con 50 features, el cálculo es completamente inviable.
Por esta razón, se han desarrollado diversas aproximaciones optimizadas para distintos tipos de modelos.
Variantes y aproximaciones de SHAP#
KernelSHAP (model-agnostic)
KernelSHAP funciona con cualquier modelo tratándolo como una caja negra. El algoritmo:
Genera coaliciones aleatorias de features (muestras binarias que indican qué features están “presentes” o “ausentes”).
Evalúa la predicción del modelo para cada coalición, integrando sobre los valores de los features ausentes.
Resuelve un problema de regresión lineal ponderada donde los pesos están dados por el kernel de Shapley, que asigna mayor importancia a las coaliciones muy pequeñas y muy grandes.
Ventaja: funciona con cualquier modelo.
Desventaja: es lento, especialmente con muchos features o modelos costosos de evaluar.
TreeSHAP (modelos basados en árboles)
TreeSHAP aprovecha la estructura interna de los árboles de decisión para calcular los valores de Shapley de forma exacta en tiempo polinomial. Funciona recorriendo el árbol y acumulando las contribuciones de cada feature en cada nodo de decisión.
Modelos compatibles: XGBoost, LightGBM, Random Forest, Gradient Boosted Trees.
Ventaja: cálculo exacto y extremadamente rápido (de exponencial a polinomial).
Desventaja: solo funciona con modelos de árboles.
DeepSHAP (redes neuronales)
DeepSHAP combina la teoría de SHAP con la técnica DeepLIFT, propagando las contribuciones capa por capa a través de la red neuronal. En lugar de evaluar coaliciones explícitas, descompone la activación de cada neurona en contribuciones de sus entradas.
Ventaja: eficiente para redes profundas.
Desventaja: introduce aproximaciones que pueden violar las propiedades axiomáticas.
LinearSHAP (modelos lineales)
Para modelos lineales, los valores de Shapley tienen solución analítica directa. Si el modelo es \(f(x) = \beta_0 + \sum_i \beta_i x_i\), entonces el valor SHAP del feature \(i\) es simplemente \(\phi_i = \beta_i (x_i - \mathbb{E}[x_i])\), donde \(\mathbb{E}[x_i]\) es el valor esperado del feature.