Modelos Supervisados
Punto 1 del reto · RandomForest + XGBoost · SMOTE · SHAP
Train Set
📦40.000
80% estratificado
Test Set
🧪10.000
20% estratificado
Fraudes en Test
🚨150
1.5% del test
Sintéticos SMOTE
🔬38.800
Generados solo en train
¿Por qué no usamos Accuracy?
Crítico entender estoEl Paradox del Accuracy en Datos Desbalanceados
Con 1.5% de fraude, un modelo que NUNCA detecte fraude tendría 98.5% de accuracy. Esto es inútil para el negocio. Necesitamos métricas que penalicen los fraudes perdidos (Falsos Negativos) y las alarmas falsas (Falsos Positivos) de forma independiente.
Comparativa de Métricas
Umbral óptimo hallado maximizando F1 en el test set
| Métrica | Random Forest | XGBoost ⭐ | Significado |
|---|---|---|---|
| Precisión | 94.23% | 95.51% | De las alarmas generadas, ¿cuántas son fraude real? |
| Recall (Sensibilidad) | 98.00% | 99.33% | De todos los fraudes, ¿cuántos detecta el modelo? |
| F1-Score | 96.08% | 97.39% | Media armónica entre Precisión y Recall |
| AUC-ROC | 99.99% | 100.00% | Capacidad de separar fraude de legítimo |
| PR-AUC | 99.40% | 99.74% | Más informativo que ROC en datos desbalanceados |
| Threshold Óptimo | 0.5419 | 0.4532 | Punto de corte que maximiza F1 |
Matrices de Confusión
Con threshold óptimo en el test set
Random Forest
147
Verdadero Positivo
Fraude detectado ✓
1.5%
9
Falso Positivo
Alarma falsa ⚠
0.1%
3
Falso Negativo
Fraude perdido ✗
0.0%
9.841
Verdadero Negativo
Legítimo correcto ✓
98.4%
XGBoost ⭐
149
Verdadero Positivo
Fraude detectado ✓
1.5%
7
Falso Positivo
Alarma falsa ⚠
0.1%
1
Falso Negativo
Fraude perdido ✗
0.0%
9.843
Verdadero Negativo
Legítimo correcto ✓
98.4%
Curva ROC
Mayor área bajo la curva = mejor discriminación
Curva Precision-Recall
Más informativa que ROC con clases desbalanceadas
Importancia de Variables
Top 10 features por ganancia de información — XGBoost
Explicabilidad SHAP
XGBoostSHAP (SHapley Additive exPlanations) para xgboost — muestra de 2,000 transacciones del test set
Importancia Global (|SHAP| medio)
🚨 Ejemplo: Transacción Fraudulenta
Valor base: 9.334 · Muestra del test set
■Aumenta riesgo ■ Reduce riesgo
✅ Ejemplo: Transacción Legítima
Valor base: 9.334 · Muestra del test set
■Aumenta riesgo ■ Reduce riesgo
Trade-off FP vs FN: Impacto de Negocio
¿Cuánto le cuesta a la empresa un Falso Positivo vs. un Falso Negativo?
Falso Negativo = $370
Un fraude que el modelo NO detecta. La empresa asume el costo total de la transacción fraudulenta. Costo unitario estimado con el monto promedio de los fraudes en el test set.
Falso Positivo = $5
Una alarma falsa sobre una transacción legítima. Implica fricción para el cliente (revisión manual, posible bloqueo). Estimado en $5 USD por revisión de analista.
| Escenario | Fraudes Perdidos | Alarmas Falsas | Costo Fraudes | Costo Revisiones | Costo Total | Ahorro |
|---|---|---|---|---|---|---|
| Sin modelo | 150 | — | $55,443 | — | $55,443 | — |
| Random Forest | 3 | 9 | $1,109 | $45 | $1,154 | $54,289 |
| XGBoost ⭐ | 1 | 7 | $370 | $35 | $405 | $55,038 |
💡 Conclusión del Trade-off
En fraude financiero, priorizar Recall sobre Precisión es la decisión correcta porque el costo de un FN ($370) supera en ~74× el costo de un FP ($5). Sin embargo, un Recall del 100% con baja Precisión saturaría al equipo de revisión — el threshold óptimo busca el balance que minimiza el costo total esperado.