Forecaster
ColumnEnsembleForecaster
Forecast each series with separate forecaster.
Quickstart
python
from sktime.forecasting.compose import ColumnEnsembleForecaster
estimator = ColumnEnsembleForecaster(forecasters)Parameters(1)
- forecasterssktime forecaster, or list of tuples (str, estimator, int or pd.index)
if tuples, with name = str, estimator is forecaster, index as int or index
if last element is index, it must be int, str, or pd.Index coercible
if last element is int x, and is not in columns, is interpreted as x-th column
All columns must be present in an index
If forecaster, clones of forecaster are applied to all columns.
If list of tuples, forecaster in tuple is applied to column with int/str index
Examples
>>> import pandas as pd
>>> from sktime.forecasting.compose import ColumnEnsembleForecaster
>>> from sktime.forecasting.naive import NaiveForecaster
>>> from sktime.forecasting.trend import PolynomialTrendForecaster
>>> from sktime.datasets import load_longley Using integers (column iloc references) for indexing:
>>> y = load_longley ()[1 ][["GNP", "UNEMP" ]]
>>> forecasters = [
... ("trend", PolynomialTrendForecaster (), 0),
... ("naive", NaiveForecaster (), 1),
... ]
>>> forecaster = ColumnEnsembleForecaster (forecasters = forecasters)
>>> forecaster. fit (y, fh = [1, 2, 3 ]) ColumnEnsembleForecaster(
... )
>>> y_pred = forecaster. predict () Using strings for indexing:
>>> df = pd. DataFrame ({ "a": [1, 2, 3 ], "b": [4, 5, 6 ]})
>>> fc = ColumnEnsembleForecaster (
... [("foo", NaiveForecaster (), "a"), ("bar", NaiveForecaster (), "b")]
... )
>>> fc. fit (df, fh = [1, 42 ]) ColumnEnsembleForecaster(
... )
>>> y_pred = fc. predict () Applying one forecaster to multiple columns, multivariate:
>>> df = pd. DataFrame ({ "a": [1, 2, 3 ], "b": [4, 5, 6 ], "c": [7, 8, 9 ]})
>>> fc = ColumnEnsembleForecaster (
... [("ab", NaiveForecaster (), ["a", 1 ]), ("c", NaiveForecaster (), 2)]
... )
>>> fc. fit (df, fh = [1, 42 ]) ColumnEnsembleForecaster(
... )
>>> y_pred = fc. predict ()