ConstantQuantileForecaster#

class openstef_models.models.forecasting.constant_quantile_forecaster.ConstantQuantileForecaster(**data: Any) None[source]

Bases: Forecaster, ExplainableForecaster, ContributionsMixin

Constant quantile-based forecaster for single horizon predictions.

Predicts constant values based on historical quantiles from training data.

The forecaster computes quantile values during training and returns these constant values for all future predictions. Performance is typically poor but provides a simple baseline for comparison with more sophisticated models.

Example

>>> from openstef_core.types import LeadTime, Quantile
>>> from datetime import timedelta
>>> forecaster = ConstantQuantileForecaster(
...     quantiles=[Quantile(0.5), Quantile(0.1), Quantile(0.9)],
...     horizons=[LeadTime(timedelta(hours=1))],
...     hyperparams=ConstantQuantileForecasterHyperParams(),
... )
>>> forecaster.fit(training_data)
>>> predictions = forecaster.predict(test_data)
Parameters:

data (Any)

horizons: list[LeadTime]
hyperparams: ConstantQuantileForecasterHyperParams
property hparams: ConstantQuantileForecasterHyperParams

Model hyperparameters for training and prediction.

Concrete forecasters 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.

property is_fitted: bool

Check if the predictor has been fitted.

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

Fit the predictor to the input data.

This method should be called before generating predictions. It allows the predictor to learn parameters from the training data.

Parameters:
Return type:

None

predict(data: ForecastInputDataset) ForecastDataset[source]

Generate predictions for the input data.

This method should use the fitted parameters to generate predictions.

Parameters:
Returns:

Predictions for the input data.

Raises:

NotFittedError – If the predictor has not been fitted yet.

Return type:

ForecastDataset

property feature_importances: DataFrame

Get feature importance scores for this model.

Returns DataFrame with feature names as index and quantiles as columns. Each quantile represents the importance distribution across multiple model training runs or folds.

Returns:

DataFrame with feature names as index and quantile columns. Values represent normalized importance scores summing to 1.0.

Note

The returned DataFrame must have feature names as index and quantile columns in format ‘quantile_PXX’ (e.g., ‘quantile_P50’, ‘quantile_P95’). All quantile values must be between 0 and 1.

predict_contributions(data: ForecastInputDataset) TimeSeriesDataset[source]

Return uniform contributions.

Parameters:

data (ForecastInputDataset)

Return type:

TimeSeriesDataset

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].

model_post_init(context: Any, /) None

This function is meant to behave like a BaseModel method to initialise private attributes.

It takes context as an argument since that’s what pydantic-core passes when calling it.

Parameters:
  • self (BaseModel) – The BaseModel instance.

  • context (Any) – The context.

  • self

  • context

Return type:

None