3. Global Model-Agnostic Methods

Resumen del libro de Molnar

Javier París

1 Model-Agnostic Methods

1.1 Model-Agnostic Methods

Estos métodos se usan para sacar explicaciones de un modelo \(M\) ya entrenado independientemente del algoritmo utilizado. Es decir, \(M\) es un modelo (random forest, KNN etc.) ya entrenado con un dataset \(D\) que funciona como una caja negra haciendo predicciones sobre datos, y queremos encontrar métodos genéricos para sacar explicaciones de cómo \(M\) llega a esas predicciones, o bien ser capaces de predecirlas.

Estos métodos pueden ser:

  • Globales: se aplican al modelo en su totalidad y dan información sobre el conjunto entero del modelo o el dataset.
  • Locales: se aplican a un solo dato o conjunto reducido y dan información sobre cómo el modelo ha llegado a esa predicción.

1.2 Paradigmas

Por lo que he visto, existen 3 grandes paradigmas para poder explicar un modelo:

  • Feature Importance: entender qué atributos son más importantes para el modelo y cómo el cambio de ese atributo afecta en la predicción.
  • Surrogate Model: generar un nuevo modelo inherentemente interpretable para aproximar \(M\), y extrapolar las interpretaciones.
  • Counterfactual Examples: Utilizar datos individuales para explicar \(M\) o sus partes:
    • A través de representar conjuntos de datos como uno solo
    • A través de comparar datos individuales

2 PDP - Partial Dependence Plots

2.1 Definición

Entender el efecto marginal de una variable en la predicción de un modelo. Es decir, visualizar cómo cambia la predicción del modelo si cambiamos el valor de únicamente una variable.


Feature Importance


For Dummies

La idea es dibujar una función. El eje \(x\) será todos los posibles valores para un atributo \(S\), e \(y\) el valor promedio predicho por el modelo si a cada valor del dataset le cambiamos el atributo \(S\) por el valor \(x\).

2.2 Función de dependencia parcial (PDP)

Queremos calcular cómo cambia la predicción (\(\hat{f}_s\)) variando solo la variable \(S\).

\[\hat{f}_S(x_S) = E_{X_C}[\hat{f}(x_S, X_C)] = \int \hat{f}(x_S, x_C) dP(x_C)\]

En la práctica, se calcula ajustando el valor de la variable \(S\) a \(x_S\) y dejando el resto de las variables constantes a lo largo del dataset. Calculamos el valor promedio de la predicción para cada valor de \(x_S\) y pintamos la función.

\[\hat{f}_S(x_S) = \frac{1}{n} \sum_{i=1}^{n} \hat{f}(x_S, x_{C_i})\]

2.3 Variaciones

2.3.1 2D PDP

Se puede hacer un PDP con 2 atributos, lo cual es capaz de mostrar la relación entre atributos. Más dimensiones no serían visualizables.

Esto se lleva a cabo de la misma forma. Para cada par de posibles valores para los 2 atributos \(S_1\) y \(S_2\), se modifican los valores de cada uno de los datos en el dataset, y se promedia el resultado de la predicción. Esto se dibuja en un mapa de colores.

Esto permite ver la relación entre los atributos.

2.4 Ejemplo - bicis

https://christophm.github.io/interpretable-ml-book/images/pdp-bike-1.jpeg

2.5 Ejemplo 2D - cáncer

https://christophm.github.io/interpretable-ml-book/images/pdp-cervical-2d-1.jpeg

2.6 Pros / Cons

2.6.1 Ventajas

  • Intuitivo y con clara interpretación.
  • Fácil de implementar.
  • Puede utilizarse para detectar interacciones entre variables.

2.6.2 Desventajas

  • Solo puede usarse para 1 o 2 variables.
  • La distribución de la variable no es visualizable, y puede llevar a errores de interpretación.
  • Asunción de independencia: puede dar lugar a datos imposibles.
  • Efectos heterogéneos pueden ocultarse: el valor es un promedio, pero no da información sobre la variabilidad.

3 ALE Plot - Accumulated Local Effects

3.1 Definición

Alternativa rápida de PDP que reduce la necesidad de independencia entre variables y calcula un valor acumulado.


Feature Importance


En PDP cambiábamos el atributo \(S\) de cada dato del dataset por cada \(x_S\). En este caso solo lo haremos para datos cuya \(S\) original esté dentro de un rango de \(x_S\), reduciendo datos imposibles.

3.2 Motivación - Solución a datos heterogéneos en PDP

https://christophm.github.io/interpretable-ml-book/images/correlation-problem-1.jpeg

https://christophm.github.io/interpretable-ml-book/images/correlation-pdp-ale-plot-1.jpeg

