BaseEarlyClassifier

class BaseEarlyClassifier[source]

Abstract base class for early time series classifiers.

The base classifier specifies the methods and method signatures that all early classifiers have to implement. Attributes with an underscore suffix are set in the method fit.

Parameters:
classes_np.ndarray

Class labels, possibly strings.

n_classes_int

Number of classes (length of classes_).

_class_dictionarydict

dictionary mapping classes_ onto integers 0…n_classes_-1.

_n_jobsint, default=1

Number of threads to use in fit as determined by n_jobs.

state_infoarray-like, default=None

An array containing the state info for each decision in X.

Methods

clone([random_state])

Obtain a clone of the object with the same hyperparameters.

filter_X(X, decisions)

Remove True cases from X given a boolean array of decisions.

filter_X_y(X, y, decisions)

Remove True cases from X and y given a boolean array of decisions.

fit(X, y)

Fit time series classifier to training data.

get_class_tag(tag_name[, raise_error, ...])

Get tag value from estimator class (only class tags).

get_class_tags()

Get class tags from estimator class and all its parent classes.

get_fitted_params([deep])

Get fitted parameters.

get_metadata_routing()

Sklearn metadata routing.

get_params([deep])

Get parameters for this estimator.

get_state_info()

Return the state information generated from the last predict/update call.

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

Get tag value from estimator class.

get_tags()

Get tags from estimator.

predict(X)

Predicts labels for sequences in X.

predict_proba(X)

Predicts labels probabilities for sequences in X.

reset([keep])

Reset the object to a clean post-init state.

reset_state_info()

Reset the state information used in update methods.

score(X, y)

Scores predicted labels against ground truth labels on X.

set_params(**params)

Set the parameters of this estimator.

set_tags(**tag_dict)

Set dynamic tags to given values.

split_indices(indices, decisions)

Split a list of indices given a boolean array of decisions.

split_indices_and_filter(X, indices, decisions)

Remove True cases and split a list of indices given an array of decisions.

update_predict(X)

Update label prediction for sequences in X at a larger series length.

update_predict_proba(X)

Update label probabilities for sequences in X at a larger series length.

fit(X, y)[source]

Fit time series classifier to training data.

Parameters:
X3D np.ndarray

Input data, any number of channels, equal length series of shape ( n_cases, n_channels, n_timepoints) or 2D np.array (univariate, equal length series) of shape (n_cases, 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), where n_timepoints_i is length of series i. Other types are allowed and converted into one of the above.

np.array

shape (n_cases) - class labels for fitting indices correspond to instance indices in X.

Returns:
selfReference to self.

Notes

Changes state by creating a fitted model that updates attributes ending in “_” and sets is_fitted flag to True.

predict(X) tuple[ndarray, ndarray][source]

Predicts labels for sequences in X.

Early classifiers can predict at series lengths shorter than the train data series length.

Predict will return -1 for cases which it cannot make a decision on yet. The output is only guaranteed to return a valid class label for all cases when using the full series length.

X3D np.ndarray

Input data, any number of channels, equal length series of shape ( n_cases, n_channels, n_timepoints) or 2D np.array (univariate, equal length series) of shape (n_cases, 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), where n_timepoints_i is length of series i other types are allowed and converted into one of the above.

Returns:
ynp.array

shape [n_cases] - predicted class labels indices correspond to instance indices in X.

decisions1D bool array

An array of booleans, containing the decision of whether a prediction is safe to use or not. i-th entry is the classifier decision that i-th instance safe to use.

update_predict(X) tuple[ndarray, ndarray][source]

Update label prediction for sequences in X at a larger series length.

Uses information stored in the classifiers state from previous predictions and updates at shorter series lengths. Update will only accept cases which have not yet had a decision made, cases which have had a positive decision should be removed from the input with the row ordering preserved.

If no state information is present, predict will be called instead.

Prediction updates will return -1 for cases which it cannot make a decision on yet. The output is only guaranteed to return a valid class label for all cases when using the full series length.

Parameters:
X3D np.ndarray

Input data, any number of channels, equal length series of shape ( n_cases, n_channels, n_timepoints) or 2D np.array (univariate, equal length series) of shape (n_cases, 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), where n_timepoints_i is length of series i. other types are allowed and converted into one of the above.

Returns:
y1D np.array of int, of shape [n_cases] - predicted class labels

indices correspond to instance indices in X

decisions1D bool array

An array of booleans, containing the decision of whether a prediction is safe to use or not. i-th entry is the classifier decision that i-th instance safe to use

predict_proba(X) tuple[ndarray, ndarray][source]

Predicts labels probabilities for sequences in X.

Early classifiers can predict at series lengths shorter than the train data series length.

Probability predictions will return [-1]*n_classes_ for cases which it cannot make a decision on yet. The output is only guaranteed to return a valid class label for all cases when using the full series length.

