RandomProjectionIndexANN¶
- class RandomProjectionIndexANN(n_hash_funcs=128, hash_func_coverage=0.25, use_discrete_vectors=True, random_state=None, normalize=True, n_jobs=1)[source]¶
Bases:
BaseCollectionSimilaritySearchRandom Projection Locality Sensitive Hashing index with cosine similarity.
In this method based on SimHash, we define a hash function as a boolean operation such as, given a random vector
Vof shape(n_channels, L)and a time seriesXof shape(n_channels, n_timeponts)(withL<=n_timepoints), we computeX.V > 0to obtain the boolean result. In the case whereL<n_timepoints, each hash function is affected a random starting points(between[0, n_timepoints - L]) to compute the dot product asX[:, s:s+L].VNote that this method will not provide exact results, but will perform approximate searches. This also ignore any temporal correlation and consider series as high dimensional points due to the cosine similarity distance.
- Parameters:
- n_hash_funcsint, optional
Number of random hashing function to use to index series. The default is 128.
- hash_func_coveragefloat, optional
A value in the interval ]0,1] which defines the size L of the random vectors relative to the size of the input time series. The default is 0.25.
- use_discrete_vectors: bool, optional,
Whether to use discrete vectors with values -1 or 1 as random vector. If false, the values of the random vectors are drawn uniformly between [-1,1].
- random_state: int, optional
A random seed to seed the index building. The default is None.
- normalize: bool, optional
Whether to z-normalize the input the series during fit and predict before indexing them.
- n_jobs: int, optional
Number of parallel threads to use when computing boolean hashes.
Methods
clone([random_state])Obtain a clone of the object with the same hyperparameters.
fit(X[, y])Fit method: data preprocessing and storage.
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.
get_params([deep])Get parameters for this estimator.
get_tag(tag_name[, raise_error, ...])Get tag value from estimator class.
get_tags()Get tags from estimator.
predict(X, **kwargs)Predict function.
reset([keep])Reset the object to a clean post-init state.
set_params(**params)Set the parameters of this estimator.
set_tags(**tag_dict)Set dynamic tags to given values.
Notes
Capabilities ¶ Missing Values
No
Multithreading
Yes
Univariate
Yes
Multivariate
Yes
Unequal Length
No
- 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.cloneofself. 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. Ifint,random_stateis the seed used by the random number generator. IfRandomStateinstance,random_stateis the random number generator.
- Returns:
- estimatorobject
Instance of
type(self), clone of self (see above)
- fit(X: ndarray, y=None)[source]¶
Fit method: data preprocessing and storage.
- Parameters:
- Xnp.ndarray, 3D array of shape (n_cases, n_channels, n_timepoints)
Input array to be used as database for the similarity search. If it is an unequal length collection, it should be a list of 2d numpy arrays.
- yoptional
Not used.
- Returns:
- self
- Raises:
- TypeError
If the input X array is not 3D raise an error.
- 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
ValueErroris 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_nametag in cls. If not found, returns an error ifraise_errorisTrue, otherwise it returnstag_value_default.
- Raises:
- ValueError
if
raise_errorisTrueandtag_nameis 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
_tagsclass attribute via nested inheritance. These are not overridden by dynamic tags set byset_tagsor 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)¶
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
ValueErroris 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_nametag in self. If not found, returns an error ifraise_errorisTrue, otherwise it returnstag_value_default.
- Raises:
- ValueError
if raise_error is
Trueandtag_nameis 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
_tagsclass attribute via nested inheritance and then any overridden and new tags from__init__orset_tags.
- predict(X, **kwargs)[source]¶
Predict function.
- Parameters:
- Xnp.ndarray, 3D array of shape = (n_cases, n_channels, n_timepoints)
Collections of series to predict on.
- kwargsdict, optional
Additional keyword arguments to be passed to the _predict function of the estimator.
- Returns:
- indexesnp.ndarray, shape = (n_cases, k)
Indexes of series in the that are similar to X.
- distancesnp.ndarray, shape = (n_cases, k)
Distance of the matches to each series
- reset(keep=None)[source]¶
Reset the object to a clean post-init state.
After a
self.reset()call,selfis 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
keepargument
- Parameters:
- keepNone, str, or list of str, default=None
If
None, all attributes are removed except hyperparameters. Ifstr, only the attribute with this name is kept. Iflistofstr, only the attributes with these names are kept.
- Returns:
- selfobject
Reference to self.
- Raises:
- TypeError
If ‘keep’ is not a string or a list of strings.
- set_params(**params)¶
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.