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 from estimator class and all its parent classes.
get_fitted_params
([deep])Get fitted parameters.
Sklearn metadata routing.
get_params
([deep])Get parameters for this estimator.
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.
Predicts labels probabilities for sequences in X.
reset
([keep])Reset the object to a clean post-init state.
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 label prediction for sequences in X at a larger series length.
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)
, wheren_timepoints_i
is length of seriesi
. 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)
, wheren_timepoints_i
is length of seriesi
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)
, wheren_timepoints_i
is length of seriesi
. 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)
, wheren_timepoints_i
is length of seriesi
. 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)
, wheren_timepoints_i
is length of seriesi
. 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)
, wheren_timepoints_i
is length of seriesi
. 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.
- 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 totype(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 ifraise_error
is True, otherwise it returnstag_value_default
.
- Raises:
- ValueError
if
raise_error
is True andtag_name
is not inself.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 byset_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_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 ifraise_error
is True, otherwise it returnstag_value_default
.
- Raises:
- ValueError
if raise_error is
True
andtag_name
is not inself.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__
orset_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 totype(self)(**self.get_params(deep=False))
, assuming no other attributes were kept usingkeep
.- 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 ofget_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.