Back to models
Classifier

ShapeletTransformClassifier

MultivariatePredict probaTrain estimateContractable

A shapelet transform classifier (STC).

Quickstart

python
from sktime.classification.shapelet_based import ShapeletTransformClassifier

estimator = ShapeletTransformClassifier(n_shapelet_samples=10000, max_shapelets=None, max_shapelet_length=None, estimator=None, transform_limit_in_minutes=0, time_limit_in_minutes=0, contract_max_n_shapelet_samples=inf, save_transformed_data=False, n_jobs=1, batch_size=100, random_state=None)

Parameters(11)

n_shapelet_samplesint, default=10000

The number of candidate shapelets to be considered for the final transform. Filtered down to <= max_shapelets, keeping the shapelets with the most information gain.

max_shapeletsint or None, default=None

Max number of shapelets to keep for the final transform. Each class value will have its own max, set to n_classes_ / max_shapelets. If None, uses the minimum between 10 * n_instances_ and 1000.

max_shapelet_lengthint or None, default=None

Lower bound on candidate shapelet lengths for the transform. If None, no max length is used

estimatorBaseEstimator or None, default=None

Base estimator for the ensemble, can be supplied a sklearn BaseEstimator. If None a default RotationForest classifier is used.

transform_limit_in_minutesint, default=0

Time contract to limit transform time in minutes for the shapelet transform, overriding n_shapelet_samples. A value of 0 means n_shapelet_samples is used.

time_limit_in_minutesint, default=0

Time contract to limit build time in minutes, overriding n_shapelet_samples and transform_limit_in_minutes. The estimator will only be contracted if a time_limit_in_minutes parameter is present. Default of 0 means n_shapelet_samples or transform_limit_in_minutes is used.

contract_max_n_shapelet_samplesint, default=np.inf

Max number of shapelets to extract when contracting the transform with transform_limit_in_minutes or time_limit_in_minutes.

save_transformed_databool, default=False

Save the data transformed in fit in transformed_data_ for use in _get_train_probs.

n_jobsint, default=1

The number of jobs to run in parallel for both fit and predict. -1 means using all processors.

batch_sizeint or None, default=100
Number of shapelet candidates processed before being merged into the set of best shapelets in the transform.
random_stateint, RandomState instance or None, default=None

If int, random_state is the seed used by the random number generator; If RandomState instance, random_state is the random number generator; If None, the random number generator is the RandomState instance used by np.random.

Examples

>>> from sktime.classification.shapelet_based import ShapeletTransformClassifier
>>> from sktime.classification.sklearn import RotationForest
>>> from sktime.datasets import load_unit_test
>>> X_train, y_train = load_unit_test (split = "train", return_X_y = True)
>>> X_test, y_test = load_unit_test (split = "test", return_X_y = True)
>>> clf = ShapeletTransformClassifier (
... estimator = RotationForest (n_estimators = 3),
... n_shapelet_samples = 100,
... max_shapelets = 10,
... batch_size = 20,
... )
>>> clf. fit (X_train, y_train) ShapeletTransformClassifier(
... )
>>> y_pred = clf. predict (X_test)

References

  1. [1 ] Jon Hills et al., “Classification of time series by shapelet transformation”, Data Mining and Knowledge Discovery, 28(4), 851–881, 2014. [2 ] A. Bostrom and A. Bagnall, “Binary Shapelet Transform for Multiclass Time Series Classification”, Transactions on Large-Scale Data and Knowledge Centered Systems, 32, 2017.