Resumen
El episodio 174 de enCoders es una sesión práctica sobre la librería SHAP, que continúa el episodio 163, donde se explicó la intuición matemática de los Shapley values. Con un dataset de precios de casas (California housing) y un `RandomForestRegressor`, se recorren los principales gráficos: waterfall, force, summary (puntos/beeswarm, barras, violín, capas), dependence, decision y la matriz de interacciones. Se discute qué gráficos sirven para audiencias técnicas y cuáles para gerentes (el de barras es el más "gerente friendly"). También se trata la obligación de explicabilidad que traerá la nueva ley de protección de datos en Chile y la importancia de usar métodos agnósticos al modelo. Como pros se señalan su base teórica sólida, su flexibilidad local/global y sus visualizaciones; como contras, el costo computacional exponencial, la curva de aprendizaje y la sensibilidad a los datos. Se mencionan variantes (TreeSHAP, KernelSHAP, DeepSHAP, la lineal), LIME y aplicaciones en imágenes y texto.
Capítulos
- 00:00IntroSe presenta el objetivo: aplicar SHAP en código, mostrar los gráficos y aprender a interpretarlos, recordando que la intuición matemática se vio en el episodio 163. El material se compartirá en Discord.
- 01:44Resumen de definición de los Shapley ValuesLos Shapley values se definen como una suma ponderada sobre todos los subconjuntos de características, comparando el modelo con y sin una característica. El peso refleja la cantidad de combinaciones y da el aporte promedio de esa característica.
- 03:20Aplicación Práctica de los Valores SHAPSe presenta SHAP como técnica de interpretabilidad muy popular, rápida y precisa con modelos basados en árboles, útil cuando un gerente pide entender el modelo y no solo "magia". Se ejemplifica con una pizzería y el peso de variables como tamaño y sabor.
- 05:03Conjunto de Datos y Configuración del ModeloSe usa un dataset de precios de casas (código generado con IA y revisado). Las variables de entrada son ingreso medio, edad de la casa, habitaciones, dormitorios, población, ocupación promedio, latitud y longitud; la salida es el valor medio de la casa (0 a 5, con un tope probablemente de "5 o más"). Se comenta la ley chilena de protección de datos y la obligación de explicar decisiones, lo que favorece métodos agnósticos como SHAP y LIME frente a limitarse a regresión lineal o logística.
- 08:19Explicando Predicciones con Valores SHAPSe entrena un random forest y se crea un `TreeExplainer` sobre el dataset de test. Hay versiones eficientes para árboles, redes neuronales y modelos lineales; sin ellas es lento pero posible, y se puede aproximar con una muestra representativa. La matriz de valores SHAP tiene 4128 filas y 8 columnas.
- 12:49Waterfall plotMuestra, para una sola fila, cuánto aporta cada variable para subir o bajar la predicción respecto al valor esperado (cerca de 2.3 millones). Aquí población, habitaciones y dormitorios casi no influyen; latitud y longitud aportan algo, la ocupación es la segunda y el ingreso medio es la más importante (-0.78 en este caso).
- 17:09Discusión sobre Interpretabilidad de ModelosSe plantea que conviene revisar primero la calidad y el error del modelo antes de interpretar. Se discute si aplicar SHAP en train, validation o test: se puede en todos, pero es mejor no tomar decisiones de modelado a partir de lo visto en test. Para un resultado global se recomienda otro gráfico, no el de una observación. Se aclara que el cálculo es exacto dados los datos, aunque sensible a sesgos de los datos.
- 22:10Consideraciones Legales y ÉticasSe debate qué cuenta como sesgo o dato sensible, el consentimiento para usar datos personales (con el ejemplo de los puntajes de la prueba de acceso a la universidad) y si discriminar es la función de un modelo. Se acuerda que falta un episodio con un experto en la ley de datos.
- 31:02Force plotEs equivalente al waterfall pero en una sola línea con las fuerzas hacia valores bajos y altos. Sirve para mostrar inicio y final, mientras el waterfall destaca la cadena de aportes.
- 32:20Summary plot - Puntos / Beeswarm plotEl eje X es el valor SHAP (impacto), el eje Y las variables y el color el valor de la característica. Se explica la dispersión como variabilidad de perfiles. Se concluye que es útil para colegas técnicos pero difícil de explicar a gerentes; se propone mostrar el valor de la predicción en el eje X o usar el gráfico de barras, que se parece a la importancia de variables de un random forest pero es agnóstico al modelo.
- 46:23MemesMemes de la comunidad: la opción de Claude Code para aprobar todo, con la recomendación de usar sandboxes, Docker o máquinas virtuales; "Pride versioning"; la carta de rechazo a una postulación a CEO de OpenAI; Altman y el copyright; y un meme sobre usar un modelo para interpretar otro.
- 52:30Regalos de vanidadCharla distendida sobre los regalos de Reyes y Navidad (zapatillas para correr, entre otros).
- 53:34Influencia entre variables y valor a explicarSe discute si la media de |SHAP| permite decir que una variable tiene el doble de influencia que otra. Se considera una aproximación razonable si la relación es más o menos homogénea, con cuidado ante efectos no lineales.
- 57:38Summary plot - Layered violin y otrosSe muestran el violín y el gráfico de violín en capas de la documentación oficial. Este último deja ver la distribución por rango de colores, sin la superposición de puntos del beeswarm.
- 01:00:19Dependence plotGrafica el valor SHAP de una variable contra su valor, con otra variable en color (ingreso medio contra ocupación promedio). Permite ver efectos no lineales: plano con ingresos bajos, subida y luego tope. Se comenta que es más para papers que para gerentes y que a gerencia le sirve más lo que genera dinero (el gráfico de barras).
- 01:09:53Dependence plot discretoEs el mismo gráfico con variables discretas (edad de la casa, número de habitaciones), por lo que se ve cortado.
- 01:10:30Decision PlotMuestra cómo evoluciona la decisión variable a variable para un grupo de elementos. Es útil con pocos elementos (más de uno, menos de 10 o 20) y se vuelve confuso con 100.
- 01:13:51Matriz de interaccionesMapa de calor con el promedio global de las interacciones entre valores SHAP. La diagonal muestra el efecto individual (ingreso, latitud, longitud) y fuera de ella las interacciones son bajas, sin nada notable.
- 01:15:22Pros y Contras de SHAPPros: teoría sólida, explicaciones locales y globales, agnóstico al modelo, visualizaciones variadas y personalizables. Contras: costo computacional de orden 2^n por cada fila, curva de aprendizaje, sensibilidad a datos malos ("garbage in, garbage out") y escalabilidad limitada.
- 01:19:46Diferentes Implementaciones de SHAPTreeSHAP para modelos basados en árboles reduce la complejidad a T·L·D² (la profundidad es lo que más pesa). KernelSHAP es genérico, más lento aún, DeepSHAP es para redes neuronales y existe una versión lineal casi instantánea.
- 01:22:10Otras técnicas que no cubriremos hoySe menciona LIME, de aproximaciones lineales locales, y se aclara el término ELI5 ("explain like I'm five"), que es genérico.
- 01:23:30Aplicaciones de SHAP en imágenes y textoSHAP sirve en redes neuronales para ver qué píxeles influyen en una clasificación. En texto, en la frase "I didn't feel humiliated" la palabra "humiliated" pesa más para la emoción tristeza.
- 01:24:34CierreConclusiones: SHAP es una herramienta útil del toolkit del data scientist, de código simple. Se sugiere hacer un workshop. Se comenta la antigüedad de la librería (unos 10 años), se hace un raid a otros canales y se responde si la carrera de software engineering tendrá futuro: sí, si se sabe programar, diseñar y auditar lo que entrega la IA, y también saber vender.