SplineTrendForecaster
Forecast time series data with a spline trend.
Quickstart
from sktime.forecasting.trend import SplineTrendForecaster
estimator = SplineTrendForecaster(regressor=None, n_knots=5, degree=1, knots='uniform', extrapolation='constant', with_intercept=True)Parameters(7)
- regressorsklearn regressor estimator object, default=None
Define the regression model type. If not set, defaults to
sklearn.linear_model.LinearRegression.- n_knotsint, default=5
Number of knots of the splines if
knotsis one of {‘uniform’, ‘quantile’}. Must be at least 2. Ignored ifknotsis array-like.- degreeint, default=1
- Degree of the splines (1 for linear, 2 for quadratic, etc.).
- n_knotsint, default=4
- Number of knots for the spline transformation.
- knots{‘uniform’, ‘quantile’}or array-like of shape (n_knots, n_features),
default=’uniform’ Determines knot positions such that first knot <= features <= last knot.
‘uniform’: n_knots are distributed uniformly between the
min and max values of the features. - ‘quantile’: n_knots are distributed uniformly along the quantiles of the features. - array-like: Specifies sorted knot positions, including the boundary knots. Internally, additional knots are added before the first knot and after the last knot based on the spline degree.
- extrapolation{‘error’, ‘constant’, ‘linear’, ‘continue’, ‘periodic’},
default=’constant’ Determines how to handle values outside the min and max values of the training features:
‘error’: Raises a ValueError.
‘constant’: Uses the spline value at the minimum or maximum feature as
constant extrapolation. - ‘linear’: Applies linear extrapolation. - ‘continue’: Extrapolates as is (equivalent to extrapolate=True in scipy.interpolate.BSpline). - ‘periodic’: Uses periodic splines with a periodicity equal to the distance between the first and last knot, enforcing equal function values and derivatives at these knots.
- with_interceptbool, default=True
- If True, includes a feature in which all polynomial powers are zero (i.e., a column of ones, acting as an intercept term in a linear model).
Examples
>>> from sktime.datasets import load_airline
>>> from sktime.forecasting.trend import SplineTrendForecaster
>>> y = load_airline ()
>>> forecaster = SplineTrendForecaster (
... n_knots = 5,
... degree = 2,
... knots = "uniform",
... extrapolation = "constant"
... )
>>> forecaster. fit (y) SplineTrendForecaster(
... )
>>> y_pred = forecaster. predict (fh = [1, 2, 3 ])