ForecastCombiner#

class openstef_meta.models.forecast_combiners.ForecastCombiner(**data: Any) None[source]

Bases: BaseConfig, Predictor[EnsembleForecastDataset, ForecastDataset], ExplainableForecaster, ABC

Combines base Forecaster predictions for each quantile into final predictions.

Subclasses implement specific combination strategies (stacking, learned weights, etc.). The combiner IS its own config — fields like quantiles and horizons are declared as pydantic fields directly.

Parameters:

data (Any)

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'ignore', 'protected_namespaces': ()}

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

quantiles: list[Quantile]
horizons: list[LeadTime]
property max_horizon: LeadTime

Returns the maximum lead time (horizon) from the configured horizons.

with_horizon(horizon: LeadTime) Self[source]

Create a copy with a different horizon.

Parameters:
  • horizon (LeadTime) – The new lead time to use for predictions.

  • horizon

Returns:

New instance with the specified horizon.

Return type:

Self

abstract property hparams: HyperParams

Combiner hyperparameters.

Concrete combiners implement this by returning their narrowed hyperparams field, giving callers a polymorphic read-only view while each subclass keeps full type safety on its own field.

abstract property is_fitted: bool

Whether the combiner has been fitted.

abstractmethod fit(data: EnsembleForecastDataset, data_val: EnsembleForecastDataset | None = None, additional_features: ForecastInputDataset | None = None) None[source]

Fit the combiner using base forecaster predictions.

Parameters:
Return type:

None

abstractmethod predict(data: EnsembleForecastDataset, additional_features: ForecastInputDataset | None = None) ForecastDataset[source]

Generate final predictions based on base forecaster predictions.

Parameters:
Returns:

Combined forecast dataset.

Return type:

ForecastDataset

abstractmethod predict_contributions(data: EnsembleForecastDataset, additional_features: ForecastInputDataset | None = None) TimeSeriesDataset[source]

Per-sample feature/model contributions for the combined prediction.

Parameters:
Returns:

TimeSeriesDataset where columns are features/models and rows are timesteps.

Return type:

TimeSeriesDataset