ShapeletTransformClassifier
A shapelet transform classifier (STC).
Implementation of the binary shapelet transform classifier pipeline along the lines of [1][2] but with random shapelet sampling. Transforms the data using the configurable RandomShapeletTransform and then builds a RotationForest classifier.
As some implementations and applications contract the transformation solely, contracting is available for the transform only and both classifier and transform.
Schnellstart
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)Parameter(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. IfNone, uses the minimum between10 * n_instances_and1000.- 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. IfNonea defaultRotationForestclassifier 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 of0meansn_shapelet_samplesis used.- time_limit_in_minutesint, default=0
Time contract to limit build time in minutes, overriding
n_shapelet_samplesandtransform_limit_in_minutes. Theestimatorwill only be contracted if atime_limit_in_minutes parameteris present. Default of0meansn_shapelet_samplesortransform_limit_in_minutesis used.- contract_max_n_shapelet_samplesint, default=np.inf
Max number of shapelets to extract when contracting the transform with
transform_limit_in_minutesortime_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
fitandpredict.-1means 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; IfRandomStateinstance, random_state is the random number generator; IfNone, the random number generator is theRandomStateinstance used bynp.random.
Beispiele
>>> 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)Referenzen
Jon Hills et al., “Classification of time series by shapelet transformation”, Data Mining and Knowledge Discovery, 28(4), 851–881, 2014.
A. Bostrom and A. Bagnall, “Binary Shapelet Transform for Multiclass Time Series Classification”, Transactions on Large-Scale Data and Knowledge Centered Systems, 32, 2017.