STLTransformer#
- class STLTransformer(sp=2, seasonal=7, trend=None, low_pass=None, seasonal_deg=1, trend_deg=1, low_pass_deg=1, robust=False, seasonal_jump=1, trend_jump=1, low_pass_jump=1)[source]#
Remove seasonal components from a time-series using STL.
The STLTransformer is a descriptive transformer to remove seasonality from a series and is based on statsmodels.STL. It returns deseasonalized data. All three components trend, season and residuals can be accessed via attributes trend_, season_ and resid_. STLTransformer can not transform or inverse_transform on data that was not given in fit() before. This means that for pipelining, the Deseasonalizer or Detrender must be used instead of STLTransformer.
- Parameters
- spint, default=1
Seasonal periodicity.
- seasonalint, default=7
Length of the seasonal smoother. Must be an odd integer, and should normally be >= 7 (default).
- trend{int, default=None}
Length of the trend smoother. Must be an odd integer. If not provided uses the smallest odd integer greater than 1.5 * period / (1 - 1.5 / seasonal), following the suggestion in the original implementation.
- low_pass{int, default=None}
Length of the low-pass filter. Must be an odd integer >=3. If not provided, uses the smallest odd integer > period.
- seasonal_degint, default=1
Degree of seasonal LOESS. 0 (constant) or 1 (constant and trend).
- trend_degint, default=1
Degree of trend LOESS. 0 (constant) or 1 (constant and trend).
- low_pass_degint, default=1
Degree of low pass LOESS. 0 (constant) or 1 (constant and trend).
- robustbool, default False
Flag indicating whether to use a weighted version that is robust to some forms of outliers.
- seasonal_jumpint, default=1
Positive integer determining the linear interpolation step. If larger than 1, the LOESS is used every seasonal_jump points and linear interpolation is between fitted points. Higher values reduce estimation time.
- trend_jumpint, default=1
Positive integer determining the linear interpolation step. If larger than 1, the LOESS is used every trend_jump points and values between the two are linearly interpolated. Higher values reduce estimation time.
- low_pass_jumpint, default=1
Positive integer determining the linear interpolation step. If larger than 1, the LOESS is used every low_pass_jump points and values between the two are linearly interpolated. Higher values reduce estimation time.
- Attributes
- trend_pd.Series
Trend component.
- seasonal_pd.Series
Seasonal components.
- resid_pd.Series
Residuals component.
See also
DetrenderDeseasonalizerSTLForecaster
References
Examples
>>> from sktime.datasets import load_airline >>> from sktime.transformations.series.detrend import STLTransformer >>> y = load_airline() >>> transformer = STLTransformer(sp=12) >>> y_hat = transformer.fit_transform(y)
Methods
Check if the estimator has been fitted.
clone_tags(estimator[, tag_names])clone/mirror tags from another estimator as dynamic override.
create_test_instance([parameter_set])Construct Estimator instance if possible.
create_test_instances_and_names([parameter_set])Create list of all test instances and a list of names for them.
fit(Z[, X])Fit to data.
fit_transform(X[, y])Fit to data, then transform it.
get_class_tag(tag_name[, tag_value_default])Get tag value from estimator class (only class tags).
Get class tags from estimator class and all its parent classes.
get_params([deep])Get parameters for this estimator.
get_tag(tag_name[, tag_value_default, …])Get tag value from estimator class and dynamic tag overrides.
get_tags()Get tags from estimator class and dynamic tag overrides.
get_test_params([parameter_set])Return testing parameter settings for the estimator.
inverse_transform(Z[, X])Inverse transform data.
Check if the object is composite.
reset()Reset the object to a clean post-init state.
set_params(**params)Set the parameters of this estimator.
set_tags(**tag_dict)Set dynamic tags to given values.
transform(Z[, X])Transform data.
update(X[, y, update_params])Update transformer with X, optionally y.
- fit(Z, X=None)[source]#
Fit to data.
- Parameters
- Zpd.Series
- Xpd.DataFrame
- Returns
- selfan instance of self
- transform(Z, X=None)[source]#
Transform data.
Returns a transformed version yt of y. The seasonal component is removed from y. The trend and residual components can be accessed via the attributes trend_ and resid_ for the fitted data.
- Parameters
- ypd.Series
- Xpd.DataFrame
- Returns
- ytpd.Series
- inverse_transform(Z, X=None)[source]#
Inverse transform data.
Returns a transformed version of y.
- Parameters
- ypd.Series
- Xpd.DataFrame
- Returns
- ytpd.Series
Transformed time series.
- check_is_fitted()[source]#
Check if the estimator has been fitted.
- Raises
- NotFittedError
If the estimator has not been fitted yet.
- clone_tags(estimator, tag_names=None)[source]#
clone/mirror tags from another estimator as dynamic override.
- Parameters
- estimatorestimator inheriting from :class:BaseEstimator
- tag_namesstr or list of str, default = None
Names of tags to clone. If None then all tags in estimator are used as tag_names.
- Returns
- Self
Reference to self.
Notes
Changes object state by setting tag values in tag_set from estimator as dynamic tags in self.
- classmethod create_test_instance(parameter_set='default')[source]#
Construct Estimator instance if possible.
- Parameters
- parameter_setstr, default=”default”
Name of the set of test parameters to return, for use in tests. If no special parameters are defined for a value, will return “default” set.
- Returns
- instanceinstance of the class with default parameters
Notes
get_test_params can return dict or list of dict. This function takes first or single dict that get_test_params returns, and constructs the object with that.
- classmethod create_test_instances_and_names(parameter_set='default')[source]#
Create list of all test instances and a list of names for them.
- Parameters
- parameter_setstr, default=”default”
Name of the set of test parameters to return, for use in tests. If no special parameters are defined for a value, will return “default” set.
- Returns
- objslist of instances of cls
i-th instance is cls(**cls.get_test_params()[i])
- nameslist of str, same length as objs
i-th element is name of i-th instance of obj in tests convention is {cls.__name__}-{i} if more than one instance otherwise {cls.__name__}
- parameter_setstr, default=”default”
Name of the set of test parameters to return, for use in tests. If no special parameters are defined for a value, will return “default” set.
- fit_transform(X, y=None)[source]#
Fit to data, then transform it.
Fits the transformer to X and y and returns a transformed version of X.
- State change:
Changes state to “fitted”.
- Writes to self:
Sets is_fitted flag to True. Sets fitted model attributes ending in “_”.
- Parameters
- XSeries or Panel, any supported mtype
- Data to be transformed, of python type as follows:
Series: pd.Series, pd.DataFrame, or np.ndarray (1D or 2D) Panel: pd.DataFrame with 2-level MultiIndex, list of pd.DataFrame,
nested pd.DataFrame, or pd.DataFrame in long/wide format
- subject to sktime mtype format specifications, for further details see
examples/AA_datatypes_and_datasets.ipynb
- ySeries or Panel, default=None
Additional data, e.g., labels for transformation
- Returns
- transformed version of X
- type depends on type of X and scitype:transform-output tag:
- X | tf-output | type of return |
|----------|————–|------------------------| | Series | Primitives | pd.DataFrame (1-row) | | Panel | Primitives | pd.DataFrame | | Series | Series | Series | | Panel | Series | Panel | | Series | Panel | Panel |
- instances in return correspond to instances in X
- combinations not in the table are currently not supported
- Explicitly, with examples:
- if X is Series (e.g., pd.DataFrame) and transform-output is Series
then the return is a single Series of the same mtype Example: detrending a single series
- if X is Panel (e.g., pd-multiindex) and transform-output is Series
- then the return is Panel with same number of instances as X
(the transformer is applied to each input Series instance)
Example: all series in the panel are detrended individually
- if X is Series or Panel and transform-output is Primitives
then the return is pd.DataFrame with as many rows as instances in X Example: i-th row of the return has mean and variance of the i-th series
- if X is Series and transform-output is Panel
then the return is a Panel object of type pd-multiindex Example: i-th instance of the output is the i-th window running over X
- classmethod get_class_tag(tag_name, tag_value_default=None)[source]#
Get tag value from estimator class (only class tags).
- Parameters
- tag_namestr
Name of tag value.
- tag_value_defaultany type
Default/fallback value if tag is not found.
- Returns
- tag_value
Value of the tag_name tag in self. If not found, returns tag_value_default.
- classmethod get_class_tags()[source]#
Get class tags from estimator class and all its parent classes.
- Returns
- collected_tagsdict
Dictionary of tag name : tag value pairs. Collected from _tags class attribute via nested inheritance. NOT overridden by dynamic tags set by set_tags or mirror_tags.
- get_params(deep=True)[source]#
Get parameters for this estimator.
- Parameters
- deepbool, default=True
If True, will return the parameters for this estimator and contained subobjects that are estimators.
- Returns
- paramsdict
Parameter names mapped to their values.
- get_tag(tag_name, tag_value_default=None, raise_error=True)[source]#
Get tag value from estimator class and dynamic tag overrides.
- Parameters
- tag_namestr
Name of tag to be retrieved
- tag_value_defaultany type, optional; default=None
Default/fallback value if tag is not found
- raise_errorbool
whether a ValueError is raised when the tag is not found
- Returns
- tag_value
Value of the tag_name tag in self. If not found, returns an error if raise_error is True, otherwise it returns tag_value_default.
- Raises
- ValueError if raise_error is True i.e. if tag_name is not in self.get_tags(
- ).keys()
- get_tags()[source]#
Get tags from estimator class and dynamic tag overrides.
- Returns
- collected_tagsdict
Dictionary of tag name : tag value pairs. Collected from _tags class attribute via nested inheritance and then any overrides and new tags from _tags_dynamic object attribute.
- classmethod get_test_params(parameter_set='default')[source]#
Return testing parameter settings for the estimator.
- Parameters
- parameter_setstr, default=”default”
Name of the set of test parameters to return, for use in tests. If no special parameters are defined for a value, will return “default” set.
- Returns
- paramsdict or list of dict, default = {}
Parameters to create testing instances of the class Each dict are parameters to construct an “interesting” test instance, i.e., MyClass(**params) or MyClass(**params[i]) creates a valid test instance. create_test_instance uses the first (or only) dictionary in params
- is_composite()[source]#
Check if the object is composite.
A composite object is an object which contains objects, as parameters. Called on an instance, since this may differ by instance.
- Returns
- composite: bool, whether self contains a parameter which is BaseObject
- reset()[source]#
Reset the object to a clean post-init state.
Equivalent to sklearn.clone but overwrites self. After self.reset() call, self is equal in value to type(self)(**self.get_params(deep=False))
Detail behaviour: removes any object attributes, except:
hyper-parameters = arguments of __init__ object attributes containing double-underscores, i.e., the string “__”
runs __init__ with current values of hyper-parameters (result of get_params)
Not affected by the reset are: object attributes containing double-underscores class and object methods, class attributes
- set_params(**params)[source]#
Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects (such as
Pipeline). The latter have parameters of the form<component>__<parameter>so that it’s possible to update each component of a nested object.- Parameters
- **paramsdict
Estimator parameters.
- Returns
- selfestimator instance
Estimator instance.
- set_tags(**tag_dict)[source]#
Set dynamic tags to given values.
- Parameters
- tag_dictdict
Dictionary of tag name : tag value pairs.
- Returns
- Self
Reference to self.
Notes
Changes object state by settting tag values in tag_dict as dynamic tags in self.
- update(X, y=None, update_params=True)[source]#
Update transformer with X, optionally y.
- State required:
Requires state to be “fitted”.
- Accesses in self:
Fitted model attributes ending in “_”. self._is_fitted
- Writes to self:
May update fitted model attributes ending in “_”.
- Parameters
- XSeries or Panel, any supported mtype
- Data to fit transform to, of python type as follows:
Series: pd.Series, pd.DataFrame, or np.ndarray (1D or 2D) Panel: pd.DataFrame with 2-level MultiIndex, list of pd.DataFrame,
nested pd.DataFrame, or pd.DataFrame in long/wide format
- subject to sktime mtype format specifications, for further details see
examples/AA_datatypes_and_datasets.ipynb
- ySeries or Panel, default=None
Additional data, e.g., labels for transformation
- update_paramsbool, default=True
whether the model is updated. Yes if true, if false, simply skips call. argument exists for compatibility with forecasting module.
- Returns
- selfa fitted instance of the estimator