3.3 Función de efectos locales acumulados (ALE)

Partimos el rango de la variable \(S\) en \(N\) vecindades, y calculamos PDP acumulado para cada una de ellas.

\[\hat{f}_{j,ALE}(x_S) = \sum_{k=1}^{k_j(x)} \frac{1}{n_j(k)} \sum_{i:x_j^{(i)} \in N_j(k)} [ \hat{f}(z_{k,j},x_{-j}^{(i)}) - \hat{f}(z_{k-1,j},x_{-j}^{(i)}) ]\]

3.4 Ejemplo - bicis

https://christophm.github.io/interpretable-ml-book/images/ale-bike-1.jpeg

3.5 Ejemplo 2D - bicis

https://christophm.github.io/interpretable-ml-book/images/ale-bike-2d-1.jpeg

La interpretación para 2 atributos puede ser complicada. Un dato alto de ALE no implica que el valor real sea más alto, si no que cuando los 2 atributos concurren en la misma zona el valor es más alto que si estuvieran separados. Pero no quiere decir que el valor sea más alto per se, porque los atributos por separado pueden hacer tender los datos hacia abajo.

3.6 Pros / Cons

3.6.1 Ventajas

  • No sesgado: no asume independencia entre variables.
  • Más rápido de calcular que PDP.
  • Interpretación clara (menos intuitiva que PDP).

3.6.2 Desventajas

  • No se puede interpretar un efecto a lo largo de todo el rango de la variable.
  • La elección de los intervalos es manual y subjetiva, y afecta mucho al resultado.
  • Pueden ser demasiado inestables (muchos picos) dependiendo de los intervalos elegidos.
  • Los plots de 2 dimensiones pueden ser difíciles de interpretar.
  • Aunque lo reduce, sigue teniendo el problema de la independencia con variables altamente correlacionadas.

4 Feature Interaction

4.1 Definición

Los atributos pueden intearctuar entre sí haciendo que el efecto de que ambos ocurran a la vez sea diferente al efecto de que ocurran por separado. Queremos estudiar la fuerza de la interacción entre pares de atributos, y de cada atributo con el resto.

Important

No vamos a estudiar las correlaciones o dependencias, si no las aportaciones de las interacciones a la predicción.


Feature Importance


For Dummies

Vamos a medir la fuerza de la interacción entre 2 atributos.

4.2 H-statistic

Si dos atributos no interactúan, su PDfunction es:

\[PD_{jk}(x_j, x_k) = PD_j(x_j) + PD_k(x_k)\]

Si un atributo no tiene ninguna interacción con ningún otro atributo, la función de predicción se puede escribir como:

\[\hat{f}(x) = PD_j(x_j) + PD_{-j}(x_{-j})\]

Siendo \(PD_{-j}(x_{-j})\) la función de predicción para el resto de atributos distintos a \(j\).

4.3 H-statistic para pareja de atributos

Medimos la fuerza de la interacción entre 2 atributos \(j\) y \(k\) como:

\[H^2_{jk} = \frac{\sum_{i=1}^n [ PD_{jk}(x_j^(i), x_k^(i)) - PD_j(x_j^(i)) - PD_k(x_k^(i)) ]^2}{\sum_{i=1}^n PD^2_{jk}(x_j^(i), x_k^(i))}\]

4.4 H-statistic para 1 contra todos

Medimos la fuerza de la interacción del atributo \(j\) con el resto de atributos como:

\[H^2_{j} = \frac{\sum_{i=1}^n [ \hat{f}(x^(i)) - PD_j(x_j^(i)) - PD_{-j}(x_{-j}^(i)) ]^2}{\sum_{i=1}^n \hat{f}^2(x^(i))}\]

4.5 Ejemplo - parejas - cáncer

https://christophm.github.io/interpretable-ml-book/images/interaction2-cervical-age-1.png

4.6 Ejemplo - 1 contra todos - cáncer

https://christophm.github.io/interpretable-ml-book/images/interaction-cervical-1.png

4.7 Pros / Cons

4.7.1 Ventajas

  • Se sostiene sobre una teoría sólida (H-statistic)
  • Tiene una interpretación con sentido
  • Adimensional, es comparable entre diferentes features y diferentes modelos
  • Detecta cualquier tipo de interacción, no solo lineales
  • Se puede utilizar para medir interacciones de más de 2 atributos

4.7.2 Desventajas

  • Es computacionalmente costoso
  • Si usamos estimaciones, puede dar resultados inestables

5 Functional Decomposition

5.1 Definición

