aeon-toolkit / aeon

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

[ENH] Implement the TS-CHIEF classification algorithm #170

Open TonyBagnall opened 1 year ago

TonyBagnall commented 1 year ago

Is your feature request related to a problem? Please describe.

TS-CHIEF is a hybrid time series classifier that uses distance functions and dictionary methods internally in a tree ensemble. It would be great to get an implementation in aeon. The original paper is here

arxiv version https://arxiv.org/abs/1906.10329 https://link.springer.com/article/10.1007/s10618-020-00679-8

Java source code is here https://github.com/dotnet54/TS-CHIEF

@GuiArcencio I think had a go implementing it.

Describe the solution you'd like A full implementation (not a wrapper) that will help with benchmarking and will facilitate future research with this algorithm.

Additional context If someone takes this on we can help debug and test against Java version. Also happy to connect people/talk to the original authors if there are any design issues that need clarification.

GuiArcencio commented 1 year ago

Yup, I implemented a straightforward version here, although it's terribly slow. The basic structure is a one to one copy of the Java code, and the splitter algorithms (RISE features, distances, SFA) use aeon's modules.

I still have to profile the code to find the bottleneck(s), should be useful as a pointer to what needs most improvement.