| ---
|
| 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/
|
|
|