# Valor de Shapley Los Shapley values son una medida de la contribución de cada característica a la predicción de un modelo de aprendizaje automático. Se basan en la teoría de juegos y se calculan utilizando un enfoque basado en juegos para asignar crédito a cada característica. En la teoría de juegos, el valor de Shapley de un jugador es una medida de la contribución de ese jugador a un juego cooperativo. En el contexto de los modelos de aprendizaje automático, el valor de Shapley de una característica es una medida de la contribución de esa característica a la predicción del modelo. Para calcular los Shapley values, se crea un conjunto de puntos de datos "alternos" que son similares al punto de datos que se está explicando. Se predice el punto de datos original y cada punto de datos alternativo utilizando el modelo. Se calcula el valor de Shapley de cada característica para cada punto de datos alternativo. Finalmente, se promedian los valores de Shapley de cada característica para obtener un valor de Shapley global. Los Shapley values se pueden visualizar utilizando diferentes métodos, como mapas de calor o gráficos de barras. Estos gráficos pueden ayudar a comprender cómo las características contribuyen a la predicción del modelo. **Aquí hay algunos ejemplos de cómo se pueden utilizar los Shapley values:** * **Para comprender cómo las características contribuyen a la predicción:** Los Shapley values pueden utilizarse para visualizar cómo las características contribuyen a la predicción de un modelo. Esto puede ser útil para comprender qué características son más importantes para el modelo y cómo estas características interactúan entre sí. * **Para identificar sesgos en los datos:** Los Shapley values pueden utilizarse para identificar sesgos en los datos que pueden estar afectando a las predicciones del modelo. Esto puede ser útil para depurar el modelo o para realizar ajustes en los datos. * **Para depurar modelos:** Los Shapley values pueden utilizarse para ayudar a identificar los problemas con un modelo. Esto puede ser útil para mejorar el rendimiento del modelo o para identificar errores en el modelo. **Ventajas de los Shapley values:** * Son una medida objetiva de la importancia de las características. * Pueden utilizarse para explicar cómo las características contribuyen a la predicción de un modelo. * Son una herramienta versátil que se puede utilizar para una variedad de propósitos. **Desventajas de los Shapley values:** * Pueden ser computacionalmente costosos de calcular. * Pueden ser difíciles de interpretar para usuarios no técnicos. En general, los Shapley values son una herramienta valiosa para la explicabilidad de modelos. Son una manera fácil de explicar cómo los modelos de aprendizaje automático toman sus decisiones y pueden ayudar a los usuarios a comprender mejor cómo funcionan estos modelos. ## Ecuación La fórmula general para calcular el valor de Shapley de un jugador (o en nuestro caso, una característica) en el contexto de SHAP es la siguiente: $$ \phi_i(v) = \sum_{S \subseteq N \setminus \{i\}} \frac{|S|!(|N| - |S| - 1)!}{|N|!} \left[v(S \cup \{i\}) - v(S)\right] $$ Aquí, los términos clave son: - $\phi_i(v)$: Es el Shapley value del jugador $i$ en el juego representado por la función de valor $v$. - $N$: Es el conjunto de todos los jugadores (en nuestro caso, todas las características). - $S \subseteq N \setminus \{i\}$: $S$ es una coalición que no contiene al jugador $i$. - $|S|$: Representa el número de jugadores en la coalición $S$. - $|N|$: Es el número total de jugadores (características). - $v(S \cup \{i\})$: Es el valor de la función $v$ cuando la coalición es ampliada para incluir al jugador $i$. - $v(S)$: Es el valor de la función $v$ cuando solo consideramos la coalición $S$. Esta fórmula puede parecer compleja, pero es esencialmente una suma ponderada de las diferencias en la contribución de la característica $i$ cuando se agrega a diferentes coaliciones. El término $\frac{|S|!(|N| - |S| - 1)!}{|N|!}$ representa la ponderación de las diferentes permutaciones posibles de las coaliciones. En el contexto de SHAP, la función $v$ es la función de predicción del modelo y la coalición $S$ representa las características que se están considerando en un momento dado. --- La fórmula matemática para calcular los Shapley values es la siguiente: $$ φ_i(v) = \sum_{S \subseteq N \setminus \{i\}} \frac{|S|!(N-|S|-1)!}{N!}(v(S \cup \{i\}) - v(S)) $$ donde: * φ_i(v) es el valor de Shapley de la característica i para el valor v. * S es un subconjunto de las características del modelo, excluyendo la característica i. * N es el número total de características del modelo. * |S| es el tamaño del subconjunto S. * v(S) es el valor del modelo cuando se utilizan las características en el subconjunto S. Esta fórmula se basa en la teoría de juegos y asigna crédito a cada característica por su contribución a la predicción del modelo. Para entender cómo funciona la fórmula, podemos pensar en un modelo de aprendizaje automático que predice si un paciente tiene cáncer de mama o no. En este caso, las características serían los datos médicos del paciente, como su edad, historial familiar, etc. El valor de Shapley de una característica es la diferencia entre la predicción del modelo cuando la característica está presente y la predicción del modelo cuando la característica está ausente. Para calcular el valor de Shapley de una característica, se crea un conjunto de puntos de datos "alternos" que son similares al punto de datos que se está explicando. Se predice el punto de datos original y cada punto de datos alternativo utilizando el modelo. Se calcula el valor de Shapley de la característica para cada punto de datos alternativo. Finalmente, se promedian los valores de Shapley de cada característica para obtener un valor de Shapley global. En el caso del modelo de aprendizaje automático para predecir el cáncer de mama, el valor de Shapley de la característica "edad" sería la diferencia entre la predicción del modelo cuando la edad del paciente es alta y la predicción del modelo cuando la edad del paciente es baja. Los Shapley values se pueden visualizar utilizando diferentes métodos, como mapas de calor o gráficos de barras. Estos gráficos pueden ayudar a comprender cómo las características contribuyen a la predicción del modelo. **Ejemplo:** Consideremos un modelo de aprendizaje automático que predice el precio de una casa. El modelo tiene dos características: el tamaño de la casa y el número de dormitorios. Para calcular el valor de Shapley de la característica "tamaño", se crearía un conjunto de puntos de datos alternativos que son similares al punto de datos que se está explicando. Estos puntos de datos alternativos podrían tener diferentes tamaños de casa, pero el mismo número de dormitorios. Se predeciría el punto de datos original y cada punto de datos alternativo utilizando el modelo. Se calcularía el valor de Shapley de la característica "tamaño" para cada punto de datos alternativo. Finalmente, se promediarían los valores de Shapley de cada característica para obtener un valor de Shapley global. En este caso, el valor de Shapley de la característica "tamaño" sería la diferencia entre la predicción del modelo cuando el tamaño de la casa es grande y la predicción del modelo cuando el tamaño de la casa es pequeño. **Interpretación:** Los valores de Shapley se pueden interpretar como la contribución de cada característica a la predicción del modelo. Un valor de Shapley positivo significa que la característica contribuye positivamente a la predicción, mientras que un valor de Shapley negativo significa que la característica contribuye negativamente a la predicción. Los valores de Shapley también se pueden interpretar como la sensibilidad del modelo a cambios en la característica. Un valor de Shapley alto significa que el modelo es muy sensible a cambios en la característica, mientras que un valor de Shapley bajo significa que el modelo es poco sensible a cambios en la característica. **Ventajas y desventajas:** Las ventajas de los valores de Shapley incluyen: * Son una medida objetiva de la importancia de las características. * Pueden utilizarse para explicar cómo las características contribuyen a la predicción de un modelo. * Son una herramienta versátil que se puede utilizar para una variedad de propósitos. Las desventajas de los valores de Shapley incluyen: * Pueden ser computacionalmente costosos de calcular. * Pueden ser difíciles de interpretar para usuarios no técnicos. ## Ejemplo ¡Claro, con gusto! Vamos a ilustrar los valores de Shapley con un ejemplo sencillo. Supongamos que tenemos un juego cooperativo con tres jugadores: \( A \), \( B \) y \( C \). La función de valor del juego está dada por la suma de los jugadores en la coalición: \[ v(S) = \sum_{i \in S} i \] Donde \( S \) es una coalición de jugadores. Ahora, aplicamos la fórmula de Shapley para cada jugador. La fórmula es: \[ \phi_i(v) = \sum_{S \subseteq N \setminus \{i\}} \frac{|S|!(|N| - |S| - 1)!}{|N|!} \left[v(S \cup \{i\}) - v(S)\right] \] Vamos a calcular los valores de Shapley para \( A \), \( B \) y \( C \): 1. Para \( A \): \[ \begin{align*} \phi_A(v) &= \frac{1}{6}[(v(\{A\}) + v(\{A, B\}) + v(\{A, C\}) - v(\{\})) \\ &\quad+ (v(\{A, B, C\}) + v(\{A, B\}) + v(\{A, B, C\}) - v(\{B\})) \\ &\quad+ (v(\{A, B, C\}) + v(\{A, C\}) + v(\{A, B, C\}) - v(\{C\}))] \\ &= \frac{1}{6}[(1 + 3 + 4 - 0) + (6 + 3 + 6 - 1) + (6 + 4 + 6 - 3)] \\ &= \frac{1}{6}(22) = \frac{11}{3} \end{align*} \] 2. Para \( B \): \[ \begin{align*} \phi_B(v) &= \frac{1}{6}[(v(\{B\}) + v(\{A, B\}) + v(\{B, C\}) - v(\{\})) \\ &\quad+ (v(\{A, B, C\}) + v(\{A, B\}) + v(\{B, C\}) - v(\{A\})) \\ &\quad+ (v(\{A, B, C\}) + v(\{A, B\}) + v(\{B, C\}) - v(\{C\}))] \\ &= \frac{1}{6}[(2 + 3 + 5 - 0) + (6 + 3 + 5 - 1) + (6 + 5 + 5 - 4)] \\ &= \frac{1}{6}(32) = \frac{16}{3} \end{align*} \] 3. Para \( C \): $$ \begin{align*} \phi_C(v) &= \frac{1}{6}[(v(\{C\}) + v(\{A, C\}) + v(\{B, C\}) - v(\{\})) \\ &\quad+ (v(\{A, B, C\}) + v(\{A, C\}) + v(\{B, C\}) - v(\{A\})) \\ &\quad+ (v(\{A, B, C\}) + v(\{A, C\}) + v(\{B, C\}) - v(\{B\}))] \\ &= \frac{1}{6}[(3 + 4 + 5 - 0) + (6 + 4 + 5 - 2) + (6 + 5 + 5 - 3)] \\ &= \frac{1}{6}(39) = \frac{13}{2} \end{align*} $$ Estos son los valores de Shapley para cada jugador en este ejemplo particular. Indican cuánto contribuye cada jugador al juego cooperativo promediando sobre todas las posibles coaliciones. Ten en cuenta que este es un ejemplo simple y los valores de Shapley pueden variar según la función de valor y la estructura del juego. ## Ejemplos ### Ejemplo de negocio Considera una descripción simplificada de un negocio. Un propietario, $o$, proporciona capital crucial en el sentido de que, sin él/ella, no se pueden obtener ganancias. Hay $m$ trabajadores $w_1, \dots ,w_m$, cada uno de los cuales contribuye con una cantidad $p$ a la ganancia total. Sea $$ N={o,w_1,\dots,w_m} $$ La función de valor para este juego de coalición es $$ v(S)=\begin{cases} mp & \text{si } o\in S\\ 0 & \text{de lo contrario } \end{cases} $$ donde $m$ es la cardinalidad de $S∖\{o\}$. Calcular el valor de Shapley para este juego de coalición conduce a un valor de $mp/2$ para el propietario y $p/2$ para cada uno de los $m$ trabajadores. Esto se puede entender desde la perspectiva de la sinergia. La función de sinergia $w$ es $$ w(S)=\begin{cases} p & \text{si } S=\{o,w_i\} \\ 0 & \text{de lo contrario } \end{cases} $$ entonces, las únicas coaliciones que generan sinergia son las uno a uno entre el propietario y cualquier trabajador individual. Usando la fórmula anterior para el valor de Shapley en términos de $w$ calculamos $$ \varphi_{w_{i}}=\frac{w(\{o,w_i\})}{2}=\frac{p}{2} $$ y $$ \varphi_{w_{i}}=\sum_{i=1}^{m}{\frac{w(\{o,w_i\})}{2}=\frac{mp}{2}} $$ ### Juego de guantes