-
Notifications
You must be signed in to change notification settings - Fork 197
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ENH] Implement DTW with Global alignment #2565
Conversation
Thank you for contributing to
|
Generally this looks good but we need to add a couple things to make it compatible with the rest of our distances. First you need to define a function for:
We spoke on slack earlier about this as well. While you mentioned it would introduce very little new logic it's still nice to have these as defined functions. For example DDTW essentially just returns the same thing as DTW see https://github.com/aeon-toolkit/aeon/blob/main/aeon/distances/elastic/_ddtw.py#L328. When adding the above look at the DTW distance measure and just copy and paste the code is my recommendation. Once you have added the above you can add your distance to our DISTANCE list which will mean the tests will automatically run for this distances. See: https://github.com/aeon-toolkit/aeon/blob/main/aeon/distances/_distance.py#L688. Once the functions above are defined you will add this to the list:
Once you're at this point give me a ping as then we can start sorting some further tests out which is a bit more fiddly to do so I'll help you with that. You can also run some tests locally to ensure your implementation is equivalent to the original. Looks good overall though! |
@chrisholder Thanks for the detailed comment! I will start working on this first thing tomorrow. I was going through the paper for the MVM distance today and made some progress on that. I should be done with the PR for MVM soon(atleast the initial draft). I'll follow your suggestions for DTW-GI, refer to the DDTW implementation, and ensure everything is properly added into the DISTANCE list. |
I checked equivalence with this source https://rtavenar.github.io/hdr/parts/01/dtw/dtw_gi.html for multivariate, univariate and unequal length |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great addition thanks for your hard work on this!
Fixes #444
Added DTW with global invariance in aeon
Changes
TODO:
Comparision of dtw_gi implentations:
first implementation is implented in aeon
second implementation taken from https://rtavenar.github.io/hdr/parts/01/dtw/dtw_gi.html
The cost of 2nd is square root of the 1st cost($18.95^2$ = 359.20) because

tslearn
uses theEuclidean_distance
butaeon
usessquared Euclidean_distance
For all contributions
For new estimators and functions
__maintainer__
at the top of relevant files and want to be contacted regarding its maintenance. Unmaintained files may be removed. This is for the full file, and you should not add yourself if you are just making minor changes or do not want to help maintain its contents.For developers with write access