| ---
|
| language:
|
| - en
|
| - nl
|
| license: apache-2.0
|
| tags:
|
| - time-series-forecasting
|
| - energy-forecasting
|
| - electricity-demand
|
| - day-ahead-prices
|
| - lightgbm
|
| - tabular-regression
|
| - conformal-prediction
|
| - netherlands
|
| - europe
|
| - entsoe
|
| pipeline_tag: tabular-regression
|
| datasets:
|
| - hsilvosa/entsoe-day-ahead
|
| metrics:
|
| - mae
|
| - rmse
|
| - pinball_loss
|
| - winkler_score
|
| model-index:
|
| - name: netherlands-price-forecaster
|
| results:
|
| - task:
|
| type: tabular-regression
|
| name: Electricity Price Forecasting
|
| dataset:
|
| name: ENTSO-E Netherlands Bidding Zone (NL)
|
| type: hsilvosa/entsoe-day-ahead
|
| metrics:
|
| - name: MAE
|
| type: mae
|
| value: 8.314
|
| - name: RMSE
|
| type: rmse
|
| value: 21.564
|
| - name: Empirical Interval Coverage (80% Nominal)
|
| type: coverage
|
| value: 76.7%
|
| ---
|
| # Day-Ahead Electricity Price Forecaster for Netherlands (NL)
|
|
|
| High-accuracy calibrated quantile LightGBM model for forecasting Netherlands **price**.
|
| Resolution: hourly 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**: Netherlands (`NL`)
|
| - **Target**: Day-Ahead Electricity Price in `EUR/MWh`
|
| - **Resolution**: hourly 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: `NL`)
|
| - **Training Samples**: 24,571 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** | **8.314 EUR/MWh** | 42.456 EUR/MWh | **+80.4%** |
|
| | **RMSE** | **21.564 EUR/MWh** | β | β |
|
| - **WAPE**: 8.27%
|
| | **P10 Pinball Loss** | 2.184 | β | β |
|
| | **P90 Pinball Loss** | 2.381 | β | β |
|
| | **P10βP90 Interval Coverage** | **76.7%** | β | Target: 75β85% |
|
| | **Winkler Score** | 45.648 | β | β |
|
|
|
| ## 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/netherlands-price-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/
|
|
|