Interpretación avanzada de modelos
En esta guía profundizamos en técnicas modernas de interpretabilidad: SHAP, LIME y Permutation Importance. Estas herramientas permiten entender cómo cada característica influye en las predicciones del modelo, tanto a nivel global como individual.
Tabla de contenidos
- SHAP: teoría y uso
- Gráficos SHAP
- LIME: explicaciones locales
- Permutation Importance
- Comparación entre técnicas
- Ejercicios
- Mini‑proyecto
1. SHAP: teoría y uso
SHAP (SHapley Additive exPlanations) se basa en teoría de juegos para explicar cuánto contribuye cada característica a una predicción.
import shap
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X_test)
SHAP es ideal para modelos basados en árboles como XGBoost, LightGBM y Random Forest.
2. Gráficos SHAP
# Gráfico global
shap.summary_plot(shap_values, X_test)
# Gráfico individual
shap.force_plot(explainer.expected_value, shap_values[0], X_test.iloc[0])
Los gráficos SHAP permiten ver qué características empujan la predicción hacia arriba o abajo.
3. LIME: explicaciones locales
LIME genera modelos simples alrededor de una predicción específica para explicar por qué el modelo tomó esa decisión.
from lime.lime_tabular import LimeTabularExplainer
explainer = LimeTabularExplainer(
X_train.values,
feature_names=X.columns,
class_names=["Clase 0", "Clase 1"],
verbose=True
)
exp = explainer.explain_instance(X_test.iloc[0], model.predict_proba)
exp.show_in_notebook()
4. Permutation Importance
Permutation Importance mide cuánto empeora el modelo cuando se desordena una característica. Es simple, rápido y funciona con cualquier modelo.
from sklearn.inspection import permutation_importance
result = permutation_importance(model, X_test, y_test)
print(result.importances_mean)
5. Comparación entre técnicas
- SHAP: mejor interpretabilidad global e individual.
- LIME: explicaciones locales muy claras.
- Permutation: rápido y compatible con cualquier modelo.
6. Ejercicios
- Genera un gráfico SHAP global.
- Genera un gráfico SHAP individual.
- Explica una predicción con LIME.
- Calcula Permutation Importance.
- Compara las tres técnicas.
# pista shap
shap.summary_plot(shap_values, X_test)
# pista permutation
permutation_importance(model, X_test, y_test)
7. Mini‑proyecto: Interpretación avanzada
Toma un dataset real y realiza:
- Gráfico SHAP global
- Gráfico SHAP individual
- Explicación con LIME
- Permutation Importance
- Informe final comparando las técnicas