hsilvosa's picture
Upload germany-electricity-demand-forecaster model
24e0e10 verified
|
Raw
History Blame Contribute Delete
3.95 kB
---
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
```python
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:
- `hour`
- `quarter`
- `day_of_week`
- `day_of_year`
- `month`
- `is_weekend`
- `is_holiday`
- `is_morning_peak`
- `is_evening_peak`
- `sin_hour`
- `cos_hour`
- `sin_day_of_week`
- `cos_day_of_week`
- `sin_day_of_year`
- `cos_day_of_year`
- `lag_1h`
- `lag_2h`
- `lag_3h`
- `lag_4h`
- `lag_24h`
- `lag_48h`
- `lag_7d`
- `lag_14d`
- `diff_1h`
- `diff_2h`
- `diff_24h`
- `diff_7d`
- `acceleration_1h`
- `ema_4step`
- `ema_12step`
- `rolling_std_4step`
- `rolling_mean_24h`
- `rolling_std_24h`
- `rolling_min_24h`
- `rolling_max_24h`
- `rolling_mean_7d`
- `rolling_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/