IzanMoya commited on
Commit
6cbccca
·
verified ·
1 Parent(s): e48e6f4

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +45 -24
README.md CHANGED
@@ -8,6 +8,9 @@ tags:
8
  - risk-assessment
9
  - tabular-classification
10
  - bank-marketing
 
 
 
11
  license: apache-2.0
12
  metrics:
13
  - roc_auc
@@ -22,37 +25,55 @@ metrics:
22
  | :--- | :--- |
23
  | **Autor** | Izan Moya Romero |
24
  | **Tipo de Modelo** | Clasificación Binaria Supervisada (Riesgo de Impago) |
25
- | **Algoritmo** | Random Forest / XGBoost (En desarrollo) |
26
  | **Dataset Original** | [Home Credit Default Risk](https://www.kaggle.com/c/home-credit-default-risk) |
27
  | **Entorno** | Banca / Fintech / Análisis de Riesgos |
28
- | **Input** | Datos tabulares (Ingresos, Edad, Historial, Ratios Financieros) |
29
  | **Output** | Probabilidad de Default (0 - 1) |
30
- | **Estado** | 🚧 MVP (Fase de Validación y Limpieza) |
31
 
32
  ## 📖 Descripción del Proyecto
33
- Este modelo es parte del Trabajo de Fin de Máster (TFM) en **Big Data e Inteligencia Artificial**.
34
 
35
- El objetivo es desarrollar una herramienta de soporte a la decisión para entidades bancarias que permita estimar la probabilidad de que un cliente no pueda cumplir con sus obligaciones de pago (Default). El proyecto pone énfasis no solo en la precisión predictiva, sino en la **explicabilidad (XAI)** para cumplir con normativas financieras (Basilea III/IV).
36
 
37
  ## ⚙️ Metodología y Pipeline
38
- El flujo de trabajo sigue los estándares de la industria bancaria:
39
-
40
- 1. **Ingeniería de Datos:**
41
- * Tratamiento de *Thin Files* (clientes con poco historial) mediante imputación semántica (Flag + Mediana).
42
- * Corrección de anomalías de dominio (ej. errores en antigüedad laboral).
43
- * Codificación híbrida: `LabelEncoding` para binarias y `One-Hot Encoding` para categóricas complejas.
44
- 2. **Feature Engineering:**
45
- * Creación de ratios financieros clave (Ratio Deuda/Ingresos, Capacidad de Anualidad).
46
- 3. **Manejo de Desbalanceo:**
47
- * Aplicación de técnicas de sobremuestreo sintético (**SMOTE**) para mejorar la detección de la clase minoritaria (Morosos).
48
-
49
- ## 📊 Métricas Preliminares
50
- *Se actualizará tras el entrenamiento final.*
51
- * **Target:** 1 (Impago) / 0 (Pago)
52
- * **AUC-ROC Esperado:** > 0.75
53
 
54
- ## ⚠️ Limitaciones y Descargo de Responsabilidad
55
- Este modelo ha sido entrenado con datos históricos anonimizados para fines académicos. No debe utilizarse para la concesión real de créditos sin una validación adicional y auditoría de sesgos (Fairness).
 
 
56
 
57
- ---
58
- *Proyecto desarrollado con Python, Scikit-Learn y Pandas.*
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  - risk-assessment
9
  - tabular-classification
10
  - bank-marketing
11
+ - lightgbm
12
+ - explainable-ai
13
+ - shap
14
  license: apache-2.0
15
  metrics:
16
  - roc_auc
 
25
  | :--- | :--- |
26
  | **Autor** | Izan Moya Romero |
27
  | **Tipo de Modelo** | Clasificación Binaria Supervisada (Riesgo de Impago) |
28
+ | **Algoritmo Final** | LightGBM (Gradient Boosting) con Ponderación de Clases |
29
  | **Dataset Original** | [Home Credit Default Risk](https://www.kaggle.com/c/home-credit-default-risk) |
30
  | **Entorno** | Banca / Fintech / Análisis de Riesgos |
31
+ | **Input** | Datos tabulares (Ingresos, Edad, Historial, Ratios Financieros de Negocio) |
32
  | **Output** | Probabilidad de Default (0 - 1) |
33
+ | **Estado** | Completado (Modelo Entrenado, Evaluado y Explicable) |
34
 
35
  ## 📖 Descripción del Proyecto
36
+ Este modelo es el resultado del Trabajo de Fin de Máster (TFM) en **Big Data e Inteligencia Artificial**.
37
 
38
+ El objetivo principal es desarrollar una herramienta de soporte a la decisión para entidades bancarias que permita estimar la probabilidad de impago (Default) de un préstamo. A diferencia de las soluciones de "caja negra" habituales en competiciones (basadas en *ensembling* masivo de múltiples tablas), este proyecto adopta un enfoque *Lean* y regulatorio: maximizar el poder predictivo utilizando una única tabla de datos enriquecida mediante lógica financiera, garantizando una **explicabilidad total (XAI)** compatible con las normativas bancarias europeas (Basilea III/IV).
39
 
40
  ## ⚙️ Metodología y Pipeline
41
+ El flujo de trabajo sigue los más estrictos estándares de la industria de riesgos:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
 
43
+ 1. **Ingeniería de Datos y Limpieza:**
44
+ * Tratamiento de valores nulos (Missing Not At Random) mediante imputación semántica (Flagging + Mediana) y creación de la categoría explícita `Unknown` para variables categóricas, evitando sesgos.
45
+ * Eliminación de variables con alta multicolinealidad (correlación Pearson > 0.98).
46
+ * Codificación híbrida: `LabelEncoding` (binarias) y `One-Hot Encoding` (nominales).
47
 
48
+ 2. **Feature Engineering (Lógica de Negocio):**
49
+ * **Ratios de Capacidad de Pago:** Creación de proxies financieros como *Debt-to-Income* (`PAYMENT_RATE`) y duraciones estimadas (`CREDIT_TERM`).
50
+ * **Estrés de Liquidez:** Proxy de *Loan-to-Value* evaluando la sobre-financiación solicitada frente al valor real del bien (`CREDIT_GOODS_DIFF`).
51
+ * **Consenso de Mercado:** Agregaciones estadísticas combinando las puntuaciones de los burós de crédito externos (`EXT_SOURCE`).
52
+
53
+ 3. **Benchmark de Modelos y Estrategia de Validación:**
54
+ * Se implementó un *Split* estratificado (70/10/20) para evitar el *Data Leakage* y el coste computacional prohibitivo de un K-Fold en un dataset >300k registros.
55
+ * Se evaluaron múltiples familias de algoritmos: **Random Forest** (Bagging con SMOTE), **LinearSVC** (Geométrico), **MLPClassifier** (Redes Neuronales) y **LightGBM** (Boosting).
56
+ * **Selección:** El sobremuestreo sintético (SMOTE) fue superado por el balanceo de pesos interno (`is_unbalance=True`). El ganador absoluto fue LightGBM.
57
+
58
+ ## 📊 Resultados y Métricas del Modelo Final (LightGBM)
59
+ El modelo logra un equilibrio óptimo entre capacidad predictiva general y sensibilidad para detectar clientes tóxicos.
60
+
61
+ * **ROC-AUC Score:** **0.756** *(Superando el 0.72 del baseline original)*
62
+ * **Recall (Clase 1 - Fraude):** **68%** *(Detecta a casi 7 de cada 10 malos pagadores)*
63
+ * **Accuracy Global:** 70%
64
+
65
+ *(Opcional: Reemplaza este texto por la imagen de tu matriz de confusión subida a tu repo)*
66
+ `![Matriz de Confusión](ENLACE_A_TU_IMAGEN_MATRIZ_CONFUSION.png)`
67
+
68
+ ## 🧠 Explicabilidad del Modelo (XAI con SHAP)
69
+ Para que el modelo sea auditable por los analistas de riesgos, se ha integrado **SHAP (SHapley Additive exPlanations)**. El análisis confirma que el modelo ha aprendido lógicas de negocio coherentes:
70
+
71
+ 1. **Reputación Externa (`EXT_SOURCE_MEAN`):** Es el factor más determinante. Una mala puntuación en los burós externos dispara el riesgo de forma drástica.
72
+ 2. **Plazo del Crédito (`CREDIT_TERM`):** Préstamos estructurados a muy largo plazo acumulan mayor incertidumbre y, por ende, mayor riesgo asignado.
73
+ 3. **Sobre-financiación (`CREDIT_GOODS_DIFF`):** El modelo penaliza severamente a los clientes que solicitan un crédito por un importe muy superior al valor del bien a adquirir, interpretándolo como una necesidad urgente y no declarada de liquidez.
74
+
75
+ *(Opcional: Reemplaza este texto por la imagen de tu gráfico SHAP summary plot)*
76
+ `![Impacto SHAP](ENLACE_A_TU_IMAGEN_SHAP_BEESWARM.png)`
77
+
78
+ ## ⚠️ Limitaciones y Descargo de Responsabilidad
79
+ Este modelo ha sido entrenado con datos históricos anonimizados (*Home Credit Default Risk*) con fines exclusivamente académicos y de demostración técnica. No debe integrarse en sistemas de toma de decisión de concesión de crédito real sin superar auditorías exhaustivas de sesgos (*Fairness*), calibración de probabilidades y cumplimiento normativo local.