Valores SHAP para la explicabilidad de modelos
shap.Explainer, TreeExplainer, gráficos de fuerza, gráficos beeswarm y clasificación de la importancia de las características.
Valores SHAP para la explicabilidad de modelos es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.
Por qué es importante la explicabilidad
Los modelos complejos son precisos, pero opacos. La explicabilidad responde a la pregunta «¿por qué ha hecho el modelo esta predicción?», algo esencial para generar confianza, depurar y cumplir la normativa. SHAP es uno de los métodos de explicación más utilizados.
Qué mide SHAP
SHAP (SHapley Additive exPlanations) asigna a cada característica una contribución a una predicción individual. Los valores se basan en los valores de Shapley de la teoría de juegos cooperativos: cada característica es un «jugador» y su valor SHAP es su parte justa de la predicción con respecto a un valor base.
Aditividad
Los valores SHAP son aditivos: el valor base (la salida media del modelo) más la suma de todos los valores SHAP de las características equivale a la predicción real. Esto hace que cada explicación sea una descripción completa y auditable de la salida.
# prediction = base_value + sum(shap_values_for_each_feature)TreeExplainer
Para modelos basados en árboles (XGBoost, LightGBM, random forests), shap.TreeExplainer calcula rápidamente valores SHAP exactos aprovechando la estructura de los árboles.
import shap
import xgboost
model = xgboost.XGBClassifier().fit(X_train, y_train)
explainer = shap.TreeExplainer(model)Cálculo de shap_values
explainer.shap_values(X_test) devuelve una matriz: un valor SHAP por característica y por fila. Estas son las contribuciones sin procesar que visualizará.
shap_values = explainer.shap_values(X_test)
print(shap_values.shape) # (n_samples, n_features)El beeswarm de summary_plot
shap.summary_plot genera un beeswarm: cada punto representa una muestra para una característica. La posición muestra el valor SHAP (la dirección y la magnitud del impacto); el color muestra el valor de la característica. Las características se ordenan por importancia general.
shap.summary_plot(shap_values, X_test)Interpretación del beeswarm
Para interpretar un beeswarm:
- Las características superiores son las más importantes a nivel global
- Los puntos situados a la derecha aumentan la predicción; los situados a la izquierda la reducen
- El color revela la dirección; por ejemplo, si los valores altos de una característica (en rojo) aparecen a la derecha, significa que «un valor alto aumenta la predicción»
Explicación de una predicción
SHAP resulta especialmente útil a nivel individual. Para explicar una fila concreta necesita sus valores SHAP y el valor base del modelo.
idx = 0
base = explainer.expected_value
row_shap = shap_values[idx]force_plot
shap.force_plot muestra una predicción como un conjunto de fuerzas que parten del valor base: las características rojas aumentan la salida y las azules la reducen. El resultado neto llega a la predicción final.
shap.force_plot(
explainer.expected_value,
shap_values[0],
X_test.iloc[0],
)waterfall_plot
shap.waterfall_plot es la vista más legible para una predicción individual. Comienza en el valor base y acumula paso a paso la contribución de cada característica hasta alcanzar la salida final, ordenada por magnitud.
shap.waterfall_plot(
shap.Explanation(
values=shap_values[0],
base_values=explainer.expected_value,
data=X_test.iloc[0],
)
)Global frente a local
SHAP responde a dos necesidades:
- Global:
summary_plotmuestra qué características impulsan el modelo en general - Local:
force_plotywaterfall_plotexplican una predicción específica
Ambas vistas proceden de los mismos valores SHAP, lo que proporciona una explicación coherente a distintas escalas.
Comprobación rápida
Compruebe sus conocimientos sobre SHAP.
Resumen
Ha aprendido sobre la explicabilidad de modelos con SHAP:
shap.TreeExplainer(model)calcula valores exactos para modelos basados en árbolesexplainer.shap_values(X_test)devuelve contribuciones por característica- El beeswarm de
summary_plotmuestra la importancia global force_plotywaterfall_plotexplican una predicción individual- Los valores SHAP son aditivos: valor base + contribuciones = predicción
Preguntas frecuentes
¿La lección «Valores SHAP para la explicabilidad de modelos» es gratis?
Sí — el texto completo de «Valores SHAP para la explicabilidad de modelos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué aprenderé en «Valores SHAP para la explicabilidad de modelos»?
shap.Explainer, TreeExplainer, gráficos de fuerza, gráficos beeswarm y clasificación de la importancia de las características. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Valores SHAP para la explicabilidad de modelos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Detección de sesgos en modelos de ML
- Valores SHAP para la explicabilidad de modelos
- LIME: explicaciones locales interpretables
- Marcos de ética y gobernanza de la IA