Skip to content
View Rxyxs's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report Rxyxs

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Rxyxs/README.md

Español · English

Portada

Pablo Reyes

Científico de Datos · Universidad Mayor · Santiago, Chile

Portafolio LinkedIn CV Email


Soy científico de datos en Santiago. Lo que más me interesa del trabajo es lo que viene después de entrenar el modelo: comprobar si el resultado se sostiene con datos reales y si sirve para tomar una decisión. Por eso la mayoría de mis proyectos usan datos públicos de Chile, como Cochilco, la CMF, ChileCompra o la CNE, y abordan problemas reales de minería, energía y finanzas.

En varios casos el resultado no fue el que esperaba. Un modelo de reingreso hospitalario alcanzaba un AUC de 0,805, pero porque contaba todas las visitas del paciente, incluido el mismo reingreso que debía predecir. Usando solo la información disponible al momento del alta, y evaluándolo con pacientes nuevos, el AUC baja a 0,671. En otro proyecto, cambiarse de fondo de pensiones cuando el mercado está en su punto más bajo parece prudente, pero en 2.000 historias construidas con 24 años de valores cuota reduce la rentabilidad real en 1,9 puntos al año. Publico estos resultados igual que los positivos, y todas las cifras provienen de código que se ejecuta de principio a fin. Y cuando llevé diez proyectos de datos simulados a datos reales, casi todos perdieron su resultado principal; más abajo está cuánto y por qué.

Proyectos destacados

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
datos reales · página

Un agente con Qwen 2.5 corriendo en CPU, sobre datos reales de planta y ChileCompra, medido en 100 consultas: elige bien la herramienta 99 veces, pero copia mal los montos grandes; devolverlos en millones sube las respuestas ancladas de 67 a 86.

llm-agent tool-calling evaluation

Lo que cambió con datos reales

Doce proyectos partieron con datos simulados y después los corrí, sin cambiar el método, sobre datos reales. Casi todos perdieron su resultado principal, y entender por qué fue más útil que el número original.

Proyecto Métrica Simulado Real Por qué
Pipeline de fraude e-commerce
IEEE-CIS, 590 mil transacciones
PR-AUC 0,993 0,052 Las variables de comportamiento casi no tienen señal en fraude real.
Motor de fraude C + Ruby + Python
IEEE-CIS
PR-AUC 1,000 0,098 Dos de sus cuatro reglas nunca se disparan: sus listas eran inventadas.
AML no supervisado sobre grafo
Elliptic, 204 mil transacciones Bitcoin
ROC-AUC 0,893 0,17–0,33 Lo ilícito es típico, no anómalo: queda bajo el azar.
Fragmentación de tronadura
97 tronaduras publicadas, mina nueva
R² 0,957 −0,59 Con split aleatorio el modelo reconoce la faena; en una mina nueva es peor que el promedio.
Detector de order flow (C++)
IEX y Binance
Alertas (meta 0,27%) 0,02% 1,4–24% Las colas reales son mucho más pesadas que la Student-t supuesta.
19 detectores de anomalías
ULB e IEEE-CIS
ROC-AUC del baseline 0,383 0,931 El baseline 'peor que el azar' era un artefacto del simulador; el ranking casi no se transfiere.
Red multi-task de mantenimiento
23.550 camiones SCANIA
AUC vs. LightGBM empata 0,62 vs. 0,71 La red compartida pierde en las dos tareas con camiones reales, aun corrigiendo la escala de validación.
Laboratorio de riesgo crediticio
Lending Club, 621 mil créditos
AUC, scorecard vs. boosting 0,733 vs. 0,716 0,647 vs. 0,660 Con la señal débil de una cartera real el boosting gana; la restricción monótona sigue sin costar nada.
Experimentación A/B
Criteo, 14 millones de usuarios
Efecto tras ajustar con CUPED no se mueve −24% a −39% El SRM pasa, pero las variables previas predicen el brazo: el archivo se rebalanceó y el ajuste corrige la estimación.
Logística de última milla
OSRM, 86 mil pares de calles
Km del plan de rutas 572 835 manejado La circuidad simulada se queda corta: 19% de los trayectos reales supera su máximo.
Demanda eléctrica horaria (R)
CEN, 2 años de demanda horaria
MAPE horario, TBATS vs. ingenuo 4,28% vs. 6,73% 7,01% vs. 5,81% Sin calendario, Navidad y Fiestas Patrias hunden a los modelos clásicos; el ingenuo se adapta en un día.
Precio horario del SEN por barra
Informes diarios del CEN, 4 años, 6 barras
WAPE del precio, LightGBM 8,77% 18,84% Precios con ceros en el norte, cambios de régimen y desacople norte-sur; en Puerto Montt pierde contra la persistencia.

