8. Modelos Supervisados

Esta guía te enseñará a entrenar y comparar múltiples modelos de clasificación supervisada para predecir el nivel de riesgo crediticio.

Objetivo del Módulo

El módulo de modelos supervisados te permite:

  • 🤖 Entrenar 9 algoritmos de clasificación

  • 📊 Comparar rendimiento automáticamente

  • 🎯 Optimizar hiperparámetros con Grid Search

  • 📈 Visualizar métricas y curvas ROC

  • 💾 Guardar mejores modelos para producción

  • 🔍 Analizar importancia de features

Acceso al Módulo

En el sidebar, click en:

🤖 Modelado → 🤖 Modelos Supervisados

Algoritmos Disponibles

1. Logistic Regression

Características:

  • Simple y rápido

  • Interpretable

  • Baseline sólido

Cuándo usar: Relaciones lineales, interpretabilidad crítica.

2. Random Forest

Características:

  • Robusto a outliers

  • Maneja no linealidades

  • Feature importance

Cuándo usar: Datos complejos, alta precisión.

3. XGBoost

Características:

  • Estado del arte

  • Muy preciso

  • Maneja desbalanceo

Cuándo usar: Competencias, máxima precisión.

4. LightGBM

Características:

  • Muy rápido

  • Eficiente en memoria

  • Preciso

Cuándo usar: Datasets grandes, velocidad crítica.

5. Support Vector Machine (SVM)

Características:

  • Kernel tricks

  • Margen máximo

  • Robusto

Cuándo usar: Datasets pequeños/medianos, alta dimensionalidad.

6. K-Nearest Neighbors (KNN)

Características:

  • No paramétrico

  • Simple

  • Lazy learning

Cuándo usar: Patrones locales, pocos datos.

7. Naive Bayes

Características:

  • Muy rápido

  • Probabilístico

  • Asume independencia

Cuándo usar: Baseline rápido, features independientes.

8. Neural Network (MLP)

Características:

  • Aprende no linealidades

  • Flexible

  • Requiere más datos

Cuándo usar: Patrones complejos, suficientes datos.

9. Gradient Boosting

Características:

  • Ensemble potente

  • Preciso

  • Interpretable

Cuándo usar: Balance precisión/interpretabilidad.

Proceso de Entrenamiento

Paso 1: Preparar Datos

[⚙️ Preparar Datos]

✓ Features: 20 (incluyendo RBM)
✓ Target: nivel_riesgo (3 clases)
✓ Train: 8,000 (80%)
✓ Test: 2,000 (20%)
✓ Balanceo: SMOTE aplicado

Paso 2: Seleccionar Modelos

Modelos a entrenar:

☑ Logistic Regression
☑ Random Forest
☑ XGBoost
☑ LightGBM
☑ SVM
☐ KNN
☐ Naive Bayes
☐ Neural Network
☐ Gradient Boosting

Paso 3: Entrenar Modelos

[🎯 Entrenar Modelos Seleccionados]

Entrenando Logistic Regression... ✓ (2s)
Entrenando Random Forest... ✓ (15s)
Entrenando XGBoost... ✓ (25s)
Entrenando LightGBM... ✓ (12s)
Entrenando SVM... ✓ (45s)

✓ Todos los modelos entrenados
Tiempo total: 1m 39s

Comparación de Modelos

Tabla de Métricas

Modelo

Accuracy

Precision

Recall

F1-Score

ROC-AUC

XGBoost

95.2%

94.8%

95.1%

95.0%

0.982

LightGBM

94.8%

95.1%

94.5%

94.8%

0.979

Random Forest

94.1%

93.8%

95.3%

94.5%

0.975

SVM

92.5%

92.1%

92.8%

92.4%

0.968

Logistic Reg.

89.3%

88.7%

89.9%

89.3%

0.945

Mejor modelo: XGBoost (95.2% accuracy)

Matriz de Confusión

Para XGBoost:

             Predicho
           Bajo  Medio  Alto
