CanonicalIntervalForest
CanonicalIntervalForest
- class CanonicalIntervalForest(n_estimators=200, n_intervals=None, att_subsample_size=8, min_interval=3, max_interval=None, base_estimator='CIT', n_jobs=1, random_state=None)[source]
Canonical Interval Forest Classifier (CIF).
Implementation of the interval based forest making use of the catch22 feature set on randomly selected intervals described in Middlehurst et al. (2020). [1]
Overview: Input “n” series with “d” dimensions of length “m”. For each tree:
Sample n_intervals intervals of random position and length
Subsample att_subsample_size catch22 or summary statistic attributes randomly
Randomly select dimension for each interval
Calculate attributes for each interval, concatenate to form new data set
Build decision tree on new data set
ensemble the trees with averaged probability estimates
- Parameters:
- n_estimatorsint, default=200
Number of estimators to build for the ensemble.
- n_intervalsint or None, default=None
Number of intervals to extract per tree, if None extracts
(sqrt(series_length) * sqrt(n_dims))intervals.- att_subsample_sizeint, default=8
Number of catch22 or summary statistic attributes to subsample per tree.
- min_intervalint, default=3
Minimum length of an interval.
- max_intervalint or None, default=None
Maximum length of an interval, if
Noneset to(series_length / 2).- base_estimatorsklearn classifier or str, default=”CIT”.
Base estimator for the ensemble, can be supplied a sklearn BaseEstimator or a string for predefined classifiers. Possible strings:
"CIT", uses the sktimeContinuousIntervalTree, an implementation of the original tree used with embedded attribute processing for faster predictions."DTC"uses the sklearnDecisionTreeClassifier(criterion="entropy").
- n_jobsint, default=1
The number of jobs to run in parallel for both
fitandpredict.-1means using all processors.- random_stateint or None, default=None
Seed for random number generation.
- Attributes:
- n_classes_int
The number of classes.
- n_instances_int
The number of train cases.
- n_dims_int
The number of dimensions per case.
- series_length_int
The length of each series.
- classes_list
The classes labels.
- estimators_list of shape (n_estimators) of BaseEstimator
The collections of estimators trained in fit.
- intervals_list of shape (n_estimators) of ndarray with shape (n_intervals,2)
Stores indexes of each intervals start and end points for all classifiers.
- atts_list of shape (n_estimators) of array with shape (att_subsample_size)
Attribute indexes of the subsampled catch22 or summary statistic for all classifiers.
- dims_list of shape (n_estimators) of array with shape (n_intervals)
The dimension to extract attributes from each interval for all classifiers.
See also
Notes
For the Java version, see TSML.
References
[1]Matthew Middlehurst and James Large and Anthony Bagnall. “The Canonical Interval Forest (CIF) Classifier for Time Series Classification.” IEEE International Conference on Big Data 2020
Examples
>>> from sktime.classification.interval_based import CanonicalIntervalForest >>> 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 = CanonicalIntervalForest( ... n_estimators=3, n_intervals=2, att_subsample_size=2 ... ) >>> clf.fit(X_train, y_train) CanonicalIntervalForest(...) >>> y_pred = clf.predict(X_test)
Methods
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.
fit(X, y)Fit time series classifier to training data.
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_param_defaults()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 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)Predicts labels for sequences in X.
predict_proba(X)Predicts labels probabilities for sequences in X.
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)Scores predicted labels against ground truth labels on X.
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 instance level tag overrides to given values.

