forecasting
functime
supports both individual forecasters and forecasters with automated lags / hyperparameter tuning.
Auto-forecasters uses FLAML
to optimize both hyperparameters and number of lagged dependent variables.
FLAML
is a SOTA library for automated hyperparameter tuning using the CFO (Frugal Optimization for Cost-related Hyperparamters1) algorithm. All individual forecasters (e.g. lasso
/ xgboost
) and automated forecasters (e.g. auto_lasso
and auto_xgboost
) implement the following API.
forecaster
Autoregressive forecaster.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
freq |
str
|
Offset alias supported by Polars. |
required |
lags |
int
|
Number of lagged target variables. |
required |
max_horizons |
Optional[int]
|
Maximum number of horizons to predict directly.
Only applied if |
None
|
strategy |
Optional[str]
|
Forecasting strategy. Currently supports "recursive", "direct", and "ensemble" of both recursive and direct strategies. |
None
|
target_transform |
Optional[Transformer]
|
functime transformer to apply to |
None
|
feature_transform |
Optional[Transformer]
|
functime transformer to apply to |
None
|
**kwargs |
Mapping[str, Any]
|
Additional keyword arguments passed into underlying sklearn-compatible regressor. |
{}
|
auto_forecaster
Forecaster with automated hyperparameter tuning and lags selection.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
freq |
str
|
Offset alias as dictated. |
required |
min_lags |
int
|
Minimum number of lagged target values. |
3
|
max_lags |
int
|
Maximum number of lagged target values. |
12
|
max_horizons |
Optional[int]
|
Maximum number of horizons to predict directly.
Only applied if |
None
|
strategy |
Optional[str]
|
Forecasting strategy. Currently supports "recursive", "direct", and "ensemble" of both recursive and direct strategies. |
None
|
test_size |
int
|
Number of lags. |
1
|
step_size |
int
|
Step size between backtest windows. |
1
|
n_splits |
int
|
Number of backtest splits. |
5
|
time_budget |
int
|
Maximum time budgeted to train each forecaster per window and set of hyperparameters. |
5
|
search_space |
Optional[dict]
|
Equivalent to |
None
|
points_to_evaluate |
Optional[dict]
|
Equivalent to |
None
|
num_samples |
int
|
Number of hyper-parameter sets to test. -1 means unlimited (until |
-1
|
target_transform |
Optional[Transformer]
|
functime transformer to apply to |
None
|
feature_transform |
Optional[Transformer]
|
functime transformer to apply to |
None
|
**kwargs |
Mapping[str, Any]
|
Additional keyword arguments passed into underlying sklearn-compatible regressor. |
{}
|
ann
Autoregressive approximate nearest neighbors built on Lance.
auto_elastic_net
ElasticNet forecaster with automated lags and hyperparameters selection.
auto_knn
KNN forecaster with automated lags and hyperparamters selection.
auto_lasso
LASSO forecaster with automated lags and hyperparameters selection.
auto_lightgbm
LightGBM forecaster with automated lags and hyperparamters selection.
auto_linear_model
Autoregressive linear forecaster with automated lags selection.
auto_ridge
Ridge forecaster with automated lags and hyperparameters selection.
censored_model
Censored forecaster given threshold
parameter (defaults to 0.0).
Two separate forecasters are fit above and below a certain threshold. The forecasts are then combined using a binary classifier where: {0: "below_threshold", 1: "above_threshold"}.
elastic_net
Autoregressive ElasticNet forecaster.
elastic_net_cv
Autoregressive ElasticNetCV forecaster.
flaml_lightgbm
Autoregressive FLAML LightGBM forecaster with automated lags and hyperparameter tuning.
lasso
Autoregressive LASSO forecaster.
lasso_cv
Autoregressive LassoCV forecaster.
linear_model
Autoregressive linear forecaster.
ridge
Autoregressive Ridge forecaster.
ridge_cv
Autoregressive RidgeCV forecaster.
zero_inflated_model
Censored forecaster with threshold at 0.
-
https://arxiv.org/abs/2005.01571 ↩