Skip to content

TimeSeriesForestClassifier

TimeSeriesForestClassifier

class TimeSeriesForestClassifier(min_interval=3, n_estimators=200, inner_series_length: int | None = None, n_jobs=1, random_state=None)[source]

Time series forest classifier.

A time series forest is an ensemble of decision trees built on random intervals. Overview: Input n series length m. For each tree

  • sample sqrt(m) intervals,

  • find mean, std and slope for each interval, concatenate to form new

data set, if inner series length is set, then intervals are sampled within bins of length inner_series_length. - build decision tree on new data set.

Ensemble the trees with averaged probability estimates.

This implementation deviates from the original in minor ways. It samples intervals with replacement and does not use the splitting criteria tiny refinement described in [1].

This classifier is intentionally written with low configurability, for performance reasons.

  • for a more configurable tree based ensemble, use sktime.classification.ensemble.ComposableTimeSeriesForestClassifier, which also allows switching the base estimator.

  • to build a a time series forest with configurable ensembling, base estimator, and/or feature extraction, fully from composable blocks, combine sktime.classification.ensemble.BaggingClassifier with any classifier pipeline, e.g., pipelining any sklearn classifier with any time series feature extraction, e.g., Summarizer

Parameters:
n_estimatorsint, default=200

Number of estimators to build for the ensemble.

min_intervalint, default=3

Minimum length of an interval.

n_jobsint, default=1

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

inner_series_length: int, default=None

The maximum length of unique segments within X from which we extract intervals is determined. This helps prevent the extraction of intervals that span across distinct inner series.

random_stateint or None, default=None

Seed for random number generation.

Attributes:
n_classes_int

The number of classes.

classes_list

The classes labels.

feature_importances_pandas Dataframe of shape (series_length, 3)

Return the temporal feature importances.

Notes

For the Java version, see `TSML <https://github.com/uea-machine-learning/tsml/blob/master/src/main/

java/tsml/classifiers/interval_based/TSF.java>`_.

References

[1]

H.Deng, G.Runger, E.Tuv and M.Vladimir, “A time series forest for classification and feature extraction”,Information Sciences, 239, 2013

Examples

>>> from sktime.classification.interval_based import TimeSeriesForestClassifier
>>> 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 = TimeSeriesForestClassifier(n_estimators=5)
>>> clf.fit(X_train, y_train)
TimeSeriesForestClassifier(n_estimators=5)
>>> y_pred = clf.predict(X_test)

Methods

apply(X)

Apply trees in the forest to X, return leaf indices.

check_is_fitted([method_name])

Check if the estimator has been fitted.

clone()

Obtain a clone of the object with same hyper-parameters and config.

clone_tags(estimator[, tag_names])

Clone tags from another object as dynamic override.

create_test_instance([parameter_set])

Construct an instance of the class, using first test parameter set.

create_test_instances_and_names([parameter_set])

Create list of all test instances and a list of names for them.

decision_path(X)

Return the decision path in the forest.

fit(X, y, **kwargs)

Wrap fit to call BaseClassifier.fit.

fit_predict(X, y[, cv, change_state])

Fit and predict labels for sequences in X.

fit_predict_proba(X, y[, cv, change_state])

Fit and predict labels probabilities for sequences in X.

get_class_tag(tag_name[, tag_value_default])

Get class tag value from class, with tag level inheritance from parents.

get_class_tags()

Get class tags from class, with tag level inheritance from parent classes.

get_config()

Get config flags for self.

get_fitted_params([deep])

Get fitted parameters.

get_metadata_routing()

Get metadata routing of this object.

get_param_defaults()

Get object's parameter defaults.

get_param_names([sort])

Get object's parameter names.

get_params([deep])

Get parameters for this estimator.

get_tag(tag_name[, tag_value_default, ...])

Get tag value from instance, with tag level inheritance and overrides.

get_tags()

Get tags from instance, with tag level inheritance and overrides.

get_test_params([parameter_set])

Return testing parameter settings for the estimator.

is_composite()

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.

predict(X, **kwargs)

Wrap predict to call BaseClassifier.predict.

predict_log_proba(X)

Predict class log-probabilities for X.

predict_proba(X, **kwargs)

Wrap predict_proba to call BaseClassifier.predict_proba.

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.

score(X, y[, sample_weight])

Return accuracy on provided data and labels.

set_config(**config_dict)

Set config flags to given values.

set_fit_request(*[, sample_weight])

Configure whether metadata should be requested to be passed to the fit method.

set_params(**params)

Set the parameters of this estimator.

set_random_state([random_state, deep, ...])

Set random_state pseudo-random seed parameters for self.

set_score_request(*[, sample_weight])

Configure whether metadata should be requested to be passed to the score method.

set_tags(**tag_dict)

Set instance level tag overrides to given values.