aeon-toolkit / aeon

A toolkit for machine learning from time series
https://aeon-toolkit.org/
BSD 3-Clause "New" or "Revised" License
1.01k stars 121 forks source link

[ENH] Rationalise matrix profile transformers #833

Open TonyBagnall opened 1 year ago

TonyBagnall commented 1 year ago

Describe the feature or idea you want to propose

there are two transformers that implement the MatrixProfile. The one in transformations.collections is a bespoke implementation, the one in transformations.series uses (an incorrectly handled) soft dependency. There can be only one

There is also a function MPDist in distances, which uses bespoke operations that are native python. Could be optimised.

Describe your proposed solution

Implement everything with stompy.

we see if they are indeed the same, profile one and then assess alternatives for including MP as a transform.

Describe alternatives you've considered, if relevant

optimise the current implementations

TonyBagnall commented 1 week ago

Collection transformer: MatrixProfile https://github.com/aeon-toolkit/aeon/blob/main/aeon/transformations/collection/_matrix_profile.py Bespoke implementation Series transformer: MatrixProfileSeriesTransformer https://github.com/aeon-toolkit/aeon/blob/main/aeon/transformations/series/_matrix_profile.py Distance: mp_distance https://github.com/aeon-toolkit/aeon/blob/main/aeon/distances/_mpdist.py Similarity search https://github.com/aeon-toolkit/aeon/blob/main/aeon/similarity_search/matrix_profiles/naive_matrix_profile.py https://github.com/aeon-toolkit/aeon/blob/main/aeon/similarity_search/matrix_profiles/stomp.py