Si entendemos el modelo \(M\) como una función de un espacio vectorial a otro, podemos descomponerla en una suma de funciones. Cada una de estas funciones representará, o bien un valor constante, o bien un valor en función de cada uno de los atributos, o bien un valor en función de un subgrupo de atributos.


Surrogate Model


For Dummies

Intentamos descomponer la función de predicción en una suma de funciones con permutaciones de subgrupos de atributos.

5.2 Función de descomposición

Queremos encontrar cada una de las sub-funciones que componen la función de predicción.

Para un ejemplo con 2 atributos sería:

\[\hat{f}(x_1, x_2) = \hat{f}_0 + \hat{f}_1(x_1) + \hat{f}_2(x_2) + \hat{f}_{1,2}(x_1, x_2)\]

Definiendo la función de predicción como:

\[\hat{f} : \mathbb{R}^p \rightarrow \mathbb{R}\]

Definimos la descomposición en funciones como:

\[\hat{f}(x) = \sum_{S \subseteq \{1, \ldots, p\}} \hat{f}_S(x_S)\]

5.3 Functional ANOVA

¿Cómo encontramos las funciones \(\hat{f}_S\)? Cada una se calcularía de la siguiente forma:

\[\hat{f}_S(x_S) = \int_{x_{-S}} \hat{f}(x) - \sum_{V \subset S} \hat{f}_V(x) dx_{-S}\]

5.4 Pros / Cons

5.4.1 Ventajas

  • Cumple el concepto base de la interpretabilidad
  • Tiene una justificación teórica sólida
  • Provee un mejor entendimiento que otros modelos

5.4.2 Desventajas

  • Limitaciones claras según se aumenta el número de atributos

6 Permutation Feature Importance

6.1 Definición

Comparar el cambio de precisión (o la métrica de error elegida) de un modelo al permutar (aleatoriamente) los valores de un atributo.

Esto permite medir cuánto afecta un atributo al valor predicho por \(M\). Y, por lo tanto, cuánta importancia tiene dicho atributo internamente en el modelo.


Feature Importance


For Dummies

Cambiar de forma aleatoria el valor de un atributo para ver cómo afecta a la precisión de \(M\).

6.2 Algoritmo (Fisher, Rudin, Dominici)

  1. Estimar el error original de \(M\).
  2. Para cada atributo \(S\):
    1. Permutar los valores de \(S\).
    2. Calcular el error de \(M\) con los valores permutados.
    3. Calcular la importancia (o diferencia) entre el error original y el error permutado.
  3. Ordenar los atributos por importancia (o diferencia).

\[FI_{j,importance} = e_{perm}/e_{orig}\]

\[FI_{j,diff} = e_{perm} - e_{orig}\]

6.3 Ejemplo - bicis

https://christophm.github.io/interpretable-ml-book/images/importance-bike-1.jpeg

6.4 Sobre train o test

Existe la duda de si se debe calcular sobre el dataset de entrenamiento o de test.

Usar el dataset de entrenamiento tiene el problema de que el error original en el dataset de entrenamiento no es fiable, por lo tanto puede no ser tamploco el \(FI\). Sin embargo, tiene la ventaja de que nos muestra más fielmente la importancia de los atributos para el modelo.

Tip

Se aconseja usar el dataset de test.

6.5 Pros / Cons

6.5.1 Ventajas

  • Buenas interpretaciones: muy comprimidas y de alcance global
  • El valor de la importancia es comparable con otros modelos
  • Tiene en cuenta las interacciones entre atributos
  • No requiere re-entrenar el modelo

6.5.2 Desventajas

  • Es intrínsecamente dependiente de lo bueno que sea \(M\)
  • Necesitas acceso al valor real de la clase a predecir, no solo al dataset
  • Los resultados pueden variar arbitrariamente (por el shuffle aleatorio)
  • Puede generar datos imposibles
  • Puede sufrir de correlaciones entre variables

7 Global Surrogate Models

7.1 Definición

Entrenar un modelo ML inherentemente interpretable a través de los datos predichos por \(M\)$, para extrapolar la interpretación del nuevo modelo más simple al modelo \(M\).


Surrogate Model


For Dummies

Entrenar una regresión lineal o un árbol de decisión sobre el dataset con la predicción de \(M\).

7.2 Pasos

  1. Seleccionar el dataset. En general, el mismo dataset que se usó para entrenar \(M\), pero puede ser un subset.
  2. Generar las predicciones con el modelo \(M\).
  3. Elegir un modelo interpretable: regresión lineal, árbol de decisión, rule-set, etc.
  4. Entrenar el modelo interpretable con las predicciones de \(M\).
  5. Este será el modelo subrogado.
  6. Medir cómo de bueno es este modelo.
  7. Interpretar este nuevo modelo y extrapolar las conclusiones a \(M\).

