EnsembleForecastingWorkflowConfig#

class openstef_meta.presets.forecasting_workflow.EnsembleForecastingWorkflowConfig(**data: Any) None[source]

Bases: BaseConfig

Configuration for ensemble forecasting workflows.

Parameters:

data (Any)

kind: Literal['ensemble']
model_id: TypeAliasType
run_name: str | None
ensemble_type: Literal['learned_weights', 'stacking', 'rules']
base_models: Sequence[Literal['lgbm', 'gblinear', 'xgboost', 'lgbm_linear']]
combiner_model: Literal['lgbm', 'rf', 'xgboost', 'logistic', 'gblinear']
quantiles: list[Quantile]
sample_interval: timedelta
horizons: list[LeadTime]
location: LocationConfig
xgboost_hyperparams: XGBoostHyperParams
gblinear_hyperparams: GBLinearHyperParams
lgbm_hyperparams: LGBMHyperParams
lgbmlinear_hyperparams: LGBMLinearHyperParams
combiner_lgbm_hyperparams: LGBMCombinerHyperParams
combiner_rf_hyperparams: RFCombinerHyperParams
combiner_xgboost_hyperparams: XGBCombinerHyperParams
combiner_logistic_hyperparams: LogisticCombinerHyperParams
combiner_stacking_lgbm_hyperparams: LGBMHyperParams
combiner_stacking_gblinear_hyperparams: GBLinearHyperParams
target_column: str
energy_price_column: str
radiation_column: str
wind_speed_column: str
pressure_column: str
temperature_column: str
relative_humidity_column: str
selected_features: FeatureSelection
predict_history: timedelta
cutoff_history: timedelta
completeness_threshold: float
flatliner_threshold: timedelta
detect_non_zero_flatliner: bool
predict_nonzero_flatliner: bool
shifters: list[Shifter]
rolling_aggregate_features: list[TypeAliasType]
clip_features: FeatureSelection
nan_on_outlier_features: FeatureSelection
max_day_lags: int
forecaster_sample_weights: dict[str, SampleWeightConfig]
combiner_sample_weight: SampleWeightConfig
data_splitter: DataSplitter
evaluation_metrics: list[MetricProvider]
mlflow_storage: MLFlowStorage | None
model_reuse_enable: bool
model_reuse_max_age: timedelta
model_selection_enable: bool
model_selection_metric: tuple[Union[Quantile, Literal['global']], str, TypeAliasType]
model_selection_old_model_penalty: float
model_performance_callback_enabled: bool
model_performance_callback_metric_threshold: tuple[Union[Quantile, Literal['global']], str, TypeAliasType, float]
verbosity: Literal[0, 1, 2, 3, True]
tags: dict[str, str]
experiment_tags: dict[str, str]
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': False, 'extra': 'ignore', 'protected_namespaces': ()}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].