Módulos del Sistema
El sistema está organizado en módulos especializados que trabajan en conjunto para proporcionar una solución completa de análisis de riesgo crediticio.
Módulos Principales
Referencia Completa de la API
Documentación detallada de todos los módulos del código fuente:
API Reference
- generar_datos
- data_processor
- univariate_analysis
- bivariate_analysis
- feature_engineering
- clustering
- rbm_model
- Descripción General
- Clases Principales
- Métodos de Entrenamiento
- Métodos de Persistencia
- Funciones de Visualización
- Funciones de Renderizado
- Fundamentos Teóricos
- Ejemplo Completo
- Métodos Internos
- Funciones de Visualización
- Funciones de Renderizado
- Hiperparámetros Recomendados
- Interpretación de Métricas
- Ver también
- supervised_models
- Descripción General
- Clases Principales
- Métodos de Preparación
- Métodos de Entrenamiento
- Métodos de Evaluación
- Métodos de Visualización
- Funciones de Renderizado
- Configuración de Modelos
- Ejemplo Completo
- Interpretación de Métricas
- Funciones de Renderizado
- Ejemplo de Optimización de Hiperparámetros
- Ejemplo de Validación Cruzada
- Ejemplo de Análisis de Errores
- Guardado de Modelos
- Ver también
- prediction
- Descripción General
- Clases Principales
- Métodos de Carga
- Métodos de Formulario
- Métodos de Predicción
- Métodos de Explicación
- Funciones de Renderizado
- Funciones Auxiliares
- Validaciones en Tiempo Real
- Ejemplo Completo de Predicción
- Métodos de Cálculo
- Métodos de Generación de Insights
- Funciones de Renderizado
- Funciones Auxiliares
- Ejemplo de Batch Prediction
- Integración con Otros Módulos
- Ver también
- educational_rag
- Descripción General
- Clases Principales
- Métodos de Inicialización
- Métodos de Gestión de Papers
- Métodos de Búsqueda
- Métodos de Generación
- Funciones de Renderizado
- Preguntas Sugeridas
- Ejemplo Completo de Uso
- Gestión de Papers Personalizados
- Arquitectura del Sistema RAG
- Métodos de Búsqueda
- Métodos de Generación
- Funciones de Renderizado
- Papers Científicos Incluidos
- Ejemplo de Sesión Educativa
- Configuración Avanzada
- Dependencias Requeridas
- Troubleshooting
- Ver también
- retraining
- Descripción General
- Clases Principales
- Métodos de Gestión
- Métodos de Detección de Drift
- Métodos de Versionado
- Métodos de Re-entrenamiento
- Funciones de Renderizado
- Tests Estadísticos
- Ejemplo Completo de Re-entrenamiento
- Workflow de Re-entrenamiento
- Gestión de Versiones
- Monitoreo de Drift
- Ejemplo de Pipeline Completo
- Mejores Prácticas
- Ver también
Arquitectura del Sistema
AppFIsica/
│
├── app.py # 🚀 Aplicación principal
├── src/ # 💻 Módulos de código
│ ├── generar_datos.py # 📊 Generación de datos
│ ├── data_processor.py # 🔧 Procesamiento
│ ├── univariate_analysis.py # 📈 Análisis univariado
│ ├── bivariate_analysis.py # 🔗 Análisis bivariado
│ ├── feature_engineering.py # ⚙️ Ingeniería características
│ ├── clustering.py # 🎯 Clustering
│ ├── rbm_model.py # ⚡ Máquina de Boltzmann
│ ├── supervised_models.py # 🤖 Modelos supervisados
│ ├── prediction.py # 🔮 Predicción
│ └── educational_rag.py # 🎓 Sistema RAG
│
├── data/ # 💾 Almacenamiento de datos
├── models/ # 🧠 Modelos entrenados
├── articles/ # 📚 Papers científicos
└── docs/ # 📖 Documentación
Flujo de Datos
Descripción de Módulos
📊 Generación de Datos
Propósito: Crear datasets sintéticos realistas para Colombia.
Características: - Correlaciones lógicas entre variables - Distribuciones realistas (60% Bajo, 25% Medio, 15% Alto) - Configuración de parámetros - Exportación múltiple (CSV, Excel, Parquet)
Uso:
from src.generar_datos import generar_datos_credito_realista
df = generar_datos_credito_realista(
n_registros=10000,
semilla=42
)
🔧 Procesamiento de Datos
Propósito: Validar y limpiar datos cargados por el usuario.
Funcionalidades: - Carga de múltiples formatos - Validaciones automáticas - Detección de outliers - Imputación inteligente - Reportes de calidad
📈 Análisis Descriptivo
Propósito: Análisis estadístico univariado y bivariado.
Análisis Univariado: - Estadísticas completas (media, mediana, percentiles) - Visualizaciones (histogramas, boxplots, Q-Q plots) - Tests de normalidad - Detección de outliers
Análisis Bivariado: - Matrices de correlación - Gráficos de dispersión - Tablas de contingencia - Tests estadísticos (Chi², ANOVA)
⚙️ Ingeniería de Características
Propósito: Crear variables derivadas automáticamente.
Tipos de Características: - Ratios Financieros: LTV, DTI, capacidad ahorro - Indicadores de Riesgo: Scores de edad, estabilidad, legal - Interacciones: Educación×Salario, Edad×Empleo - Discretización: Grupos de edad, rangos salariales - Transformaciones: Log, raíz cuadrada
🎯 Clustering
Propósito: Segmentación de solicitantes en grupos homogéneos.
Algoritmos: - K-Means (rápido, esférico) - Jerárquico (dendrograma) - DBSCAN (detecta outliers) - Gaussian Mixture (probabilístico)
Visualizaciones: - PCA 2D/3D interactivo - Determinación de K óptimo - Perfiles por cluster
⚡ Máquina de Boltzmann Restringida
Propósito: Extracción de características latentes.
Implementación: - RBM desde cero en NumPy - Contrastive Divergence (CD-k) - Métricas de evaluación - Visualizaciones de pesos
Ecuaciones Clave:
🤖 Modelos Supervisados
Propósito: Clasificación de riesgo crediticio.
Modelos Incluidos: - Logistic Regression (baseline) - Random Forest - XGBoost - LightGBM - Support Vector Machine - Multi-Layer Perceptron
Evaluación: - Validación cruzada 5-fold - Múltiples métricas (Accuracy, F1, ROC-AUC) - Matrices de confusión - Importancia de características
🔮 Predicción
Propósito: Evaluar riesgo de nuevos solicitantes.
Características: - Formulario interactivo - Validaciones en tiempo real - Explicaciones detalladas - Recomendaciones automáticas - Historial de predicciones
🎓 Sistema RAG Educativo
Propósito: Aprendizaje interactivo sobre RBMs.
Componentes: - Procesamiento de PDFs (PyMuPDF) - Base vectorial (ChromaDB) - Embeddings locales (HuggingFace) - LLM (Groq Llama 3.3 70B) - Chat interactivo
Configuración Avanzada
Hiperparámetros RBM
rbm_config = {
'n_hidden': 100, # Unidades ocultas
'learning_rate': 0.01, # Tasa de aprendizaje
'n_epochs': 100, # Épocas
'batch_size': 64, # Tamaño de batch
'k_cd': 1 # Pasos CD
}
Configuración RAG
rag_config = {
'chunk_size': 1500, # Tamaño de chunks
'chunk_overlap': 300, # Solapamiento
'top_k_results': 6, # Documentos relevantes
'temperature': 0.3 # Creatividad LLM
}
Optimización de Rendimiento
Para Datasets Grandes (>50K registros): - Usar muestreo estratificado - Reducir épocas de RBM - Usar validación holdout en lugar de CV
Para Recursos Limitados:
- Reducir n_hidden en RBM
- Usar menos modelos supervisados
- Desactivar visualizaciones 3D
Integración con Otros Sistemas
API REST
El sistema puede extenderse con una API REST:
from fastapi import FastAPI
from src.prediction import CreditRiskPredictor
app = FastAPI()
predictor = CreditRiskPredictor()
@app.post("/predict")
def predict_risk(applicant_data: dict):
return predictor.predict_risk(applicant_data)
Base de Datos
Para producción, considera integrar con: - PostgreSQL para datos transaccionales - MongoDB para documentos no estructurados - Redis para caché de predicciones
Monitoreo
Implementa monitoreo de: - Drift en distribuciones de datos - Degradación de métricas de modelos - Uso de recursos del sistema - Latencia de predicciones