MSTL#
- class MSTL(*, periods: int | Sequence[int] | None = None, windows: int | Sequence[int] | None = None, lmbda: float | str | None = None, iterate: int | None = 2, stl_kwargs: dict[str, int | bool | None] | None = None, return_components: bool = False)[source]#
Season-Trend decomposition using LOESS for multiple seasonalities.
Direct interface for
statsmodels.tsa.seasonal.MSTL
fortransform
, withsktime
native extensions to allow use in forecasting pipelines.MSTL
can be used to perform deseasonalization or decomposition:fit
stores the decomposed values in self.trend_, self.seasonal_, and self.resid_.If
return_components=False
, thentransform
returns a pd.Series of the deseasonalized values, i.e., trend plus residual component. The individual seasonal and residual components can be found in self.trend_ and self.resid_.If
return_components=True
, thentransform
returns a full components decomposition, in a DataFrame with cols (for each input column), in this order:“trend” - the trend component
“resid” - the residuals after de-trending, de-seasonalizing
“seasonal” - a single sum-of-seasonalities component, if
periods
isNone
.“seasonal_<period>” - the seasonal component(s), where <period> is an integer indicating the periodicity, one such component per element in
periods
, ifperiods
is an array-like of integers.
MSTL
performsinverse_transform
by reconstituting the signal from its components, and can be used for pipelining in aTransformedTargetForecaster
, see examples below.if
periods
are provided, the transformation will deseasonalize, and reseasonalize after forecast.if
periods
are not provided, andreturn_components=False
, the forecast will be a pure trend forecast, using sum of trend and residual components.if
return_components=True
, the forecaster has access to all components, and can apply different forecasters to different components.
See the examples below for usage.
For automated detection of seasonalities using a custom seasonality detection algorithm, pipeline
MSTL
with the respective estimator, e.g.,SeasonalityACF
.- Parameters:
- endogarray_like
Data to be decomposed. Must be squeezable to 1-d.
- periods{int, array_like, None}, optional
Periodicity of the seasonal components. If None and endog is a pandas Series or DataFrame, attempts to determine from endog. If endog is a ndarray, periods must be provided.
- windows{int, array_like, None}, optional
Length of the seasonal smoothers for each corresponding period. Must be an odd integer, and should normally be >= 7 (default). If None then default values determined using 7 + 4 * np.arange(1, n + 1, 1) where n is number of seasonal components.
- lmbda{float, str, None}, optional
The lambda parameter for the Box-Cox transform to be applied to endog prior to decomposition. If None, no transform is applied. If
auto
, a value will be estimated that maximizes the log-likelihood function.- iterateint, optional
Number of iterations to use to refine the seasonal component.
- stl_kwargsdict, optional
Arguments to pass to STL.
- return_componentsbool, default=False
if False, will return only the MSTL transformed series, same as trend plus residual component. The resulting series has the same number of columns as the input.
- if True, will return all components of the decomposition,
a multivariate series with DataFrame cols (for each input column):
“trend” - the trend component
“resid” - the residuals after de-trending, de-seasonalizing
“seasonal” - a single sum-of-seasonalities component, if
periods
isNone
. * “seasonal_<period>” - the seasonal component(s),where <period> is an integer indicating the periodicity, one such component per element in
periods
All components together sum up to the original series, in-sample.
- Attributes:
- trend_pd.Series
Trend component of series seen in fit.
- resid_pd.Series
Residuals component of series seen in fit.
- seasonal_pd.DataFrame
If
periods
isNone
, this contains a single column, with the sum of all seasonal components of theX
seen infit
. Ifperiods
is an array-like of integers, this consists of multiple columnsseasonal_<period>
, each corresponding to a seasonal component of the series.
References
[1] https://www.statsmodels.org/dev/generated/statsmodels.tsa.seasonal.MSTL.html
Examples
Simple use case: decompose a time series into trend, seasonal, residual components >>> import matplotlib.pyplot as plt # doctest: +SKIP >>> from sktime.datasets import load_airline >>> from sktime.transformations.series.detrend import MSTL >>> y = load_airline() >>> y.index = y.index.to_timestamp() >>> mstl = MSTL(return_components=True) >>> mstl.fit(y) >>> res = mstl.transform(y) >>> res.plot() # doctest: +SKIP >>> plt.tight_layout() # doctest: +SKIP >>> plt.show() # doctest: +SKIP
MSTL can be pipelined with a forecaster for multiple deseasonalized forecasts. The following example uses a simple trend forecaster, applied to a series deseasonalized with MSTL at periods 2 and 12. After the trend forecast, the seasonal components are added back to the forecast automatically. >>> from sktime.datasets import load_airline >>> from sktime.transformations.series.detrend import MSTL >>> from sktime.forecasting.trend import TrendForecaster >>> >>> mstl_trafo = MSTL(periods=[2, 12]) >>> mstl_deseason_fcst = mstl_trafo * TrendForecaster() >>> y = load_airline() >>> mstl_deseason_fcst.fit(y, fh=[1, 2, 3]) >>> y_pred = mstl_deseason_fcst.predict()
MSTL can also be used to make forecasts using the full component decomposition. For this, set
return_components=True
when pipelining. The forecaster in the pipeline will then be given a multivariate series with the components as columns, i.e., “trend”, “resid”, “seasonal_2”, “seasonal_12”. To apply different forecasters to different components, use aColumnEnsembleForecaster
; to apply the same forecaster to all components, simply pipeline with the forecaster. The following example uses aTrendForecaster
for the trend, a seasonal naive forecaster for the seasonal components, with different seasonalities, and a naive forecaster for the residuals. >>> from sktime.datasets import load_airline >>> from sktime.transformations.series.detrend import MSTL >>> from sktime.forecasting.compose import ColumnEnsembleForecaster >>> from sktime.forecasting.naive import NaiveForecaster >>> from sktime.forecasting.trend import TrendForecaster >>> >>> mstl_trafo_comp = MSTL(periods=[2, 12], return_components=True) >>> mstl_component_fcst = mstl_trafo_comp * ColumnEnsembleForecaster( … [ … (“trend”, TrendForecaster(), “trend”), … (“sp2”, NaiveForecaster(strategy=”last”, sp=2), “seasonal_2”), … (“sp12”, NaiveForecaster(strategy=”last”, sp=12), “seasonal_12”), … (“residual”, NaiveForecaster(strategy=”last”), “resid”), … ] … ) >>> y = load_airline() >>> mstl_component_fcst.fit(y, fh=[1, 2, 3]) >>> y_pred = mstl_component_fcst.predict()Methods
Check if the estimator has been fitted.
clone
()Obtain a clone of the object with same hyper-parameters.
clone_tags
(estimator[, tag_names])Clone 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
(X[, y])Fit transformer to X, optionally to y.
fit_transform
(X[, y])Fit to data, then transform it.
get_class_tag
(tag_name[, tag_value_default])Get a class tag's value.
Get class tags from the class and all its parent classes.
Get config flags for self.
get_fitted_params
([deep])Get fitted parameters.
Get object's parameter defaults.
get_param_names
([sort])Get object's parameter names.
get_params
([deep])Get a dict of parameters values for this object.
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
(X[, y])Inverse transform X and return an inverse transformed version.
Check if the object is composed of other BaseObjects.
load_from_path
(serial)Load object from file location.
load_from_serial
(serial)Load object from serialized memory container.
reset
()Reset the object to a clean post-init state.
save
([path, serialization_format])Save serialized self to bytes-like object or to (.zip) file.
set_config
(**config_dict)Set config flags to given values.
set_params
(**params)Set the parameters of this object.
set_random_state
([random_state, deep, ...])Set random_state pseudo-random seed parameters for self.
set_tags
(**tag_dict)Set dynamic tags to given values.
transform
(X[, y])Transform X and return a transformed version.
update
(X[, y, update_params])Update transformer with X, optionally y.
- 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. There are currently no reserved values for forecasters.
- 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)
orMyClass(**params[i])
creates a valid test instance.create_test_instance
uses the first (or only) dictionary in `params
- check_is_fitted()[source]#
Check if the estimator has been fitted.
- Raises:
- NotFittedError
If the estimator has not been fitted yet.
- clone()[source]#
Obtain a clone of the object with same hyper-parameters.
A clone is a different object without shared references, in post-init state. This function is equivalent to returning sklearn.clone of self.
- Raises:
- RuntimeError if the clone is non-conforming, due to faulty
__init__
.
- RuntimeError if the clone is non-conforming, due to faulty
Notes
If successful, equal in value to
type(self)(**self.get_params(deep=False))
.
- clone_tags(estimator, tag_names=None)[source]#
Clone 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__}
- fit(X, y=None)[source]#
Fit transformer to X, optionally to y.
- State change:
Changes state to “fitted”.
Writes to self:
Sets fitted model attributes ending in “_”, fitted attributes are inspectable via
get_fitted_params
.Sets
self.is_fitted
flag toTrue
.if
self.get_tag("remember_data")
isTrue
, memorizes X asself._X
, coerced toself.get_tag("X_inner_mtype")
.
- Parameters:
- Xtime series in
sktime
compatible data container format Data to fit transform to.
Individual data formats in
sktime
are so-called mtype specifications, each mtype implements an abstract scitype.Series
scitype = individual time series.pd.DataFrame
,pd.Series
, ornp.ndarray
(1D or 2D)Panel
scitype = collection of time series.pd.DataFrame
with 2-level rowMultiIndex
(instance, time)
,3D np.ndarray
(instance, variable, time)
,list
ofSeries
typedpd.DataFrame
Hierarchical
scitype = hierarchical collection of time series.pd.DataFrame
with 3 or more level rowMultiIndex
(hierarchy_1, ..., hierarchy_n, time)
For further details on data format, see glossary on mtype. For usage, see transformer tutorial
examples/03_transformers.ipynb
- yoptional, data in sktime compatible data format, default=None
Additional data, e.g., labels for transformation If
self.get_tag("requires_y")
isTrue
, must be passed infit
, not optional. For required format, see class docstring for details.
- Xtime series in
- Returns:
- selfa fitted instance of the estimator
- 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: _is_fitted : flag is set to True. _X : X, coerced copy of X, if remember_data tag is True
possibly coerced to inner type or update_data compatible type by reference, when possible
model attributes (ending in “_”) : dependent on estimator
- Parameters:
- Xtime series in
sktime
compatible data container format Data to fit transform to, and data to transform.
Individual data formats in
sktime
are so-called mtype specifications, each mtype implements an abstract scitype.Series
scitype = individual time series.pd.DataFrame
,pd.Series
, ornp.ndarray
(1D or 2D)Panel
scitype = collection of time series.pd.DataFrame
with 2-level rowMultiIndex
(instance, time)
,3D np.ndarray
(instance, variable, time)
,list
ofSeries
typedpd.DataFrame
Hierarchical
scitype = hierarchical collection of time series.pd.DataFrame
with 3 or more level rowMultiIndex
(hierarchy_1, ..., hierarchy_n, time)
For further details on data format, see glossary on mtype. For usage, see transformer tutorial
examples/03_transformers.ipynb
- yoptional, data in sktime compatible data format, default=None
Additional data, e.g., labels for transformation If
self.get_tag("requires_y")
isTrue
, must be passed infit
, not optional. For required format, see class docstring for details.
- Xtime series in
- 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 a class tag’s value.
Does not return information from dynamic tags (set via set_tags or clone_tags) that are defined on instances.
- Parameters:
- tag_namestr
Name of tag value.
- tag_value_defaultany
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 the class and all its parent classes.
Retrieves tag: value pairs from _tags class attribute. Does not return information from dynamic tags (set via set_tags or clone_tags) that are defined on instances.
- Returns:
- collected_tagsdict
Dictionary of class tag name: tag value pairs. Collected from _tags class attribute via nested inheritance.
- get_config()[source]#
Get config flags for self.
- Returns:
- config_dictdict
Dictionary of config name : config value pairs. Collected from _config class attribute via nested inheritance and then any overrides and new tags from _onfig_dynamic object attribute.
- get_fitted_params(deep=True)[source]#
Get fitted parameters.
- State required:
Requires state to be “fitted”.
- Parameters:
- deepbool, default=True
Whether to return fitted parameters of components.
If True, will return a dict of parameter name : value for this object, including fitted parameters of fittable components (= BaseEstimator-valued parameters).
If False, will return a dict of parameter name : value for this object, but not include fitted parameters of components.
- Returns:
- fitted_paramsdict with str-valued keys
Dictionary of fitted parameters, paramname : paramvalue keys-value pairs include:
always: all fitted parameters of this object, as via get_param_names values are fitted parameter value for that key, of this object
if deep=True, also contains keys/value pairs of component parameters parameters of components are indexed as [componentname]__[paramname] all parameters of componentname appear as paramname with its value
if deep=True, also contains arbitrary levels of component recursion, e.g., [componentname]__[componentcomponentname]__[paramname], etc
- classmethod get_param_defaults()[source]#
Get object’s parameter defaults.
- Returns:
- default_dict: dict[str, Any]
Keys are all parameters of cls that have a default defined in __init__ values are the defaults, as defined in __init__.
- classmethod get_param_names(sort=True)[source]#
Get object’s parameter names.
- Parameters:
- sortbool, default=True
Whether to return the parameter names sorted in alphabetical order (True), or in the order they appear in the class
__init__
(False).
- Returns:
- param_names: list[str]
List of parameter names of cls. If
sort=False
, in same order as they appear in the class__init__
. Ifsort=True
, alphabetically ordered.
- get_params(deep=True)[source]#
Get a dict of parameters values for this object.
- Parameters:
- deepbool, default=True
Whether to return parameters of components.
If True, will return a dict of parameter name : value for this object, including parameters of components (= BaseObject-valued parameters).
If False, will return a dict of parameter name : value for this object, but not include parameters of components.
- Returns:
- paramsdict with str-valued keys
Dictionary of parameters, paramname : paramvalue keys-value pairs include:
always: all parameters of this object, as via get_param_names values are parameter value for that key, of this object values are always identical to values passed at construction
if deep=True, also contains keys/value pairs of component parameters parameters of components are indexed as [componentname]__[paramname] all parameters of componentname appear as paramname with its value
if deep=True, also contains arbitrary levels of component recursion, e.g., [componentname]__[componentcomponentname]__[paramname], etc
- 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_valueAny
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.
- inverse_transform(X, y=None)[source]#
Inverse transform X and return an inverse transformed version.
- Currently it is assumed that only transformers with tags
“scitype:transform-input”=”Series”, “scitype:transform-output”=”Series”,
have an inverse_transform.
- State required:
Requires state to be “fitted”.
Accesses in self:
Fitted model attributes ending in “_”.
self.is_fitted
, must be True
- Parameters:
- Xtime series in
sktime
compatible data container format Data to fit transform to.
Individual data formats in
sktime
are so-called mtype specifications, each mtype implements an abstract scitype.Series
scitype = individual time series.pd.DataFrame
,pd.Series
, ornp.ndarray
(1D or 2D)Panel
scitype = collection of time series.pd.DataFrame
with 2-level rowMultiIndex
(instance, time)
,3D np.ndarray
(instance, variable, time)
,list
ofSeries
typedpd.DataFrame
Hierarchical
scitype = hierarchical collection of time series.pd.DataFrame
with 3 or more level rowMultiIndex
(hierarchy_1, ..., hierarchy_n, time)
For further details on data format, see glossary on mtype. For usage, see transformer tutorial
examples/03_transformers.ipynb
- yoptional, data in sktime compatible data format, default=None
Additional data, e.g., labels for transformation. Some transformers require this, see class docstring for details.
- Xtime series in
- Returns:
- inverse transformed version of X
of the same type as X, and conforming to mtype format specifications
- is_composite()[source]#
Check if the object is composed of other BaseObjects.
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 an object has any parameters whose values are BaseObjects.
- classmethod load_from_path(serial)[source]#
Load object from file location.
- Parameters:
- serialresult of ZipFile(path).open(“object)
- Returns:
- deserialized self resulting in output at
path
, ofcls.save(path)
- deserialized self resulting in output at
- classmethod load_from_serial(serial)[source]#
Load object from serialized memory container.
- Parameters:
- serial1st element of output of
cls.save(None)
- serial1st element of output of
- Returns:
- deserialized self resulting in output
serial
, ofcls.save(None)
- deserialized self resulting in output
- reset()[source]#
Reset the object to a clean post-init state.
Using reset, runs __init__ with current values of hyper-parameters (result of get_params). This Removes any object attributes, except:
hyper-parameters = arguments of __init__
object attributes containing double-underscores, i.e., the string “__”
Class and object methods, and class attributes are also unaffected.
- Returns:
- self
Instance of class reset to a clean post-init state but retaining the current hyper-parameter values.
Notes
Equivalent to sklearn.clone but overwrites self. After self.reset() call, self is equal in value to type(self)(**self.get_params(deep=False))
- save(path=None, serialization_format='pickle')[source]#
Save serialized self to bytes-like object or to (.zip) file.
Behaviour: if
path
is None, returns an in-memory serialized self ifpath
is a file location, stores self at that location as a zip filesaved files are zip files with following contents: _metadata - contains class of self, i.e., type(self) _obj - serialized self. This class uses the default serialization (pickle).
- Parameters:
- pathNone or file location (str or Path)
if None, self is saved to an in-memory object if file location, self is saved to that file location. If:
path=”estimator” then a zip file
estimator.zip
will be made at cwd. path=”/home/stored/estimator” then a zip fileestimator.zip
will be stored in/home/stored/
.- serialization_format: str, default = “pickle”
Module to use for serialization. The available options are “pickle” and “cloudpickle”. Note that non-default formats might require installation of other soft dependencies.
- Returns:
- if
path
is None - in-memory serialized self - if
path
is file location - ZipFile with reference to the file
- if
- set_config(**config_dict)[source]#
Set config flags to given values.
- Parameters:
- config_dictdict
Dictionary of config name : config value pairs. Valid configs, values, and their meaning is listed below:
- displaystr, “diagram” (default), or “text”
how jupyter kernels display instances of self
“diagram” = html box diagram representation
“text” = string printout
- print_changed_onlybool, default=True
whether printing of self lists only self-parameters that differ from defaults (False), or all parameter names and values (False). Does not nest, i.e., only affects self and not component estimators.
- warningsstr, “on” (default), or “off”
whether to raise warnings, affects warnings from sktime only
“on” = will raise warnings from sktime
“off” = will not raise warnings from sktime
- backend:parallelstr, optional, default=”None”
backend to use for parallelization when broadcasting/vectorizing, one of
“None”: executes loop sequentally, simple list comprehension
“loky”, “multiprocessing” and “threading”: uses
joblib.Parallel
“joblib”: custom and 3rd party
joblib
backends, e.g.,spark
“dask”: uses
dask
, requiresdask
package in environment
- backend:parallel:paramsdict, optional, default={} (no parameters passed)
additional parameters passed to the parallelization backend as config. Valid keys depend on the value of
backend:parallel
:“None”: no additional parameters,
backend_params
is ignored“loky”, “multiprocessing” and “threading”: default
joblib
backends any valid keys forjoblib.Parallel
can be passed here, e.g.,n_jobs
, with the exception ofbackend
which is directly controlled bybackend
. Ifn_jobs
is not passed, it will default to-1
, other parameters will default tojoblib
defaults.“joblib”: custom and 3rd party
joblib
backends, e.g.,spark
. Any valid keys forjoblib.Parallel
can be passed here, e.g.,n_jobs
,backend
must be passed as a key ofbackend_params
in this case. Ifn_jobs
is not passed, it will default to-1
, other parameters will default tojoblib
defaults.“dask”: any valid keys for
dask.compute
can be passed, e.g.,scheduler
- input_conversionstr, one of “on” (default), “off”, or valid mtype string
controls input checks and conversions, for
_fit
,_transform
,_inverse_transform
,_update
"on"
- input check and conversion is carried out"off"
- input check and conversion are not carried out before passing data to inner methodsvalid mtype string - input is assumed to specified mtype, conversion is carried out but no check
- output_conversionstr, one of “on”, “off”, valid mtype string
controls output conversion for
_transform
,_inverse_transform
"on"
- if input_conversion is “on”, output conversion is carried out"off"
- output of_transform
,_inverse_transform
is directly returnedvalid mtype string - output is converted to specified mtype
- Returns:
- selfreference to self.
Notes
Changes object state, copies configs in config_dict to self._config_dynamic.
- set_params(**params)[source]#
Set the parameters of this object.
The method works on simple estimators as well as on composite objects. Parameter key strings
<component>__<parameter>
can be used for composites, i.e., objects that contain other objects, to access<parameter>
in the component<component>
. The string<parameter>
, without<component>__
, can also be used if this makes the reference unambiguous, e.g., there are no two parameters of components with the name<parameter>
.- Parameters:
- **paramsdict
BaseObject parameters, keys must be
<component>__<parameter>
strings. __ suffixes can alias full strings, if unique among get_params keys.
- Returns:
- selfreference to self (after parameters have been set)
- set_random_state(random_state=None, deep=True, self_policy='copy')[source]#
Set random_state pseudo-random seed parameters for self.
Finds
random_state
named parameters viaestimator.get_params
, and sets them to integers derived fromrandom_state
viaset_params
. These integers are sampled from chain hashing viasample_dependent_seed
, and guarantee pseudo-random independence of seeded random generators.Applies to
random_state
parameters inestimator
depending onself_policy
, and remaining component estimators if and only ifdeep=True
.Note: calls
set_params
even ifself
does not have arandom_state
, or none of the components have arandom_state
parameter. Therefore,set_random_state
will reset anyscikit-base
estimator, even those without arandom_state
parameter.- Parameters:
- random_stateint, RandomState instance or None, default=None
Pseudo-random number generator to control the generation of the random integers. Pass int for reproducible output across multiple function calls.
- deepbool, default=True
Whether to set the random state in sub-estimators. If False, will set only
self
’srandom_state
parameter, if exists. If True, will setrandom_state
parameters in sub-estimators as well.- self_policystr, one of {“copy”, “keep”, “new”}, default=”copy”
“copy” :
estimator.random_state
is set to inputrandom_state
“keep” :
estimator.random_state
is kept as is“new” :
estimator.random_state
is set to a new random state,
derived from input
random_state
, and in general different from it
- Returns:
- selfreference to self
- 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 setting tag values in tag_dict as dynamic tags in self.
- transform(X, y=None)[source]#
Transform X and return a transformed version.
- State required:
Requires state to be “fitted”.
Accesses in self:
Fitted model attributes ending in “_”.
self.is_fitted
, must be True
- Parameters:
- Xtime series in
sktime
compatible data container format Data to transform.
Individual data formats in
sktime
are so-called mtype specifications, each mtype implements an abstract scitype.Series
scitype = individual time series.pd.DataFrame
,pd.Series
, ornp.ndarray
(1D or 2D)Panel
scitype = collection of time series.pd.DataFrame
with 2-level rowMultiIndex
(instance, time)
,3D np.ndarray
(instance, variable, time)
,list
ofSeries
typedpd.DataFrame
Hierarchical
scitype = hierarchical collection of time series.pd.DataFrame
with 3 or more level rowMultiIndex
(hierarchy_1, ..., hierarchy_n, time)
For further details on data format, see glossary on mtype. For usage, see transformer tutorial
examples/03_transformers.ipynb
- yoptional, data in sktime compatible data format, default=None
Additional data, e.g., labels for transformation. Some transformers require this, see class docstring for details.
- Xtime series in
- Returns:
- transformed version of X
- type depends on type of X and scitype:transform-output tag:
transform
X
-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
- 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
, must be True
Writes to self:
Fitted model attributes ending in “_”.
if
remember_data
tag is True, writes toself._X
, updated by values inX
, viaupdate_data
.
- Parameters:
- Xtime series in
sktime
compatible data container format Data to update transformation with
Individual data formats in
sktime
are so-called mtype specifications, each mtype implements an abstract scitype.Series
scitype = individual time series.pd.DataFrame
,pd.Series
, ornp.ndarray
(1D or 2D)Panel
scitype = collection of time series.pd.DataFrame
with 2-level rowMultiIndex
(instance, time)
,3D np.ndarray
(instance, variable, time)
,list
ofSeries
typedpd.DataFrame
Hierarchical
scitype = hierarchical collection of time series.pd.DataFrame
with 3 or more level rowMultiIndex
(hierarchy_1, ..., hierarchy_n, time)
For further details on data format, see glossary on mtype. For usage, see transformer tutorial
examples/03_transformers.ipynb
- yoptional, data in sktime compatible data format, default=None
Additional data, e.g., labels for transformation. Some transformers require this, see class docstring for details.
- Xtime series in
- Returns:
- selfa fitted instance of the estimator