user@devops:~$ cat README.md
N-BEATS + N-HiTS -- forecasting neuronal vs clasicos
# Descripción
Arquitecturas de NeuralForecast (Nixtla) implementadas desde cero en PyTorch, sin la libreria neuralforecast. Parte 1: panel sintetico 8 tiendas x 420 dias con tendencia, estacionalidad semanal, ciclo 90d y picos de promo (y mean 65.6). Split train/val/test con lookback 42 y horizonte 14 (904 ventanas de train, seed 42). Parte 2: baselines clasicos -- SeasonalNaive MAE 3.058, Holt-Winters 3.073, Ridge lags+Fourier 2.518. Parte 3: N-BEATS generico 3 bloques residuales backcast/forecast, 69.096 params, val MAE 2.668, holdout MAE 2.833. Parte 4: N-HiTS downsample 8/4/1 con interpolacion lineal, 21.195 params, val MAE 2.518, holdout MAE 2.790. Parte 5: N-BEATS interpretable (polinomio grado 3 + Fourier periodo 7 + remainder) 46.736 params, val MAE 2.202. Parte 6: holdout one-shot H=14 y rolling-origin 4 origenes -- ganador N-BEATS-I MAE 2.446 / rolling 2.476 (MASE 0.795, -20% vs SeasonalNaive). Hallazgo: en series cortas con estacionalidad clara el sesgo inductivo (tendencia+Fourier) gana al bloque generico; Ridge con las mismas bases es un rival serio; N-HiTS iguala casi a N-BEATS generico con 3x menos parametros. Entrenamiento CPU 4.3s + 3.1s + 3.3s. 7 visualizaciones.
# Características principales
$ Panel sintetico 8 tiendas x 420 dias: tendencia, semana, ciclo 90d y promos
$ Baselines: SeasonalNaive, Holt-Winters aditivo, Ridge lags 42 + Fourier
$ N-BEATS generico (Oreshkin 2019): 3 bloques residuales, 69.096 params, MAE 2.833
$ N-HiTS (Challu 2022): interpolacion multi-rate ds=8/4/1, 21.195 params, MAE 2.790
$ N-BEATS interpretable: stack polinomico + Fourier + remainder, MAE 2.446 (-20% vs naive)
$ Holdout H=14 + rolling-origin 4 origenes; MASE 0.795 en el ganador
$ Ridge lags+Fourier MAE 2.518: baseline lineal fuerte cuando la estacionalidad es clara
$ 7 visualizaciones: overview, seasonality, forecasts, metrics, stacks, horizonte, N-HiTS
# Galería
# Tecnologías utilizadas