metadata
language:
- en
- de
license: apache-2.0
tags:
- time-series-forecasting
- energy-forecasting
- electricity-demand
- day-ahead-prices
- lightgbm
- tabular-regression
- conformal-prediction
- germany
- europe
- entsoe
pipeline_tag: tabular-regression
datasets:
- hsilvosa/entsoe-day-ahead
metrics:
- mae
- rmse
- pinball_loss
- winkler_score
model-index:
- name: germany-demand-forecaster
results:
- task:
type: tabular-regression
name: Electricity Demand Forecasting
dataset:
name: ENTSO-E Germany Bidding Zone (DE)
type: hsilvosa/entsoe-day-ahead
metrics:
- name: MAE
type: mae
value: 440.218
- name: RMSE
type: rmse
value: 663.288
- name: Empirical Interval Coverage (80% Nominal)
type: coverage
value: 76.5%
Electricity Demand Forecaster for Germany (DE)
High-accuracy calibrated quantile LightGBM model for forecasting Germany demand. Resolution: 15-minute intervals. Trained on multi-year data (2023β2026) from ENTSO-E, featuring multi-scale lags, cyclical encodings, and conformal calibration for well-calibrated 80% prediction intervals ($P10, P50, P90$).
Model Highlights
- Country / Zone: Germany (
DE) - Target: Electricity Demand in
MW - Resolution: 15-minute intervals
- Outputs: Point forecast ($P50$), 80% prediction interval ($P10$ to $P90$)
- Algorithm: LightGBM Multi-Quantile Regressor with Conformal Calibration & Monotonicity
- Dataset: ENTSO-E European Transparency Platform (Zone:
DE) - Training Samples: 99,380 observations (2023β2026)
Performance & Benchmark Comparison
Evaluated on out-of-sample test sets against official seasonal persistence benchmarks:
| Metric | LightGBM Forecaster | 7-Day Seasonal Persistence | Improvement |
|---|---|---|---|
| MAE | 440.218 MW | 5542.114 MW | +92.1% |
| RMSE | 663.288 MW | β | β |
- WAPE: 0.80% | P10 Pinball Loss | 237.595 | β | β | | P90 Pinball Loss | 155.508 | β | β | | P10βP90 Interval Coverage | 76.5% | β | Target: 75β85% | | Winkler Score | 3931.027 | β | β |
Quickstart: Python Inference
import pandas as pd
from huggingface_hub import hf_hub_download
import joblib
# 1. Download model artifacts
model_path = hf_hub_download(repo_id="ORGANIZATION/germany-demand-forecaster", filename="models.joblib")
models = joblib.load(model_path)
# 2. Predict P10, P50 (point), and P90 quantiles
X_test = pd.read_csv("sample_input.csv")
p10 = models[0.1].predict(X_test)
p50 = models[0.5].predict(X_test)
p90 = models[0.9].predict(X_test)
print("Forecast Point Estimate:", p50[:5])
print("80% Lower Bound (P10):", p10[:5])
print("80% Upper Bound (P90):", p90[:5])
Features Used
The model uses 37 leakage-safe features:
hourquarterday_of_weekday_of_yearmonthis_weekendis_holidayis_morning_peakis_evening_peaksin_hourcos_hoursin_day_of_weekcos_day_of_weeksin_day_of_yearcos_day_of_yearlag_1hlag_2hlag_3hlag_4hlag_24hlag_48hlag_7dlag_14ddiff_1hdiff_2hdiff_24hdiff_7dacceleration_1hema_4stepema_12steprolling_std_4steprolling_mean_24hrolling_std_24hrolling_min_24hrolling_max_24hrolling_mean_7drolling_std_7d
Intended Use & Advisory
This model is intended for research, energy market analytics, grid load planning, and educational forecasting demonstrations. It is advisory only and not intended for automated trading execution or real-time grid dispatch.
Citation & Attribution
Data published under the ENTSO-E Transparency framework:
- Transparency Platform: https://transparency.entsoe.eu/