Loan Status Prediction
Loan Status Prediction es un proyecto de machine learning que predice si un préstamo será pagado por completo o incumplido (charged off), dando a las instituciones financieras una señal rápida y basada en datos para evaluar el riesgo crediticio — entrenado sobre un dataset real de Kaggle y desplegado como una app de Streamlit en tiempo real que cualquiera puede probar.
Arquitectura y Stack Tecnológico
Arquitectura Central
- Lenguaje: Python (pandas, numpy)
- Machine learning: scikit-learn + XGBoost (XGBRFClassifier),
joblibpara persistir el modelo - Datos: dataset de crédito de Kaggle (
Credit_train.csv), limpiado atrain_data_processed.csv - App y despliegue: Streamlit + Streamlit Cloud para una UI de predicción en tiempo real
- Entorno: Google Colab / notebook de Jupyter para exploración y entrenamiento,
.devcontainerpara reproducibilidad
Pipeline de ML
Un único flujo reproducible desde los datos crudos de Kaggle hasta una predicción en vivo: exploración y limpieza, codificación y escalado de variables, entrenamiento y comparación de varios clasificadores, selección del mejor por métricas, y persistencia para que la app de Streamlit lo sirva.
Características Principales
Dataset
- Fuente: Kaggle —
Credit_train.csv - Variables clave: puntaje crediticio, ingreso anual, deuda mensual, años de historial crediticio, número de cuentas abiertas, saldo de crédito actual, crédito máximo abierto, propósito del préstamo y estado de propiedad de vivienda
- Objetivo: si el préstamo es pagado por completo o incumplido
Modelos y Resultados
Se entrenaron seis clasificadores sobre los mismos datos procesados y se compararon en accuracy, F1, AUC-ROC y tiempo de inferencia. XGBRFClassifier ganó por el equilibrio entre calidad predictiva y velocidad.
| Modelo | Rol |
|---|---|
| XGBRFClassifier | Mejor — combina gradient boosting + random forest |
| Random Forest | Comparado |
| Logistic Regression | Comparado |
| Gradient Boosting | Comparado |
| AdaBoost | Comparado |
| SGDClassifier | Comparado |
Mejor modelo — XGBRFClassifier:
- Accuracy: 82.7%
- F1 Score: 0.89
- AUC-ROC: 0.64
- Tiempo de inferencia: 32.3 ms
Variables más influyentes: puntaje crediticio, ingreso anual y años de historial crediticio.

Destacados Técnicos
Elección de modelo guiada por métricas, no por un solo número
El ganador no se eligió solo por accuracy — se compararon seis modelos en accuracy, F1, AUC-ROC y tiempo de inferencia, y XGBRFClassifier se seleccionó por dar el mejor equilibrio, no por liderar una métrica aislada.
La velocidad de inferencia como métrica de primera clase
Con 32.3 ms por predicción, el modelo es lo bastante rápido para decisiones de crédito interactivas y en tiempo real — una propiedad que importa tanto como el accuracy cuando el resultado alimenta un flujo de aprobación en vivo.
Preprocesamiento reproducible y persistencia del modelo
El manejo de valores faltantes, la eliminación de duplicados, la codificación de etiquetas, StandardScaler y la división train/validación se capturan una vez y se guardan como un dataset procesado más un modelo persistido (joblib), de modo que la app de Streamlit carga exactamente el modelo que se evaluó.
Estructura del Proyecto
loan-status-prediction/ ├── loan-status-prediction.ipynb # EDA, preprocesamiento, entrenamiento, comparación de modelos ├── app.py # UI de predicción en tiempo real (Streamlit) ├── XGBRFClassifier.pkl # Mejor modelo persistido (joblib) ├── train_data_processed.csv # Datos de entrenamiento limpios / codificados ├── requirements.txt # Dependencias de Python └── .devcontainer/ # Entorno de desarrollo reproducible
Impacto y Escalabilidad
- Señal de riesgo crediticio en tiempo real: predicción instantánea pagado vs. incumplido a partir de las variables del solicitante
- Factores interpretables: expone las variables que más influyen en la decisión (puntaje crediticio, ingreso, historial), no solo un puntaje de caja negra
- Consciente de la velocidad: 32 ms de inferencia permiten decisiones interactivas al momento de la aprobación
- Reproducible y desplegable: un modelo persistido + datos procesados + Streamlit Cloud hacen que cualquiera pueda correr la demo exacta
Notas
Construido en Python con scikit-learn y XGBoost, desplegado en Streamlit Cloud. El código es público en GitHub. Prueba la app en vivo en loan-status-prediction-unal.streamlit.app.
🖼️ IMAGE PLACEHOLDER — UI de la app en Streamlit: el formulario de solicitud y el resultado de la predicción