Interpretación de modelos
Interpretar un modelo es entender por qué toma ciertas decisiones. Esto es fundamental en aplicaciones reales donde la transparencia es importante: medicina, finanzas, seguridad, auditorías y más. En esta guía aprenderás técnicas modernas de interpretabilidad.
Tabla de contenidos
- Por qué interpretar modelos
- Coeficientes en modelos lineales
- Importancia de características
- SHAP values
- LIME
- Interpretación en Scikit‑Learn
- Ejercicios
- Mini‑proyecto
1. Por qué interpretar modelos
La interpretabilidad permite:
- Detectar sesgos
- Explicar decisiones
- Mejorar el modelo
- Generar confianza
2. Coeficientes en modelos lineales
Los modelos lineales permiten interpretar directamente los coeficientes.
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train, y_train)
print(model.coef_)
Coeficientes positivos → aumentan la probabilidad Coeficientes negativos → la reducen
3. Importancia de características
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
model.fit(X_train, y_train)
importancias = model.feature_importances_
Los árboles permiten obtener importancias de forma natural.
4. SHAP values
SHAP es una técnica moderna que explica cada predicción individual. Es una de las herramientas más poderosas de interpretabilidad.
import shap
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X_test)
shap.summary_plot(shap_values, X_test)
5. LIME
LIME explica predicciones individuales generando modelos locales simples.
from lime.lime_tabular import LimeTabularExplainer
explainer = LimeTabularExplainer(X_train.values, feature_names=X.columns)
exp = explainer.explain_instance(X_test.iloc[0], model.predict_proba)
exp.show_in_notebook()
6. Interpretación en Scikit‑Learn
from sklearn.inspection import permutation_importance
result = permutation_importance(model, X_test, y_test)
print(result.importances_mean)
Permutation importance mide cuánto afecta cada característica al rendimiento del modelo.
7. Ejercicios
- Obtén coeficientes de un modelo lineal.
- Obtén importancias con RandomForest.
- Genera un gráfico SHAP.
- Explica una predicción con LIME.
- Explica por qué la interpretabilidad es importante.
# pista coeficientes
model.coef_
# pista shap
shap.summary_plot(shap_values, X_test)
8. Mini‑proyecto: Interpretación completa
Toma un dataset real y realiza:
- Coeficientes de modelo lineal
- Importancia de características
- SHAP values
- LIME
- Permutation importance
- Informe explicando las decisiones del modelo