Herramienta abierta

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)

Experiencia

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, las comprime en consolidados por terminal, por día y por mes, 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

Proyectos por tipo de problema

43 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 · 7 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. Prueba de tensión con rezago y signos elegidos sin mirar el futuro: solo consumo y comercial le ganan a «sin cambio» (0,73 y 0,85). LightGBM por banco no le gana; SHAP muestra que aprende el régimen. stress-testing shap fastapi
Sistema Eléctrico Nacional, horario
datos reales · página
4 años de datos horarios reales leídos de los gráficos vectoriales de los informes diarios del Coordinador (residuo 0,04 USD/MWh). Precio por barra: WAPE 18,84% vs 21,87% del ingenuo; en Puerto Montt el modelo pierde. lightgbm pdf-extraction time-series
Sistema Eléctrico Nacional, en R
real + simulado · página
70.128 horas reales del SEN (archivo público del Coordinador): LightGBM con calendario pronostica el día siguiente con MAPE 2,48% vs 3,61% del ingenuo; sobre la misma demanda real, ARIMA y TBATS pierden contra el ingenuo en los feriados. r lightgbm forecasting
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
Valor de vida del cliente
datos reales · página
BG/NBD y Gamma-Gamma programados desde la verosimilitud. Prediciendo 26 semanas: -2% de error en compras totales, frente a +68% de la tasa ingenua y +24% de LightGBM. bg-nbd gamma-gamma retention
2. Detectar fraude y anomalías · 7 proyectos
Proyecto Qué resuelve y qué encontró Stack
Laboratorio de fraude y AML
datos reales · página
Cuatro técnicas, todas con datos reales: el pipeline de e-commerce cae de PR-AUC 0,993 sintético a 0,052 en IEEE-CIS, y el ensamble AML no supervisado queda bajo el azar en Elliptic (ROC-AUC 0,17-0,33) porque el flujo ilícito es típico, no anómalo. fraud-detection aml xgboost
16 detectores sobre fraude móvil
real + simulado · página
19 detectores en PaySim y en fraude real (tarjetas ULB, e-commerce IEEE-CIS): el ranking casi no se transfiere (Spearman 0,28-0,38) y en e-commerce ningún detector supera PR-AUC 0,22. 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
real + simulado · página
El mismo motor C + Ruby + Python sobre 590.540 transacciones reales (IEEE-CIS): PR-AUC 0,098 frente al 1,000 sintético, y sus capas no aportan sobre las features nativas. 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++)
real + simulado · página
En cintas reales (IEX y Binance) el detector alerta 1,4-24% de las ventanas, no 0,27%, y no anticipa el precio; el día de la noticia del litio (abr 2023) fue un evento de volumen (12x), no de desbalance. cpp order-flow market-microstructure
Anomalías en series de sensores (NAB)
datos reales · página
Scorer de NAB reimplementado y validado 9/9 contra lo publicado. Reportar solo el inicio de cada excursión lleva un detector estacional de 2,4 a 41; con validación cruzada queda en 42,4, sobre el baseline gaussiano publicado. anomaly-detection time-series benchmark
3. Anticipar fallas de equipos · 3 proyectos
Proyecto Qué resuelve y qué encontró Stack
Mantenimiento predictivo (4 datasets)
datos reales · página
4 datasets públicos (2 de camiones Scania reales, un compresor de metro, turbinas simuladas de la NASA), 8 familias de modelos y demo en Docker: SCANIA reescala cada variable distinto en train, validación y test (AUC adversarial 1,00); corregirlo baja el riesgo predicho de 16,9% a 4,2% (2,7% real). En APS, costo 9.150 vs 9.920 del ganador IDA 2016. predictive-maintenance distribution-shift deep-learning
Falla desde señal continua
datos reales
Rodamientos (NASA IMS), sismos (LANL) y 23.550 camiones SCANIA reales: el boosting espectral le gana a una CNN por 2,5×, y la red multi-task que empataba en la flota sintética pierde con camiones reales, aun corrigiendo la escala de validación (AUC 0,62 vs 0,71). remaining-useful-life signal-processing fft
Gemelo digital de molino SAG
real + simulado · página
Kalman estima la dureza del mineral con 79% menos error; energía valorizada con costos marginales reales de la CNE (95 meses). digital-twin kalman-filter lightgbm
4. Medir causas y evaluar decisiones · 5 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
real + simulado · página
Tamaño muestral, SRM, CUPED, comparaciones múltiples y un mSPRT que se puede revisar a diario, verificados en simulación y en el experimento real de Criteo (14 millones de usuarios): el SRM pasa, pero el ajuste por covariables mueve el efecto 39%. ab-testing cuped sequential-testing
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
Atrasos de entrega en un marketplace (Olist)
datos reales · página
96 mil pedidos reales. Llegar tarde causa -1,97 puntos de reseña (AIPW), y casi todo el daño ocurre en la primera semana. Filtrar reseñas previas a la entrega habría botado el 74% de los atrasos. causal-inference aipw survival-analysis
Elasticidad precio en supermercado
datos reales · página
580 productos y 2.500 hogares reales. Ignorar exhibición y folleto exagera la elasticidad un 40%; double ML da -1,50. Una rebaja de 10% solo se paga sola con margen bruto sobre 50%, incluso en cerveza. double-machine-learning fixed-effects pricing
5. Optimizar operaciones · 4 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
real + simulado · página
Ruteo multi-depósito con ventanas horarias sobre población real (Kontur ajustado al Censo 2017) y calles reales (OSRM): un plan hecho con distancias simuladas resulta 46% más largo al manejarlo. or-tools vrptw h3 osrm
Churn como decisión de negocio
datos reales · página
10.000 clientes bancarios reales: la columna de quejas era una fuga (AUC 1,00 vs 0,85); umbral por valor recupera US$189.930 contactando al 42%, vs US$143.842 contactando a todos. mlflow fastapi docker
Fallas de calidad en una línea Bosch
datos reales · página
1,18 M piezas reales: las fallas vienen por lote (11x junto a una pieza fallada). El CV mezclado exagera (0,40 vs 0,21 en piezas futuras). Inspeccionar el 5% más riesgoso atrapa el 61% de las fallas. lightgbm imbalanced-learning quality-control
6. Medir y gestionar riesgo financiero · 4 proyectos
Proyecto Qué resuelve y qué encontró Stack
Laboratorio de riesgo crediticio
real + simulado · página
26 técnicas sobre carteras simuladas (scorecard R+Python+C a 270,6 M filas/s, PD para IFRS 9, ciclo shadow/canary/reentrenamiento) y una 27 que las prueba con 621 mil créditos reales de Lending Club: la restricción monótona sigue siendo gratis y el scorecard ya no gana. 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 · 4 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
real + simulado · página
Anuario real de Cochilco 2000-2025 en dbt + DuckDB: la ley cayó 39% y la electricidad por tonelada solo 9%; 121 tests, capa de faena simulada. dbt duckdb star-schema
Lakehouse de e-commerce (110M eventos)
datos reales · página
110M eventos reales en DuckDB: faltan 48 h de compras y el tracking de carritos cambia 6 veces, así que el embudo se mide por régimen. duckdb polars pyspark parquet
Datos de Chile, actualizados cada día
datos reales · página
dbt + DuckDB + GitHub Actions: nueve series públicas (UF, dólar, cobre, IPC, TPM, IMACEC, desempleo, fondos AFP, morosidad CMF) se descargan, prueban y publican cada día; si mindicador se cae, la UF y el dólar salen del SII. dbt duckdb github-actions
8. Clasificar y estimar · 4 proyectos
Proyecto Qué resuelve y qué encontró Stack
Recomendador de e-commerce
datos reales · página
85M eventos reales: el ranker LightGBM sube el recall@20 de 0,244 a 0,395, pero el 71% de lo comprado nunca se había visto. lightgbm learning-to-rank duckdb
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)
real + simulado · página
ML.NET + ONNX en app de escritorio; sobre 97 tronaduras reales publicadas el modelo explica 0,76 con split aleatorio pero -0,59 en una mina nueva, frente al 0,957 sintético. csharp ml-net onnx
Reingreso hospitalario a 30 días
datos reales · página
99 mil hospitalizaciones reales. Contar visitas futuras infla el AUC de 0,67 a 0,80. Modelo calibrado con beneficio neto en umbrales de 5% a 39%; sin brecha por raza, pero peor en mayores de 70. calibration decision-curve fairness
9. Texto, lenguaje e imágenes · 5 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
datos reales · página
Agente con datos reales de planta y ChileCompra, medido en 100 consultas con Qwen local: elige bien la herramienta 99 veces, y pasar los montos a millones sube las respuestas ancladas de 67 a 86. llm-agent tool-calling duckdb
Modelo de lenguaje local para industria
real + simulado · página
Evaluado con 100 casos de una planta de flotación real: listar los argumentos de las herramientas baja las llamadas inválidas de 69 a 16, y auditar la solicitud deja 25 de 25 decisiones de seguridad correctas. 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
Estelas de aviones en imágenes satelitales
datos reales · página
Segmentación en GOES-16 sin bajar 451 GB: lectura remota del zip de Kaggle y de OpenContrails. Agrandar la entrada 2x vale +0,05 de Dice; apilar frames empeora. 0,597 en el privado de Kaggle. pytorch segmentation satellite-imagery

