models_configs

This module provides classes for managing and validating configuration parameters for various machine learning models, specifically focusing on ARIMA-based models. The module includes a base class that standardizes the process of handling model configuration, ensuring that all derived classes follow a consistent pattern for validating and setting parameters.

Classes

AbstractBaseModelConfigABC

An abstract base class for the BaseModelConfig class.

BaseModelConfigAbstractBaseModelConfig

A base class that provides common functionality for model configuration, including parameter validation, default value handling, and error checking. Subclasses are required to define a SUPPORTED_PARAMETERS dictionary that specifies the expected parameter types, default values, and any valid choices.

ARIMAConfigBaseModelConfig

A configuration class for ARIMA model parameters. Inherits from BaseModelConfig and defines specific parameters used by ARIMA and ARIMA_PLUS models. This class ensures that the parameters adhere to the expected types and valid choices.

ARIMA_PLUS_XREG_ConfigBaseModelConfig

A configuration class for ARIMA_PLUS_XREG model parameters. This class extends BaseModelConfig and includes additional parameters for handling exogenous variables (xreg_features) and other settings specific to the ARIMA_PLUS_XREG model.

Usage

These configuration classes are intended to be used in the setup and validation of model parameters before they are passed to machine learning model training functions. By leveraging these classes, developers can ensure that all configuration parameters are correctly typed, fall within valid ranges, and adhere to expected choices, reducing the likelihood of runtime errors.

Example

>>> config = ARIMAConfig(model_type="ARIMA")
>>> print(config.model_type)
'ARIMA'
>>> xreg_config = ARIMA_PLUS_XREG_Config(
...     model_type="ARIMA_PLUS_XREG",
...     xreg_features=["feature1", "feature2"],
...     non_negative_forecast=True
... )
>>> print(xreg_config.xreg_features)
['feature1', 'feature2']
class iowa_forecast.models_configs.AbstractBaseModelConfig[source]

Bases: ABC

Abstract base class for BaseModelConfig configuration class.

Attributes:
SUPPORTED_PARAMETERS

This abstract property must be implemented by subclasses.

abstract property SUPPORTED_PARAMETERS: Dict[str, Tuple[Any, Any, List[Any]]]

This abstract property must be implemented by subclasses. It should return a dictionary where the keys are parameter names, and the values are tuples containing the expected type, default value, and a list of valid choices (if any).

class iowa_forecast.models_configs.BaseModelConfig(**kwargs)[source]

Bases: AbstractBaseModelConfig

Base class for model configuration parameters.

This class provides common functionality for handling configuration parameters passed via kwargs, including unpacking, validation, and setting default values.

Subclasses must define the SUPPORTED_PARAMETERS dictionary, which specifies the expected parameter types, default values, and any restricted choices.

Attributes:
SUPPORTED_PARAMETERS

This abstract property must be implemented by subclasses.

property SUPPORTED_PARAMETERS: Dict[str, Tuple[Any, Any, List[Any]]]

This abstract property must be implemented by subclasses. It should return a dictionary where the keys are parameter names, and the values are tuples containing the expected type, default value, and a list of valid choices (if any).

class iowa_forecast.models_configs.ARIMAConfig(**kwargs)[source]

Bases: BaseModelConfig

Configuration class for 'ARIMA' model parameters.

Inherits common functionality from BaseModelConfig and defines specific parameters for 'ARIMA' models, including validation of choices for some parameters.

Attributes:
SUPPORTED_PARAMETERS

This abstract property must be implemented by subclasses.

property SUPPORTED_PARAMETERS: Dict[str, Tuple[Any, Any, List[Any]]]

This abstract property must be implemented by subclasses. It should return a dictionary where the keys are parameter names, and the values are tuples containing the expected type, default value, and a list of valid choices (if any).

class iowa_forecast.models_configs.ARIMA_PLUS_XREG_Config(**kwargs)[source]

Bases: BaseModelConfig

Configuration class for 'ARIMA_PLUS_XREG' model parameters.

Inherits common functionality from BaseModelConfig and defines specific parameters for 'ARIMA_PLUS_XREG' models, including validation of choices for some parameters.

Attributes:
SUPPORTED_PARAMETERS

This abstract property must be implemented by subclasses.

property SUPPORTED_PARAMETERS: Dict[str, Tuple[Any, Any, List[Any]]]

This abstract property must be implemented by subclasses. It should return a dictionary where the keys are parameter names, and the values are tuples containing the expected type, default value, and a list of valid choices (if any).