Real Bajo  1180    25     5
     Medio   30   570    15
     Alto     8    12   155

Accuracy: 95.2%
Errores: 95 de 2,000

Curvas ROC

[📊 Visualizar Curvas ROC]

Curva ROC multiclase (One-vs-Rest)
• Bajo vs Rest: AUC = 0.985
• Medio vs Rest: AUC = 0.978
• Alto vs Rest: AUC = 0.983

Importancia de Features

Top 10 Features

Para Random Forest:

Feature Importance:

1. dti: 0.185 ████████████████████
2. puntaje_datacredito: 0.152 ████████████████
3. capacidad_residual: 0.128 █████████████
4. ltv: 0.095 ██████████
5. rbm_feature_1: 0.082 ████████
6. score_estabilidad: 0.071 ███████
7. patrimonio_total: 0.065 ██████
8. salario_mensual: 0.058 ██████
9. rbm_feature_5: 0.052 █████
10. edad: 0.048 ████

Insights:

  • DTI es el predictor más importante

  • Features RBM aportan valor significativo

  • Variables financieras dominan

SHAP Values

[🔍 Calcular SHAP Values]

Análisis de contribución individual
Muestra cómo cada feature afecta predicciones

Optimización de Hiperparámetros

Validación Cruzada

K-Fold Cross-Validation

[✅ Validación Cruzada (5-fold)]

Fold 1: 94.8%
Fold 2: 95.1%
Fold 3: 95.5%
Fold 4: 94.9%
Fold 5: 95.3%

Media: 95.1% ± 0.3%

Modelo robusto ✓

Stratified K-Fold

Mantiene proporción de clases:

Distribución preservada en cada fold
Mejor para datasets desbalanceados

Manejo de Desbalanceo

Técnicas Disponibles

1. SMOTE (Synthetic Minority Over-sampling)

Antes:
Bajo: 6,074 (60.7%)
Medio: 2,943 (29.4%)
Alto: 983 (9.8%)

Después de SMOTE:
Bajo: 6,074 (33.3%)
Medio: 6,074 (33.3%)
Alto: 6,074 (33.3%)

2. Class Weights

Pesos automáticos:
Bajo: 0.55
Medio: 1.13
Alto: 3.39

3. Undersampling

Reduce clase mayoritaria.

4. Ensemble Methods

Combina múltiples técnicas.

Guardar Modelos

Guardar Mejor Modelo

[💾 Guardar Modelo]

Modelo: XGBoost
Accuracy: 95.8%

Guardado:
✓ Modelo entrenado
✓ Scaler
✓ Feature names
✓ Métricas
✓ Hiperparámetros

Archivo: xgboost_best_20240115.pkl

Cargar Modelo

[📂 Cargar Modelo]

✓ Modelo cargado
✓ Listo para predicciones

Casos de Uso

Caso 1: Producción

Entrenar modelo final para sistema en vivo.

Caso 2: Comparación

Evaluar múltiples algoritmos para seleccionar el mejor.

Caso 3: Investigación

Experimentar con diferentes features y configuraciones.

Tips y Mejores Prácticas

Haz:

  • Entrena múltiples modelos

  • Usa validación cruzada

  • Optimiza hiperparámetros

  • Maneja desbalanceo

  • Guarda modelos y métricas

Evita:

  • Overfitting (validar siempre)

  • Ignorar desbalanceo de clases

  • No optimizar hiperparámetros

  • Entrenar sin normalizar

  • Usar solo accuracy como métrica

Troubleshooting

Problema: Overfitting

Solución: Regularización, más datos, validación cruzada.

Problema: Underfitting

Solución: Modelo más complejo, más features, menos regularización.

Problema: Entrenamiento lento

Solución: LightGBM, menos datos, menos hiperparámetros.

Próximos Pasos

Con tus modelos entrenados:

  1. Predecir: 9. Predicción de Riesgo

  2. Reentrenar: 10. Reentrenamiento de Modelos

  3. Aprender: 11. Sistema RAG Educativo

¡Modelos listos para producción! 🤖