Herramientas

LenguajesPython SQL R C++ C C# Julia Go Ruby
Datospandas Polars NumPy DuckDB dbt Parquet Pydantic Jupyter
ML y estadísticascikit-learn LightGBM XGBoost CatBoost PyTorch SciPy Optuna Plotly
Lenguaje, visión y edgeLangChain Hugging Face Ultralytics YOLO ONNX Raspberry Pi
ProducciónFastAPI Streamlit MLflow Docker GitHub Actions pytest Prometheus Grafana Git Linux

Portafolio · LinkedIn · preyesp09@gmail.com · Santiago, Chile

Pinned Loading

  1. yolov8-separable-convolutions yolov8-separable-convolutions Public

    Evaluación de eficiencia de YOLOv8 en GPU, CPU y Raspberry Pi: convoluciones estándar vs. separables, con exportación TensorRT/TFLite (Tesis de título).

    Jupyter Notebook

  2. chile-fintech-systemic-risk chile-fintech-systemic-risk Public

    Arquitectura políglota de riesgo sistémico para el mercado financiero chileno (IPSA, tasas BCCh, PD crediticio): Python+DuckDB, R+Julia, C++/OpenMP, Go+C#. 5 módulos con datos reales.

    Python

  3. chile-mining-fleet-causal-impact chile-mining-fleet-causal-impact Public

    Inferencia causal de un programa de mantenimiento de flota minera: uplift (S/T/X-learner, Causal Forest, DR-Learner) y DiD escalonado, validados contra la verdad conocida de datos simulados y contr…

    Jupyter Notebook

  4. chile-fintech-experimentation-lab chile-fintech-experimentation-lab Public

    A/B testing toolkit: power analysis, SRM, CUPED, BH-FDR, and a Monte Carlo calibration harness that checks whether naive peeking rules actually control the false-positive rate they claim to.

    Python

  5. paysim-anomaly-detection-benchmark paysim-anomaly-detection-benchmark Public

    Deteccion de fraude en transacciones bancarias moviles: XGBoost supervisado + Isolation Forest/LOF no supervisado, sobre PaySim

    Python

  6. slm-industrial-gateway slm-industrial-gateway Public

    Gateway SLM industrial: motor de inferencia GGUF, herramientas analiticas, guardrails y fine-tuning QLoRA

    Python