Configuration for the ENTSO-E forecasting pipeline.
This class manages all configuration parameters for the ENTSO-E task, including API settings, training/prediction intervals, and feature engineering specifications. All parameters can be customized during initialization or used with sensible defaults.
The default period configurations use specific n_periods to balance resolution and smoothing: - Daily: n_periods=12 (24h) provides ~2h resolution, smoothing hourly noise and halving dimensionality. - Weekly: n_periods typically matches range (1:1) to distinguish day-of-week patterns. - Yearly: n_periods=12 (365d) provides ~1 month resolution, capturing broad seasonal trends without overfitting.
See docs/PERIOD_CONFIGURATION_RATIONALE.md for a detailed analysis.
Examples
import pandas as pdfrom spotforecast2_safe.configurator.config_entsoe import ConfigEntsoe# Use default configurationconfig = ConfigEntsoe()print(config.API_COUNTRY_CODE)print(config.predict_size)print(config.random_state)# Create custom configurationcustom_config = ConfigEntsoe( api_country_code="FR", predict_size=48, random_state=42,)print(custom_config.API_COUNTRY_CODE)print(custom_config.predict_size)# Verify training windowassert config.train_size == pd.Timedelta(days=3*365)# Check default periodsprint(len(config.periods))print(config.periods[0].name)
The configuration instance with updated parameters (supports method chaining).
Examples
from spotforecast2_safe.configurator.config_entsoe import ConfigEntsoeconfig = ConfigEntsoe()# Flat parameter settingconfig.set_params(api_country_code="FR", predict_size=48)print(config.API_COUNTRY_CODE)print(config.predict_size)assert config.API_COUNTRY_CODE =="FR"assert config.predict_size ==48# Deep parameter setting for nested Period objectsconfig.set_params(periods__daily__n_periods=24)daily_n =next(p.n_periods for p in config.periods if p.name =="daily")print(daily_n)assert daily_n ==24