MultiRocket¶
- class MultiRocket(num_kernels=6250, max_dilations_per_kernel=32, n_features_per_kernel=4, normalise=False, n_jobs=1, random_state=None)[source]¶
Multi RandOm Convolutional KErnel Transform (MultiRocket).
MultiRocket [1] uses the same set of kernels as MiniRocket on both the raw series and the first order differenced series representation. It uses a different set of dilations and used for each representation. In addition to percentage of positive values (PPV), MultiRocket adds 3 pooling operators: Mean of Positive Values (MPV); Mean of Indices of Positive Values (MIPV); and Longest Stretch of Positive Values (LSPV).
- Parameters:
- num_kernelsint, default = 6,250
Number of random convolutional kernels. The calculated number of features is the nearest multiple of
n_features_per_kernel(default 4)*84=336 < 50,000
(2*n_features_per_kernel(default 4)*num_kernels(default 6,250)
).- max_dilations_per_kernelint, default = 32
Maximum number of dilations per kernel.
- n_features_per_kernelint, default = 4
Number of features per kernel.
- normalisebool, default False
Whether or not to normalise the input time series per instance.
- n_jobsint, default=1
The number of jobs to run in parallel for transform.
-1
means using all processors.- random_stateNone or int, default = None
Seed for random number generation.
- Attributes:
- parametertuple
Parameter (dilations, n_features_per_dilation, biases) for transformation of input X.
- parameter1tuple
Parameter (dilations, n_features_per_dilation, biases) for transformation of input
X1 = np.diff(X, 1)
.
See also
References
[1]Tan, Chang Wei and Dempster, Angus and Bergmeir, Christoph and
Webb, Geoffrey I, “MultiRocket: Multiple pooling operators and transformations for fast and effective time series classification”,2022, https://link.springer.com/article/10.1007/s10618-022-00844-1 https://arxiv.org/abs/2102.00457
Examples
>>> from aeon.transformations.collection.convolution_based import MultiRocket >>> from aeon.datasets import load_unit_test >>> X_train, y_train = load_unit_test(split="train") >>> X_test, y_test = load_unit_test(split="test") >>> trf = MultiRocket(num_kernels=512) >>> trf.fit(X_train) MultiRocket(num_kernels=512) >>> X_train = trf.transform(X_train) >>> X_test = trf.transform(X_test)
Methods
Check if the estimator has been fitted.
clone
([random_state])Obtain a clone of the object with the same hyperparameters.
create_test_instance
([parameter_set, ...])Construct Estimator instance if possible.
fit
(X[, y])Fit transformer to X, optionally using y if supervised.
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_fitted_params
([deep])Get fitted parameters.
Get metadata routing of this object.
get_params
([deep])Get parameters for this estimator.
get_tag
(tag_name[, tag_value_default, ...])Get tag value from estimator class.
get_tags
()Get tags from estimator.
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.
load_from_path
(serial)Load object from file location.
load_from_serial
(serial)Load object from serialized memory container.
reset
([keep])Reset the object to a clean post-init state.
save
([path])Save serialized self to bytes-like object or to (.zip) file.
set_params
(**params)Set the parameters of this estimator.
set_tags
(**tag_dict)Set dynamic tags to given values.
transform
(X[, y])Transform X and return a transformed version.
- check_is_fitted()[source]¶
Check if the estimator has been fitted.
- Raises:
- NotFittedError
If the estimator has not been fitted yet.
- clone(random_state=None)[source]¶
Obtain a clone of the object with the same hyperparameters.
A clone is a different object without shared references, in post-init state. This function is equivalent to returning
sklearn.clone
of self. Equal in value totype(self)(**self.get_params(deep=False))
.- Parameters:
- random_stateint, RandomState instance, or None, default=None
Sets the random state of the clone. If None, the random state is not set. If int, random_state is the seed used by the random number generator. If RandomState instance, random_state is the random number generator.
- Returns:
- estimatorobject
Instance of
type(self)
, clone of self (see above)
- classmethod create_test_instance(parameter_set='default', return_first=True)[source]¶
Construct Estimator instance if possible.
Calls the get_test_params method and returns an instance or list of instances using the returned dict or list of dict.
- 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.
- return_firstbool, default=True
If True, return the first instance of the list of instances. If False, return the list of instances.
- Returns:
- instanceBaseAeonEstimator or list of BaseAeonEstimator
Instance of the class with default parameters. If return_first is False, returns list of instances.
- fit(X, y=None)[source]¶
Fit transformer to X, optionally using y if supervised.
- State change:
Changes state to “fitted”.
Writes to self: _is_fitted : flag is set to True. model attributes (ending in “_”) : dependent on estimator
- Parameters:
- Xnp.ndarray or list
Input data, any number of channels, equal length series of shape
( n_cases, n_channels, n_timepoints)
or list of numpy arrays (any number of channels, unequal length series) of shape[n_cases]
, 2D np.array(n_channels, n_timepoints_i)
, wheren_timepoints_i
is length of seriesi
. Other types are allowed and converted into one of the above.Different estimators have different capabilities to handle different types of input. If self.get_tag(“capability:multivariate”)` is False, they cannot handle multivariate series. If
self.get_tag( "capability:unequal_length")
is False, they cannot handle unequal length input. In both situations, aValueError
is raised if X has a characteristic that the estimator does not have the capability to handle.Data to fit transform to, of valid collection type.
- ynp.ndarray, default=None
1D np.array of float or str, of shape
(n_cases)
- class labels (ground truth) for fitting indices corresponding to instance indices in X. If None, no labels are used in fitting.
- 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. model attributes (ending in “_”) : dependent on estimator.
- Parameters:
- Xnp.ndarray or list
Input data, any number of channels, equal length series of shape
( n_cases, n_channels, n_timepoints)
or list of numpy arrays (any number of channels, unequal length series) of shape[n_cases]
, 2D np.array(n_channels, n_timepoints_i)
, wheren_timepoints_i
is length of seriesi
. Other types are allowed and converted into one of the above.Different estimators have different capabilities to handle different types of input. If self.get_tag(“capability:multivariate”)` is False, they cannot handle multivariate series. If
self.get_tag( "capability:unequal_length")
is False, they cannot handle unequal length input. In both situations, aValueError
is raised if X has a characteristic that the estimator does not have the capability to handle.Data to fit transform to, of valid collection type.
- ynp.ndarray, default=None
1D np.array of float or str, of shape
(n_cases)
- class labels (ground truth) for fitting indices corresponding to instance indices in X. If None, no labels are used in fitting.
- Returns:
- transformed version of X
- classmethod get_class_tag(tag_name, tag_value_default=None, raise_error=False)[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.
- 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
andtag_name
is not inself.get_tags().keys()
Examples
>>> from aeon.classification import DummyClassifier >>> DummyClassifier.get_class_tag("capability:multivariate") True
- classmethod get_class_tags()[source]¶
Get class tags from estimator class and all its parent classes.
- Returns:
- collected_tagsdict
Dictionary of tag name and tag value pairs. Collected from
_tags
class attribute via nested inheritance. These are not overridden by dynamic tags set byset_tags
or class__init__
calls.
- 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 (= BaseAeonEstimator-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
if
deep=True
, also contains keys/value pairs of component parameters parameters of components are indexed as[componentname]__[paramname]
all parameters ofcomponentname
appear asparamname
with its valueif
deep=True
, also contains arbitrary levels of component recursion, e.g.,[componentname]__[componentcomponentname]__[paramname]
, etc.
- get_metadata_routing()[source]¶
Get metadata routing of this object.
Please check User Guide on how the routing mechanism works.
- Returns:
- routingMetadataRequest
A
MetadataRequest
encapsulating routing information.
- 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.
Includes dynamic and overridden tags.
- Parameters:
- tag_namestr
Name of tag to be retrieved.
- tag_value_defaultany type, 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
andtag_name
is not inself.get_tags().keys()
Examples
>>> from aeon.classification import DummyClassifier >>> d = DummyClassifier() >>> d.get_tag("capability:multivariate") True
- get_tags()[source]¶
Get tags from estimator.
Includes dynamic and overridden tags.
- Returns:
- collected_tagsdict
Dictionary of tag name and tag value pairs. Collected from
_tags
class attribute via nested inheritance and then any overridden and new tags from__init__
orset_tags
.
- 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.
- inverse_transform(X, y=None)[source]¶
Inverse transform X and return an inverse transformed version.
- Currently it is assumed that only transformers with tags
“input_data_type”=”Series”, “output_data_type”=”Series”,
can have an inverse_transform.
- State required:
Requires state to be “fitted”.
- Accesses in self:
_is_fitted : must be True fitted model attributes (ending in “_”) : accessed by _inverse_transform
- Parameters:
- Xnp.ndarray or list
Input data, any number of channels, equal length series of shape
( n_cases, n_channels, n_timepoints)
or list of numpy arrays (any number of channels, unequal length series) of shape[n_cases]
, 2D np.array(n_channels, n_timepoints_i)
, wheren_timepoints_i
is length of seriesi
. Other types are allowed and converted into one of the above.Different estimators have different capabilities to handle different types of input. If self.get_tag(“capability:multivariate”)` is False, they cannot handle multivariate series. If
self.get_tag( "capability:unequal_length")
is False, they cannot handle unequal length input. In both situations, aValueError
is raised if X has a characteristic that the estimator does not have the capability to handle.Data to fit transform to, of valid collection type.
- ynp.ndarray, default=None
1D np.array of float or str, of shape
(n_cases)
- class labels (ground truth) for fitting indices corresponding to instance indices in X. If None, no labels are used in fitting.
- Returns:
- inverse transformed version of X
of the same type as X
- classmethod load_from_path(serial)[source]¶
Load object from file location.
- Parameters:
- serialobject
Result of ZipFile(path).open(“object).
- Returns:
- deserialized self resulting in output at path, of cls.save(path)
- classmethod load_from_serial(serial)[source]¶
Load object from serialized memory container.
- Parameters:
- serialobject
First element of output of cls.save(None).
- Returns:
- deserialized self resulting in output serial, of cls.save(None).
- reset(keep=None)[source]¶
Reset the object to a clean post-init state.
After a
self.reset()
call, self is equal or similar in value totype(self)(**self.get_params(deep=False))
, assuming no other attributes were kept usingkeep
.- Detailed 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 hyperparameters (result of get_params)- Not affected by the reset are:
object attributes containing double-underscores class and object methods, class attributes any attributes specified in the
keep
argument
- Parameters:
- keepNone, str, or list of str, default=None
If None, all attributes are removed except hyper-parameters. If str, only the attribute with this name is kept. If list of str, only the attributes with these names are kept.
- Returns:
- self
Reference to self.
- save(path=None)[source]¶
Save serialized self to bytes-like object or to (.zip) file.
Behaviour: if path is None, returns an in-memory serialized self if path is a file location, stores self at that location as a zip file
saved 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 file estimator.zip will be stored in /home/stored/.
- Returns:
- if path is None - in-memory serialized self
- if path is file location - ZipFile with reference to the file.
- 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 and tag value pairs.
- Returns:
- self
Reference to self.
- transform(X, y=None)[source]¶
Transform X and return a transformed version.
- State required:
Requires state to be “fitted”.
Accesses in self: _is_fitted : must be True fitted model attributes (ending in “_”) : must be set, accessed by _transform
- Parameters:
- Xnp.ndarray or list
Input data, any number of channels, equal length series of shape
( n_cases, n_channels, n_timepoints)
or list of numpy arrays (any number of channels, unequal length series) of shape[n_cases]
, 2D np.array(n_channels, n_timepoints_i)
, wheren_timepoints_i
is length of seriesi
. Other types are allowed and converted into one of the above.Different estimators have different capabilities to handle different types of input. If self.get_tag(“capability:multivariate”)` is False, they cannot handle multivariate series. If
self.get_tag( "capability:unequal_length")
is False, they cannot handle unequal length input. In both situations, aValueError
is raised if X has a characteristic that the estimator does not have the capability to handle.Data to fit transform to, of valid collection type.
- ynp.ndarray, default=None
1D np.array of float or str, of shape
(n_cases)
- class labels (ground truth) for fitting indices corresponding to instance indices in X. If None, no labels are used in fitting.
- Returns:
- transformed version of X