Skip to content

JuanCarlosCastillo-ops/forecasting-rolling-energy

Repository files navigation

Predicción Rolling Multihorizonte de la Demanda de Energía Eléctrica

Autor: Juan Carlos Castillo Matamoros Afiliación: Universidad Técnica de Cotopaxi Tutores: Ing. Jessica N. Castillo · Ing. Gabriel Pezantes Año: 2025

Resumen

Este proyecto presenta un sistema de predicción rolling multihorizonte aplicado a series temporales de demanda energética, integrando modelos basados en boosting y arquitecturas deep tabulares. El objetivo es evaluar el desempeño comparativo de distintos enfoques de modelado —desde técnicas tradicionales hasta modelos de aprendizaje profundo— en entornos de validación rolling windows, garantizando una evaluación realista y sin fuga de información.

El código desarrollado permite automatizar la generación de predicciones, el cálculo de métricas de desempeño (R², RMSE, etc.) y la creación de figuras listas para publicación académica.

Arquitectura general del proyecto

El repositorio se compone de tres scripts principales:

make_rolling_preds_resume_full.py Implementa el pipeline completo de predicción rolling con cuatro modelos principales:

EvoXGB (evolutivo sobre XGBoost)

XGB (XGBoost clásico)

TabNet (Deep Tabular Network)

FTTransformer (Feature Token Transformer) Este script administra la ejecución rolling, los cortes de ventana, el manejo de memoria y la exportación de resultados para cada estación y horizonte.

make_rolling_preds_tabnet_SOLO.py Versión especializada que ejecuta únicamente el modelo TabNet, con optimización de hiperparámetros y control de early stopping adaptado a la naturaleza de la serie.

build_results_figs_INGENIUS.py Genera las figuras y tablas de resultados finales:

Comparativas de desempeño entre modelos y horizontes.

Gráficos de series reales vs. predichas.

Análisis de sensibilidad frente a tolerancias de error.

Tablas de resultados exportables para artículos científicos.

Estructura del repositorio . ├── data/ │ └── con_lags/ # Datos por estación (formato CSV) ├── resultados_final_v2/ # Salidas del pipeline completo ├── resultados_tabnet_SOLO/ # Salidas del pipeline TabNet solo ├── figuras_INGENIUS/ # Figuras y tablas finales ├── make_rolling_preds_resume_full.py ├── make_rolling_preds_tabnet_SOLO.py ├── build_results_figs_INGENIUS.py ├── requirements.txt ├── LICENSE ├── .gitignore └── README.md

Instalación y configuración

Requisitos mínimos:

Python 3.10 o superior

GPU compatible con CUDA (opcional, para acelerar entrenamiento)

Sistemas operativos soportados: Windows 10+, Ubuntu 22.04+

Instalación de dependencias:

pip install -r requirements.txt

Ejecución básica

Pipeline completo (cuatro modelos):

python make_rolling_preds_resume_full.py
--data_dir data/con_lags
--stations "S-E EL CALVARIO_con_lags"
--min_train 1500 --max_windows 200

Pipeline TabNet solo:

python make_rolling_preds_tabnet_SOLO.py
--data_dir data/con_lags
--stations "S-E EL CALVARIO_con_lags"
--tabnet_epochs 120 --tabnet_patience 15 --tabnet_batch 512

Generación de figuras y tablas:

python build_results_figs_INGENIUS.py
--models "A_EvoXGB=./resultados_final_v2;B_XGB=./resultados_final_v2;C_TabNet=./resultados_tabnet_SOLO;D_FTT=./resultados_final_v2"
--station "S-E EL CALVARIO_con_lags"
--horizons "corto,mediano"
--delta_tol 0.10
--out_dir figuras_INGENIUS

Características destacadas

Validación rolling estricta y reproducible.

Reanudación automática de experimentos interrumpidos.

Escalado robusto y tratamiento de lags dinámicos.

Exportación estructurada de resultados y figuras.

Cumplimiento de normas editoriales (Ingenius, IEEE).

Arquitectura modular adaptable a nuevos modelos.

Licencia

Este proyecto se distribuye bajo la Licencia MIT. El código y sus resultados pueden ser reutilizados con fines académicos o de investigación, citando al autor original:

Juan Carlos Castillo Matamoros — Universidad Técnica de Cotopaxi (2025)

Referencias

Arik, S. Ö., & Pfister, T. (2021). TabNet: Attentive Interpretable Tabular Learning.

Vaswani, A. et al. (2017). Attention is All You Need.

Chen, T. & Guestrin, C. (2016). XGBoost: A Scalable Tree Boosting System.

Este proyecto simboliza la búsqueda constante de precisión y comprensión en los sistemas energéticos. Aunque es solo un fragmento dentro del vasto campo del aprendizaje automático, refleja la convicción de que cada avance, por pequeño que parezca, impulsa a la ciencia un paso más adelante.

About

Predicción rolling de potencia con ensambles de modelos (XGBoost, EvoXGB, TabNet, FTTransformer) y generación automática de métricas y figuras para publicación.

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages