Español · English
Este perfil reúne trabajo y proyectos propios ordenados por el tipo de problema que resuelven: pronosticar, detectar lo anómalo, anticipar fallas, medir causas, optimizar, gestionar riesgo, ordenar datos y trabajar con texto e imágenes. La idea es mostrar las distintas formas en que un científico de datos puede ayudar a una organización, en minería, energía, finanzas, retail o pensiones.
En todos sigo las mismas reglas: el código corre de principio a fin, las cifras salen de esa corrida, casi todos tienen tests y CI, y los resultados negativos se publican igual que los positivos.
|
datos reales · página
24 años de valores cuota diarios, en UF. Cambiarse al fondo E en el piso de una caída resta 1,9 puntos de rentabilidad real al año; cambiarse antes logra el mismo Sharpe que una mezcla fija: no es acertar el momento, es tener menos renta variable. duckdb counterfactual-analysis behavioral-finance
|
real + simulado · página
¿Funcionó el programa de mantenimiento, y en qué camiones? Con sensores reales de 60.000 camiones Scania, el DRLearner por defecto colapsa (r = −0,01); se aisló la causa y se recupera a 0,61–0,79. causal-inference econml difference-in-differences
|
|
datos reales · página
3.000.888 filas de ventas. Un cuarto de la "demanda cero" eran locales que aún no abrían, y el modelo con mejor métrica deja quiebre de stock en 41% de los días-local. demand-forecasting lightgbm quantile-regression
|
Monte Carlo · página
Revisar un test A/B todos los días infla el falso positivo de 5% a 24,2%, y la regla bayesiana que se suele asumir "segura" casi no ayuda (20,5%). ab-testing cuped sequential-testing
|
datoschile: datos públicos de Chile en una línea
Librería de Python para bajar la UF, el dólar, el cobre, los valores cuota de las AFP y la morosidad bancaria de la CMF, limpios y en un DataFrame. Corrige errores reales de las fuentes, como el dólar filtrado en la UF en 2014 o los tres formatos de los Excel de la CMF, y cada semana verifica que las fuentes no hayan cambiado.
import datoschile as dc
dc.indicadores.uf(desde=2020)
dc.pensiones.indice(fondos="A", desde=2008, real=True)
dc.cmf.morosidad(solo_sistema=True)Control de combustible de una flota de buses · trabajo real, datos de ejemplo ficticios
Cada uno de los 17 terminales llevaba el combustible en su propio Excel. Primero hice un script en Python que une las planillas, calcula los km por litro de cada bus contra su carga anterior y marca las que quedan fuera del rango de su modelo. Después, una app en AppSheet que reemplazó las planillas: el operador registra cargas, pistolas y estanques desde el celular, y la app calcula consumo por pistola, stock teórico y AdBlue. Al revisar el código corregí tres errores: fechas mal ordenadas entre meses, buses que quedaban sin rango por cómo estaba escrita la norma, y la primera carga de cada bus marcada por error.
python pandas appsheet excel data-cleaning
34 proyectos en 9 tipos de problema; haz clic en una categoría para abrirla, o míralos todos en el portafolio.
1. Pronosticar lo que viene · 6 proyectos
| Proyecto | Qué resuelve y qué encontró | Stack |
|---|---|---|
| Demanda retail (Favorita) datos reales · página |
Pronóstico evaluado como decisión de compra: los cuantiles solo convienen sobre una razón de costos ~3:1. | lightgbm quantile-regression newsvendor |
| Morosidad bancaria en Chile (CMF) datos reales · página |
Panel desde 128 Excel de la CMF. Solo ARIMA a 3 meses le gana al ingenuo; sumar desempleo, TPM e IMACEC lo empeora. | time-series forecasting credit-risk |
| Sistema Eléctrico Nacional, horario simulado |
Solar, eólica, demanda y costo marginal en 5 barras. Solar: WAPE 3,64% vs 26,95% del ingenuo; en eólica gana el ingenuo. | lightgbm optuna time-series |
| Sistema Eléctrico Nacional, en R simulado · página |
TBATS: MAPE 2,47% vs 6,54% del ingenuo estacional; la ventaja de ETS solo aparece con validación rolling. | r arima garch |
| Volatilidad del cobre datos reales · página |
14 años de precios reales de la LME: GARCH(1,1) tiene el mejor QLIKE y solo HAR-X, con el VIX y el dólar, lo empata. CatBoost ajustado en cada fold no le gana. | garch catboost shap |
| Volatilidad de alta frecuencia datos reales · página |
24,8 M de trades de Binance: a 30 s, la persistencia (RMSPE 4,58) le gana a LightGBM y a la red neuronal. | high-frequency-trading lightgbm duckdb |
2. Detectar fraude y anomalías · 6 proyectos
| Proyecto | Qué resuelve y qué encontró | Stack |
|---|---|---|
| Laboratorio de fraude y AML real + simulado · página |
El ROC-AUC hace parecer casi igual (0,931 vs 0,965) un modelo con PR-AUC 3,4× peor; AML por grafos sin etiquetas: ROC-AUC 0,893. | fraud-detection aml xgboost |
| 16 detectores sobre fraude móvil simulado · página |
El baseline estadístico queda bajo el azar (ROC-AUC 0,383) y los ensambles no ganan. 266 tests. | isolation-forest local-outlier-factor imbalanced-data |
| Anomalías en compras públicas datos reales · página |
13,7 M de líneas de ChileCompra: las Compras Ágiles se acumulan bajo el tope y la acumulación se movió con la ley, pero casi no hay señal de compras partidas. Isolation Forest encuentra el 38,8% de las anomalías plantadas revisando el 5%. | public-procurement bunching isolation-forest |
| Motor de fraude políglota simulado · página |
C + Ruby + Python, cada capa perfilada: 31 ns por llamada en C; 4,68 ms p50 la solicitud completa. | c ruby prometheus |
| Anomalías en ticks de mercado (C++) datos reales |
EWMA y CUSUM validados contra el crash cripto de marzo 2020, a 7,26 M ticks/s. | cpp cusum ewma |
| Order flow en acciones de litio (C++) simulado · página |
Cero falsos positivos fuera del shock inyectado en 43.200 ventanas. | cpp order-flow market-microstructure |
3. Anticipar fallas de equipos · 3 proyectos
| Proyecto | Qué resuelve y qué encontró | Stack |
|---|---|---|
| Mantenimiento predictivo (SCANIA) datos reales · página |
23.550 camiones: −31% del costo oficial en test, pero el ahorro se agota si la visita cuesta el doble, porque el modelo exagera el riesgo. | predictive-maintenance survival-analysis shap |
| Falla desde señal continua real + simulado |
Rodamientos (NASA IMS) y señal sísmica (LANL): features espectrales con boosting le ganan 2,7× a una CNN. | remaining-useful-life signal-processing fft |
| Gemelo digital de molino SAG simulado · página |
Kalman estima la dureza del mineral con 79% menos error; energía a 24 h un 27,6% mejor que Holt-Winters. | digital-twin kalman-filter lightgbm |
4. Medir causas y evaluar decisiones · 3 proyectos
| Proyecto | Qué resuelve y qué encontró | Stack |
|---|---|---|
| Impacto causal en flota minera real + simulado · página |
Uplift y DiD escalonado; el ATT coincide con una implementación de referencia en un panel real. | causal-inference econml uplift-modeling |
| Experimentación A/B Monte Carlo · página |
Tamaño muestral, SRM, CUPED y comparaciones múltiples, con un arnés que verifica el error de cada regla. | ab-testing cuped power-analysis |
| Fondos de pensiones datos reales · página |
Una señal de régimen que "ganaba" 1,4–2,3% al año empata en Sharpe con una mezcla fija fuera de muestra. En UF, 2021–23 cayó 26%. | duckdb counterfactual-analysis pensions |
5. Optimizar operaciones · 3 proyectos
| Proyecto | Qué resuelve y qué encontró | Stack |
|---|---|---|
| Planta de flotación datos reales · página |
Planta real de hierro: el R² 0,83 de una partición al azar es -0,43 en orden temporal; solo con laboratorio reciente se le gana a la persistencia, y cuatro modelos recetan pH opuestos. | soft-sensor walk-forward optimization |
| Logística de última milla comunas reales, demanda simulada · página |
Ruteo multi-depósito con ventanas horarias sobre polígonos reales: 0 de 173 zonas sin atender. | or-tools vrptw h3 |
| Churn como decisión de negocio simulado · página |
Umbral por valor de cliente: +US$75.847 contactando al 78,6%, vs +US$42.717 contactando a todos. | mlflow fastapi docker |
6. Medir y gestionar riesgo financiero · 4 proyectos
| Proyecto | Qué resuelve y qué encontró | Stack |
|---|---|---|
| Laboratorio de riesgo crediticio macro real, cartera simulada · página |
26 técnicas: scorecard R+Python+C a 270,6 M filas/s, PD para IFRS 9, auditoría de sesgo y ciclo shadow/canary/reentrenamiento. | scorecard ifrs9 mlops |
| Riesgo sistémico en Chile datos reales · página |
Seis lenguajes sobre datos del Banco Central. El LSTM (51,0%) no le gana a la clase mayoritaria (53,6%). | julia r cplusplus |
| Laboratorio cuantitativo cripto datos reales · página |
Ocho técnicas. Las cinco estrategias pierden tras costos; la detección de spoofing sí funciona (precisión 0,92). | quantitative-finance cointegration nlp |
| Opciones asiáticas sobre cobre (C++) modelo de precios · página |
Monte Carlo C++20 bajo GBM, Schwartz y Heston: 9,64× con 16 hilos y un sesgo real corregido. | cpp20 monte-carlo heston-model |
7. Ordenar y preparar los datos · 3 proyectos
| Proyecto | Qué resuelve y qué encontró | Stack |
|---|---|---|
| Toolkit de limpieza en 4 dominios datos reales · página |
El mismo toolkit sobre Banco Central, COCHILCO y Banco Mundial; detectó un dato corrupto en la fuente. | data-quality pydantic pytest |
| Data warehouse minero simulado · página |
dbt + DuckDB de staging a marts, 83 tests de calidad y vistas listas para modelar. | dbt duckdb star-schema |
| Lakehouse de e-commerce simulado · página |
Polars + DuckDB sobre Parquet; repetir el benchmark 7 veces cambió la conclusión. | polars duckdb parquet |
8. Clasificar y estimar · 2 proyectos
| Proyecto | Qué resuelve y qué encontró | Stack |
|---|---|---|
| Clasificación científica datos reales · página |
Bosón de Higgs (AMS 3,64 vs 3,8–3,9 de los ganadores) y exoplanetas Kepler (79,3% vs 49,8%). | gradient-boosting pytorch astronomy |
| Ley y fragmentación (.NET) simulado · página |
ML.NET + ONNX en app de escritorio: P80 con R² 0,957. | csharp ml-net onnx |
9. Texto, lenguaje e imágenes · 4 proyectos
| Proyecto | Qué resuelve y qué encontró | Stack |
|---|---|---|
| RAG de seguridad minera normativa real · página |
Búsqueda híbrida sobre el DS 132; el re-ranking sube el MRR de 0,920 a 0,981. | rag hybrid-search cross-encoder |
| Agente de operaciones mineras simulado · página |
Un LLM que responde llamando herramientas (SQL, scoring, anomalías) en vez de inventar números. | llm-agent tool-calling duckdb |
| Modelo de lenguaje local para industria simulado · página |
Inferencia sin internet, guardrails y QLoRA; el modelo base inventa argumentos en 94 de 100 prompts. | llama-cpp qlora guardrails |
| YOLOv8 en Raspberry Pi (tesis) datos reales (COCO) · página |
68% menos parámetros y ~10× más rápido en Raspberry Pi, a cambio de mAP50 0,175 vs 0,212. | yolov8 computer-vision edge-computing |
| Lenguajes | |
| Datos | |
| ML y estadística | |
| Lenguaje, visión y edge | |
| Producción |

