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 118 forks source link

[ENH] Annotation module #592

Closed TonyBagnall closed 9 months ago

TonyBagnall commented 1 year ago

Describe the feature or idea you want to propose

Im just doing some docstring/notebook tidying and having a little look around annotation. Personally, I think I would split segmentation, change point detection and anomaly detection into separate modules. I believe it would improve exposure and be more logical. You can call them both annotation, but then you can call classification/regression/forecasting prediction if you want, doesnt make it a good idea. Any thoughts? I'm just scoping it for now, most of this is just for reference

Describe your proposed solution

ClaspSegmentation: Segmentation (BaseSeriesAnnotator) GGS: Segmentation (no base class) EAAgglo: "is a non-parametric clustering approach for multivariate timeseries" Should then be in clustering, but this class extends BaseTransformer, which seems a bit odd. Name not exactly informatibe HMM: "Implements a simple HMM fitted with Viterbi algorithm." (BaseSeriesAnnotator). Seems like a full implementation IGTS: Segmentation (no base class) InformationGainSegmentation: Segmentation (SegmentationMixin) STRAY: robust anomaly detection in data streams with concept drift. (BaseTransformer)

then we have in sub packages PyODAnnotator. "Transformer that applies outlier detector from pyOD." (BaseSeriesAnnotator)

in hmm_learn package which wraps https://github.com/hmmlearn/hmmlearn BaseHMMLearn (BaseSeriesAnnotator): Base class for all HMM wrappers, handles required overlap between packages. GaussianHMM: "Hidden Markov Model with Gaussian emissions." GMMHMM: "Hidden Markov Model with Gaussian mixture emissions" PoissonHMM: Hidden Markov Model with Poisson emissions

there is also a base and a plotting subpackage.

Seems the easiest rationalisation would be to move evertything that is obviously segmentation into its own package, perhaps initially in annotations/segmentation.

Describe alternatives you've considered, if relevant

No response

Additional context

No response

TonyBagnall commented 1 year ago

Add to this "Heteregeneous Intrinsic Dimensionality Algorithm (Hidalgo) model" which is in

from aeon.transformations.series.hidalgo import Hidalgo

TonyBagnall commented 9 months ago

there are still issues with the annotation module, but the issue is different to the one described above, which has been resolved, so closing this