Parameters:
X3D np.ndarray

Input data, any number of channels, equal length series of shape ( n_cases, n_channels, n_timepoints) or 2D np.array (univariate, equal length series) of shape (n_cases, 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), where n_timepoints_i is length of series i. other types are allowed and converted into one of the above.

Returns:
y2D array of shape [n_cases, n_classes] - predicted class probabilities

1st dimension indices correspond to instance indices in X 2nd dimension indices correspond to possible labels (integers) (i, j)-th entry is predictive probability that i-th instance is of class j

decisions1D bool array

An array of booleans, containing the decision of whether a prediction is safe to use or not. i-th entry is the classifier decision that i-th instance safe to use

update_predict_proba(X) tuple[ndarray, ndarray][source]

Update label probabilities for sequences in X at a larger series length.

Uses information stored in the classifiers state from previous predictions and updates at shorter series lengths. Update will only accept cases which have not yet had a decision made, cases which have had a positive decision should be removed from the input with the row ordering preserved.

If no state information is present, predict_proba will be called instead.

Probability predictions updates will return [-1]*n_classes_ for cases which it cannot make a decision on yet. The output is only guaranteed to return a valid class label for all cases when using the full series length.

Parameters:
X3D np.ndarray

Input data, any number of channels, equal length series of shape ( n_cases, n_channels, n_timepoints) or 2D np.array (univariate, equal length series) of shape (n_cases, 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), where n_timepoints_i is length of series i. other types are allowed and converted into one of the above.

Returns:
y2D array of shape [n_cases, n_classes] - predicted class probabilities

1st dimension indices correspond to instance indices in X 2nd dimension indices correspond to possible labels (integers) (i, j)-th entry is predictive probability that i-th instance is of class j

decisions1D bool array

An array of booleans, containing the decision of whether a prediction is safe to use or not. i-th entry is the classifier decision that i-th instance safe to use

score(X, y) tuple[float, float, float][source]

Scores predicted labels against ground truth labels on X.

Parameters:
X3D np.ndarray

Input data, any number of channels, equal length series of shape ( n_cases, n_channels, n_timepoints) or 2D np.array (univariate, equal length series) of shape (n_cases, 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), where n_timepoints_i is length of series i. other types are allowed and converted into one of the above.

y1D np.ndarray of int, of shape [n_cases] - class labels (ground truth)

indices correspond to instance indices in X

Returns:
Tuple of floats, harmonic mean, accuracy and earliness scores of predict(X) vs y
get_state_info()[source]

Return the state information generated from the last predict/update call.

Returns:
An array containing the state info for each decision in X from update and
predict methods. Contains classifier dependant information for future decisions
on the data and information on when a cases decision has been made. Each row
contains information for a case from the latest decision on its safety made in
update/predict. Successive updates are likely to remove rows from the
state_info, as it will only store as many rows as there are input instances to
update/predict.
reset_state_info()[source]

Reset the state information used in update methods.

static filter_X(X, decisions)[source]

Remove True cases from X given a boolean array of decisions.

static filter_X_y(X, y, decisions)[source]

Remove True cases from X and y given a boolean array of decisions.

static split_indices(indices, decisions)[source]

Split a list of indices given a boolean array of decisions.

static split_indices_and_filter(X, indices, decisions)[source]

Remove True cases and split a list of indices given an array of decisions.

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 to type(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 get_class_tag(tag_name, raise_error=True, tag_value_default=None)[source]

Get tag value from estimator class (only class tags).

Parameters:
tag_namestr

Name of tag value.

raise_errorbool, default=True

Whether a ValueError is raised when the tag is not found.

tag_value_defaultany type, default=None

Default/fallback value if tag is not found and error is not raised.

Returns:
tag_value

Value of the tag_name tag in cls. If not found, returns an error if raise_error is True, otherwise it returns tag_value_default.

Raises:
ValueError

if raise_error is True and tag_name is not in self.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 by set_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

If True, will return the fitted parameters for this estimator and contained subobjects that are estimators.

Returns:
fitted_paramsdict

Fitted parameter names mapped to their values.

get_metadata_routing()[source]

Sklearn metadata routing.

Not supported by aeon estimators.

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, raise_error=True, tag_value_default=None)[source]

Get tag value from estimator class.

Includes dynamic and overridden tags.

Parameters:
tag_namestr

Name of tag to be retrieved.

raise_errorbool, default=True

Whether a ValueError is raised when the tag is not found.

tag_value_defaultany type, default=None

Default/fallback value if tag is not found and error is not raised.

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 and tag_name is not in self.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__ or set_tags.

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 to type(self)(**self.get_params(deep=False)), assuming no other attributes were kept using keep.

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 hyperparameters. If str, only the attribute with this name is kept. If list of str, only the attributes with these names are kept.

Returns:
selfobject

Reference to self.

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:
selfobject

Reference to self.