7.3 Ejemplo - bicis

Se entrena un árbol de decisión a través de las predicciones de un SVM.

https://christophm.github.io/interpretable-ml-book/images/surrogate-bike-1.jpeg

7.4 Pros / Cons

7.4.1 Ventajas

  • Flexible al poder elegir qué modelo explicable usar
  • Intuitivo y directo
  • Es posible medir la calidad de las interpretaciones (e.g. \(R^2\) para la diferencia de los resultados de \(M\) y el modelo subrogado)

7.4.2 Desventajas

  • Las explicaciones son sobre el modelo y no sobre los datos
  • La calidad necesaria para interpretar el modelo es subjetiva (¿90%? ¿50%?)
  • Tiene todas las desventajas del modelo inherente utilizado (incluido si no se pudiese considerar interpretable)

8 Prototypes and Criticisms

8.1 Definición

Buscaremos datos que sean representativos del conjunto del dataset. Estos son los prototipos.

Una crítica es un dato que no está bien representado por el conjunto de los prototipos.


Counterfactual Examples


For Dummies

La idea es encontrar un número pequeño de datos que permitan representar a la mayoría del dataset, conociendo también aquellos datos o regiones que no se verían representados.

8.2 MMD-critic - Maximum Mean Discrepancy

\[MMD^2 = \frac{1}{m^2} \sum_{i,j=1}^m k(z_i, z_j) \\ - \frac{2}{mn} \sum_{i,j=1}^{m,n} k(z_i, x_j) + \frac{1}{n^2} \sum_{i,j=1}^n k(x_i, x_j)\]

  • \(k\): función kernel para medir la distancia (similaridad) entre 2 puntos
  • \(m\): número de prototipos
  • \(n\): número de datos
  • \(z\): prototipos
  • \(x\): datos

El objetivo es minimizar \(MMD2\).

https://christophm.github.io/interpretable-ml-book/images/mmd-1.jpeg

8.3 Función witness

Esta función mide cómo de bien se ajusta un dato \(x\) a los prototipos \(z\).

\[witness(x) = |\frac{1}{n} \sum_{i=1}^n k(x, x_i) - \frac{1}{m} \sum_{j=1}^m k(x, z_j)|\]

El objetivo es usar como críticas aquellos datos con mayor witness.

https://christophm.github.io/interpretable-ml-book/images/witness-1.jpeg

8.4 Algoritmo MMD-critic

  1. Elegir el número de prototipos \(m\) y el número de críticas \(c\).
  2. Buscar los prototipos por búsqueda greedy.
  3. Mientras no existan \(m\) prototipos:
    1. Calcular MMD2 para cada dato del dataset
    2. Seleccionar ese dato como prototipo
  4. Seleccionar las \(c\) críticas:
    1. Calcular witness para cada dato
    2. Seleccionar los \(c\) datos con mayor witness

8.5 Utilidad como interpretabilidad

  1. Ayudando a entender el dataset
  2. Ayudando a entender el resultado del modelo en datos representativos
  3. Ayudando a crear un modelo inherentemente interpretable con los prototipos

Por ejemplo, se puede crear un modelo que siga la siguiente regla. El modelo predecirá el dato como la predicción del prototipo más cercano.

\[\hat{f}(x) = argmax_{i \in S} k(x, z_i)\]

8.6 Pros / Cons

8.6.1 Ventajas

  • Los modelos funcionan mejor cuando se les entrena con prototipos y críticas
  • Fácil de implementar
  • Funciona para cualquier tipo de dato

8.6.2 Desventajas

  • La elección de los hiperparámetros \(m\) y \(c\) y kernal es subjetiva
  • El número de prototipos es muy relevante para la interpretación
  • Utiliza todos los atributos, aún cuando algunos pueden no ser relevantes

9 SHAP - SHapley Additive exPlanations

9.1 Definición

SHAP se considera un método local. Sin embargo, obteniendo los valores SHAP para cada uno de los datos se pueden obtener plots globales muy útiles.

9.2 Ejemplo - Feature importance - cáncer

https://christophm.github.io/interpretable-ml-book/images/shap-importance.png

9.3 Ejemplo - Summary plot - cáncer

https://christophm.github.io/interpretable-ml-book/images/shap-importance-extended.png

9.4 Ejemplo - Dependence plot - cáncer

https://christophm.github.io/interpretable-ml-book/images/shap-dependence.png

9.5 Ejemplo - Feature dependence - cáncer

https://christophm.github.io/interpretable-ml-book/images/shap-dependence-interaction.png

9.6 Ejemplo - Force plot - cáncer

https://christophm.github.io/interpretable-ml-book/images/shap-clustering.png