Skip to content

[MNT, ENH, DOC] Rework similarity search #2473

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

Merged
merged 52 commits into from
May 10, 2025

Conversation

baraline
Copy link
Member

@baraline baraline commented Dec 26, 2024

Reference Issues/PRs

Fixes #2341, #2236, #2028, #2020, #1806, #2475, #2538

What does this implement/fix? Explain your changes.

The previous structure for similarity search was not in line with the structure we would expect considering other aeon modules, the lack of distinct base classes for some tasks, as well as the initial design choice (due to the lack of practical experience with using and expanding the module) lead to some really complex code when working on #2341 to make everything work together. Further expanding the module would have made thing worse.

To make the module more flexible and comprehensible, the following rework is proposed in this PR (AEP to be updated acordingly):

The module structure is now :

|-similarity_search
|------series
|------------neighbors #NN on subsequences 
|------------motifs #Motif extraction on subsequences methods
|------collection
|------------neighbors # series methods for subsequence NN adapted to collection case or Approximate NN on whole series
|------------motifs #Series methods adapted to collection case

Base classes are BaseSimilaritySearch, BaseSeriesSimilaritySearch, BaseCollectionSimilaritySearch
Implemented estimators are :

  • (series/neighbors) MassSNN : subsequence nearest neighbors and distance profile computation
  • (series/neighbors) DummySNN : brute force subsequence nearest neighbors
  • (series/motifs) StompMotifs : top k motifs extraction (supports motifs pairs, k-motif or r-motifs)
  • (collection/neighbors) RandomProjectionIndexANN: Approximate nearest neighbors on whole series using a random projection LSH method.

The sufix of the estimators (SNN/ANN/Motifs) remains an open discussion, not sure it's the right way to go.

I removed the support for collections for Stomp and Mass for now to focus on the "expected and well known" use cases, I'll make them in another PR.

All similarity search estimators now use fit/predict interface, with predict returning two arrays (NN/Motifs indexes, and NN/Motifs distances).

Does your contribution introduce a new dependency? If yes, which one?

No.

Any other comments?

As this is still a WIP, I would love some inputs on the structure (notably from @patrickzib !) to make the module more future-proof to future additions and easier to use.

TODO list :

  • Finish to include testing suite for base estimators in the testing module for the SubsequenceSearch part and fix them
  • Implement LSH index as a simple first case for BaseCollectionSimilaritySearch
  • Implement tests for base classes and estimators
  • Update API docs / doc pages
  • Update notebooks
  • Check docstrings
  • Cleanup TODOs in the code
  • updated aeon's CODEOWNERS to receive notifications about future changes to these files.

@baraline baraline linked an issue Dec 26, 2024 that may be closed by this pull request
@aeon-actions-bot aeon-actions-bot bot added documentation Improvements or additions to documentation enhancement New feature, improvement request or other non-bug code enhancement maintenance Continuous integration, unit testing & package distribution similarity search Similarity search package labels Dec 26, 2024
@aeon-actions-bot
Copy link
Contributor

aeon-actions-bot bot commented Dec 26, 2024

Thank you for contributing to aeon

I have added the following labels to this PR based on the title: [ $\color{#F3B9F8}{\textsf{documentation}}$, $\color{#FEF1BE}{\textsf{enhancement}}$, $\color{#EC843A}{\textsf{maintenance}}$ ].
I have added the following labels to this PR based on the changes made: [ $\color{#006b75}{\textsf{similarity search}}$ ]. Feel free to change these if they do not properly represent the PR.

The Checks tab will show the status of our automated tests. You can click on individual test runs in the tab or "Details" in the panel below to see more information if there is a failure.

If our pre-commit code quality check fails, any trivial fixes will automatically be pushed to your PR unless it is a draft.

Don't hesitate to ask questions on the aeon Slack channel if you have any.

PR CI actions

These checkboxes will add labels to enable/disable CI functionality for this PR. This may not take effect immediately, and a new commit may be required to run the new configuration.

  • Run pre-commit checks for all files
  • Run mypy typecheck tests
  • Run all pytest tests and configurations
  • Run all notebook example tests
  • Run numba-disabled codecov tests
  • Stop automatic pre-commit fixes (always disabled for drafts)
  • Disable numba cache loading
  • Push an empty commit to re-run CI checks

@patrickzib
Copy link
Contributor

patrickzib commented Jan 2, 2025

Thank you very much for working on this.

Some thoughts:

  • Focus the module on two distinct tasks : find_neighbors and find_motifs for all type for similarity search estimators. Similarly to the fit/ predict interface we already know well, here, we first fit and then either find_motifs or find_neighbors ("predict" keyword don't make much sense here). We give a collection to use as database in fit, and a single series in find_neighbors or find_motifs to use as query for the search.

That is an interesting problem. Here is my view:

For whole series similarity search fit requires a dataset of time series of equal length, and find_neighbors would get one or many query series of this length.

For subsequence similarity search fit requires a single time series, and find_neighbors commonly gets a single query sequence which length is shorter than the single series length. It would be fine however, to extend it to multiple short sequences.

There is only one whole series consensus motif search paper, which would be the use case of whole matching and motif discovery. The input to fit would be the whole dataset, and find_motif has no input series X. not sure, what an input series X should trigger.

Most papers solve the problem of motif discovery in a single long time series, defined as subsequences of the time series. Here, fit gets a single series, and find_motif has no input series X.

  • Distinguish between two kind of similarity search tasks with the two submodules, SeriesSearch and SubsequencesSearch. The SubsequencesSearch focuses on tasks for which the goal is to find motifs or neighbors in subsequences of time series (e.g. Matrix Profiles, Motiflets, etc.). the SeriesSearch focuses on task using whole series (e.g. Indexes such as LSH, iSAX, etc.)
  • Have base classes for families of method to limit code duplication (e.g. BaseMatrixProfile, and STOMP, where most existing code was ported), so the we can focus on implementing the computational logic when adding new estimators.

What is the difference between BaseMatrixProfile and STOMP?

At least for Motiflets, we cannot use STOMP/MP, as it only gives a 1-NN profile, but we need k-NN profiles. Same problem would be the case, if you want to solve k-nearest neighbors similarity search.

Questions to answers for motif search :

  • Do we want to make providing X optional in find_motifs ? Providing X means that we search for subsequences in X that are motifs in the collection given in fit. Not providing X would mean that we search for motifs in the collection given in fit only. I think it would make sense to make it optional, but would love some comment from people actually doing motif discovery.

I think that X is not meaningful for motif discovery.

@baraline
Copy link
Member Author

baraline commented Jan 2, 2025

Thanks for the inputs @patrickzib😄

For whole series similarity search fit requires a dataset of time series of equal length, and find_neighbors would get one or many query series of this length.

Completely in line with this, but what about the case of unequal length series, with, for example, elastic distance measures? Wouldn't that be a plausible use case? (all whole series estimators don't have to support it)

For subsequence similarity search fit requires a single time series, and find_neighbors commonly gets a single query sequence which length is shorter than the single series length. It would be fine however, to extend it to multiple short sequences.

For this case, I'm defining a length parameter during __init__, and accept a 2D subsequence of shape (n_channels, length) for find_neighbors, ensuring that length is not bigger than the length of any series given in fit. However, any reason why you think we should restrain ourselves to a single series for fit ?

There is only one whole series consensus motif search paper, which would be the use case of whole matching and motif discovery. The input to fit would be the whole dataset, and find_motif has no input series X. not sure, what an input series X should trigger.

This is the tricky one for me too. I'm not sure how giving X during find_motifs on whole series would fit any use case.

Most papers solve the problem of motif discovery in a single long time series, defined as subsequences of the time series. Here, fit gets a single series, and find_motif has no input series X.

I've been kinda frustrated by this limitation for practical use cases, wouldn't it be fine to loop on series of a collection with the motif discovery methods and then merge the results ? That's how I implemented STOMP for now for example. For each subsequence in X, it computes the distance profile to all series in a collection, and keep the top k among all of them (also storing the sample ID and timepoint ID).

What is the difference between BaseMatrixProfile and STOMP?
At least for Motiflets, we cannot use STOMP/MP, as it only gives a 1-NN profile, but we need k-NN profiles. Same problem would be the case, if you want to solve k-nearest neighbors similarity search.

BaseMatrixProfile (which inherit BaseSubsequenceSearch) is simply a base class that defines abstract compute_matrix_profile and compute_distance_profile methods to be implemented by child classes such as STOMP and the likes (STUMP, etc...). The logic for finding neighbors / motifs is then handled in the BaseMatrixProfile. I wanted to leave the door open to alternative methods and not just focus on matrix profiles, hence the split.

As stated above, I already extended STOMP to support k-NN profiles for collections (multivariate and unequal length compatible).

I suppose that in this context, motiflets would either inherit from BaseMatrixProfile if you need to implement methods like compute_matrix_profile and compute_distance_profile. Otherwise, It would inherit from BaseSubsequenceSearch and make its own methods to answer the find_neighbors/find_motifs tasks. (I would need to read the paper again!)

Note that it's possible to simply raise a "NotImplementedError" or something similar if an estimator would only support neighbors or motifs search.

My goal here is to find a base class structure that enables us to move most common code to there and focus on the computational optimisations of each method in the child classes.

I think that X is not meaningful for motif discovery.

In the context of motif search in a single series I agree, but wouldn't there be some interest when dealing with a collection ? For example find motifs in the collection at the condition that they are similar to a subsequence in X ? (This is pure speculation)

@patrickzib
Copy link
Contributor

Completely in line with this, but what about the case of unequal length series, with, for example, elastic distance measures? Wouldn't that be a plausible use case? (all whole series estimators don't have to support it)

Sure. I did not think of this.

For subsequence similarity search fit requires a single time series, and find_neighbors commonly gets a single query sequence which length is shorter than the single series length. It would be fine however, to extend it to multiple short sequences.

For this case, I'm defining a length parameter during __init__, and accept a 2D subsequence of shape (n_channels, length) for find_neighbors, ensuring that length is not bigger than the length of any series given in fit. However, any reason why you think we should restrain ourselves to a single series for fit ?

Simplicity :) But I agree that you could have multiple series in fit, too - this would mimic the Shapelet use case, I suppose?

Most papers solve the problem of motif discovery in a single long time series, defined as subsequences of the time series. Here, fit gets a single series, and find_motif has no input series X.

I've been kinda frustrated by this limitation for practical use cases, wouldn't it be fine to loop on series of a collection with the motif discovery methods and then merge the results ? That's how I implemented STOMP for now for example. For each subsequence in X, it computes the distance profile to all series in a collection, and keep the top k among all of them (also storing the sample ID and timepoint ID).

Sorry, yes, that is what the authors refer to as consensus motif:
https://www.cs.ucr.edu/~eamonn/consensus_Motif_ICDM_Long_version.pdf

BaseMatrixProfile (which inherit BaseSubsequenceSearch) is simply a base class that defines abstract compute_matrix_profile and compute_distance_profile methods to be implemented by child classes such as STOMP and the likes (STUMP, etc...).

I see. I personally do not like to use the terms matrix-profile for simple k-NN distances or k-NN indices though. It was a brilliant re-framing of EK, such that all 1-NN algorithms are now suddenly an instance of matrix profile. Yet, the concept is much older.

As stated above, I already extended STOMP to support k-NN profiles for collections (multivariate and unequal length compatible).

Great.

I think that X is not meaningful for motif discovery.

In the context of motif search in a single series I agree, but wouldn't there be some interest when dealing with a collection ? For example find motifs in the collection at the condition that they are similar to a subsequence in X ? (This is pure speculation)

I would not say that this is impossible, but I have not seen it. :)

@baraline
Copy link
Member Author

baraline commented Jan 2, 2025

Simplicity :) But I agree that you could have multiple series in fit, too - this would mimic the Shapelet use case, I suppose?

I'm not 100% sure what you mean, but in a sense yes ? For example with a brute force neighbour search, just compute the distance of the subsequence given in find_neighbors to all candidates subsequences in all series of the collection given in fit, and take the k best overall, (considering neighbouring matches/self matches if specified by parameters).

I see. I personally do not like to use the terms matrix-profile for simple k-NN distances or k-NN indices though. It was a brilliant re-framing of EK, such that all 1-NN algorithms are now suddenly an instance of matrix profile. Yet, the concept is much older.

I'm not against the idea of a different naming, especially if methods labelled differently from MPs would fit in the base class without much change of parameter/interface. Would you have any proposal? Something like BaseNeighborhoodSearch ?

@patrickzib
Copy link
Contributor

I'm not against the idea of a different naming, especially if methods labelled differently from MPs would fit in the base class without much change of parameter/interface. Would you have any proposal? Something like BaseNeighborhoodSearch ?

In sklearn it is simply NearestNeighbors ? :) And it returns indices and distances.

https://scikit-learn.org/1.5/modules/neighbors.html

Copy link
Member

@MatthewMiddlehurst MatthewMiddlehurst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Base class comments

@baraline
Copy link
Member Author

baraline commented Apr 15, 2025

Based on your comment @MatthewMiddlehurst, I think another set of base class for neighbours / motifs estimator is necessary to not have weird thing in the series & collection base classes.
I wanted to avoid creating too many bases classes, but it seems necessary to have "cleaner" ones.
I'll put it in place and then you can check back if it feels better.

@baraline
Copy link
Member Author

Tried to make additional base classes, but this made the whole module structure feel too overcomplicated. Reverted and instead factored some functions away from the base class and made a fit_predict for stomp to avoid the weird X=None possibility in predict. Open to suggestions if you have some

@MatthewMiddlehurst
Copy link
Member

Its all experimental. Better to just get it in when clear issues are resolved then iterate.

@MatthewMiddlehurst
Copy link
Member

It is also possible I am misunderstanding the goal a bit. If you want to do something that fits a collection and predicts on a series, we probably need a new base class for that. The collection and series bases are not really built for it. Not saying has to be done in this PR, but probably where we want to end up.

@baraline
Copy link
Member Author

baraline commented May 1, 2025

I think we need to explore this a bit further down the road when more estimators are added to see if it would really fit a use case.
This could also be solved with a simple wrapper like predict_series calling self.predict([X]), but let's give it some thought first agree.

@baraline baraline dismissed patrickzib’s stale review May 1, 2025 14:44

Stale review, comments addressed and fixed.

Copy link
Member

@MatthewMiddlehurst MatthewMiddlehurst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is too big to reasonably review just looking at the code and text. Generally I'm fine with the changes, and the module is experimental so stuff can be modified and removed as required. No one has raised any major objections in the duration of this PR.

In the future I would like to see some generic testing added to make sure these adhere so some structure.

@baraline
Copy link
Member Author

baraline commented May 9, 2025

Agreed, will resume work on this module during summer when things cool down, and testing will definitly be an important part of the work

@baraline baraline merged commit 6a6aac3 into main May 10, 2025
24 checks passed
@baraline baraline deleted the 2341-enh-indexsearch-class-with-attimo-algorithm branch May 10, 2025 07:05
TonyBagnall added a commit that referenced this pull request May 13, 2025
* forecaster base and dummy

* forecasting tests

* forecasting tests

* forecasting tests

* forecasting tests

* regression

* notebook

* regressor

* regressor

* regressor

* tags

* tags

* requires_y

* forecasting notebook

* forecasting notebook

* remove tags

* fix forecasting testing (they still fail though)

* _is_fitted -> is_fitted

* _is_fitted -> is_fitted

* _forecast

* notebook

* is_fitted

* y_fitted

* ETS forecaster

* add y checks and conversion

* add tag

* tidy

* _check_is_fitted()

* _check_is_fitted()

* Add fully functional ETS Forecaster. Modify base to not set default y in forecast. Update tests for ETS Forecaster. Add script to verify ETS Forecaster against statsforecast module using a large number of random parameter inputs.

* Add fully functional ETS Forecaster. Modify base to not set default y in forecast. Update tests for ETS Forecaster. Add script to verify ETS Forecaster against statsforecast module using a large number of random parameter inputs. (#2318)

Co-authored-by: Alex Banwell <arb1g19@soton.ac.uk>

* Add faster numba version of ETS forecaster

* Seperate out predict code, and add test to test without creating a class - significantly faster!

* Modify _verify_ets.py to allow easy switching between statsforecast versions. This confirms that my algorithms without class overheads is significantly faster than nixtla statsforecast, and with class overheads, it is faster than their current algorithm

* Add basic gradient decent optimization algorithm for smoothing parameters

* Ajb/forecasting (#2357)

* Add fully functional ETS Forecaster. Modify base to not set default y in forecast. Update tests for ETS Forecaster. Add script to verify ETS Forecaster against statsforecast module using a large number of random parameter inputs.

* Add faster numba version of ETS forecaster

* Seperate out predict code, and add test to test without creating a class - significantly faster!

* Modify _verify_ets.py to allow easy switching between statsforecast versions. This confirms that my algorithms without class overheads is significantly faster than nixtla statsforecast, and with class overheads, it is faster than their current algorithm

* Add basic gradient decent optimization algorithm for smoothing parameters

---------

Co-authored-by: Alex Banwell <arb1g19@soton.ac.uk>

* Add additional AutoETS algorithms, and comparison scripts

* Add ARIMA model in

* [MNT] Testing fixes (#2531)

* adjust test for non numpy output

* test list output

* test dataframe output

* change pickle test

* equal nans

* test scalar output

* fix lists output

* allow arrays of objects

* allow arrays of objects

* test for boolean elements (MERLIN)

* switch to deep equals

* switch to deep equals

* switch to deep equals

* message

* testing fixes

---------

Co-authored-by: Tony Bagnall <ajb@uea.ac.uk>

* Automated `pre-commit` hook update (#2533)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [DOC] Improve type hint guide and add link to the page. (#2532)

* type hints

* bad change

* text

* Add new datasets to tsf_datasets.py

* Add functions for writing out .tsf files, as well as functions for manipulating the train/test split and windowing

* Fix issues causing tests to fail

* [DOC] Add 'Raises' section to docstring (#1766) (#2484)

* Fix line endings

* Moved test_cboss.py to testing/tests directory

* Updated docstring comments and made methods protected

* Fix line endings

* Moved test_cboss.py to testing/tests directory

* Updated docstring comments and made methods protected

* Updated

* Updated

* Removed test_cboss.py

* Updated

* Updated

* Add files for generating the datasets, and the CSV for the chosen datasets

* Add windowed series train/test files

* Automated `pre-commit` hook update (#2541)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* fix test (#2528)

* [BUG] add ExpSmoothingSeriesTransformer and MovingAverageSeriesTransformer to __init__ (#2550)

* update docs to fix 2548 docs

* update init to fix 2548 bug

* Automated `pre-commit` hook update (#2567)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT] Bump ossf/scorecard-action in the github-actions group (#2569)

Bumps the github-actions group with 1 update: [ossf/scorecard-action](https://github.com/ossf/scorecard-action).


Updates `ossf/scorecard-action` from 2.4.0 to 2.4.1
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](ossf/scorecard-action@v2.4.0...v2.4.1)

---
updated-dependencies:
- dependency-name: ossf/scorecard-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [ENH] Added class weights to feature based classifiers (#2512)

* class weights added to classification/feature based

* Automatic `pre-commit` fixes

* Test function for Catch22Classifier added

* Test function for SummaryClassifier added

* Test for tsfreshClassifier added

* Soft dependecy check added for tsfresh

* Test signature test case added

* added test_mlp.py (#2537)

* test file for FCNNetwork added (#2559)

* Documentation improvement of certain BaseClasses (#2516)

Co-authored-by: Antoine Guillaume <antoine.guillaume45@gmail.com>

* [ENH] Test coverage for AEFCNNetwork Improved  (#2558)

* test file added for aefcn

* Test file for aefcn added

* Test file reforammted

* soft dependency added

* name issues resolved

* [ENH] Test coverage for TimeCNNNetwork Improved (#2534)

* Test coverage improved for cnn network

* assertion changed for test_cnn

* coverage improved along with naming

* [ENH] Test coverage for Resnet Network (#2553)

* Resnet pytest

* Resnet pytest

* Fixed tensorflow failing

* Added Resnet in function name

* 📝 Add shinymack as a contributor for code (#2577)

* 📝 Update CONTRIBUTORS.md [skip ci]

* 📝 Update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* 📝 Add kevinzb56 as a contributor for doc (#2588)

* 📝 Update CONTRIBUTORS.md [skip ci]

* 📝 Update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* [MNT] Raise version bound for `scikit-learn` 1.6 (#2486)

* update ver and new tags

* default tags

* toml

* Update _shapelets.py

Fix linear estimator coefs issue

* expected results

* Change expected results

* update

* only linux

* remove mixins just to see test

* revert

---------

Co-authored-by: Antoine Guillaume <antoine.guillaume45@gmail.com>

* [MNT] Bump the python-packages group across 1 directory with 2 updates (#2598)

Updates the requirements on [scipy](https://github.com/scipy/scipy) and [sphinx](https://github.com/sphinx-doc/sphinx) to permit the latest version.

Updates `scipy` to 1.15.2
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](scipy/scipy@v1.9.0...v1.15.2)

Updates `sphinx` to 8.2.3
- [Release notes](https://github.com/sphinx-doc/sphinx/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/master/CHANGES.rst)
- [Commits](sphinx-doc/sphinx@v0.1.61611...v8.2.3)

---
updated-dependencies:
- dependency-name: scipy
  dependency-type: direct:production
  dependency-group: python-packages
- dependency-name: sphinx
  dependency-type: direct:production
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Automated `pre-commit` hook update (#2581)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* Automated `pre-commit` hook update (#2603)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [ENH] Adds support for distances that are asymmetric but supports unequal length (#2613)

* Adds support for distances that are asymmetric but supports unequal length

* Added name to contributors

* create smoothing filters notebook (#2547)

* Remove datasets added

* Reorganise code for generating train/test cluster files, including adding sliding window and train/test transformers

* Add NaiveForecaster

* Fix Bug in NaiveForecaster

* Fix dataset generate script stuff

* [DOC] Notebook on Feature-based Clustering (#2579)

* Feature-based clustering

* Feature-based clustering update

* Update clustering overview

* formatting

* Automated `CONTRIBUTORS.md` update (#2614)

Co-authored-by: chrisholder <4674372+chrisholder@users.noreply.github.com>

* Updated Interval Based Notebook (#2620)

* [DOC] Added Docstring for regression forecasting (#2564)

* Added Docstring for Regression

* Added Docstring for Regression

* exog fix

* GSoC announcement (#2629)

* Automated `pre-commit` hook update (#2632)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT] Bump tj-actions/changed-files from 45 to 46 in the github-actions group (#2637)

* [MNT] Bump tj-actions/changed-files in the github-actions group

Bumps the github-actions group with 1 update: [tj-actions/changed-files](https://github.com/tj-actions/changed-files).


Updates `tj-actions/changed-files` from 45 to 46
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](tj-actions/changed-files@v45...v46)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pr_precommit.yml

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* [MNT] Update numpy requirement in the python-packages group (#2643)

Updates the requirements on [numpy](https://github.com/numpy/numpy) to permit the latest version.

Updates `numpy` to 2.2.4
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](numpy/numpy@v1.21.0...v2.2.4)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [MNT,DEP] _binary.py metrics deprecated  (#2600)

* functions deprecated

* Empty-Commit

* version changed

* Support for unequal length timeseries in itakura parallelogram (#2647)

* [ENH] Implement DTW with Global alignment (#2565)

* Implements Dynamic Time Warping with Global Invariances

* Adds Numba JIT compilation support

* Adds docs and numba support for dtw_gi and test_distance fixed

* Fixes doctests

* Automatic `pre-commit` fixes

* Minor changes

* Minor changes

* Remove dtw_gi function and combine with private method _dtw_gi

* Adds parameter tests

* Fixes doctests

* Minor changes

* [ENH] Adds kdtw kernel support for kernelkmeans (#2645)

* Adds kdtw kernel support for kernelkmeans

* Code refactor

* Adds tests for kdtw clustering

* minor changes

* minor changes

* [MNT] Skip some excected results tests when numba is disabled (#2639)

* skip some numba tests

* Empty commit for CI

* Update testing_config.py

---------

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT] Remove REDCOMETs from testing exclusion list (#2630)

* remove excluded estimators

* redcomets fix

* Ensure ETS algorithms are behaving correctly, and do more testing on AutoETS, along with AutoETS forecaster class

* Fix a couple of bugs in the forecasters, add Sktime and StatsForecast wrappers for their AutoETS implementations

* [ENH] Replace `prts` metrics (#2400)

* Pre-commit fixes

* Position parameter in calculate_bias

* Added recall metric

* merged into into one file

* test added

* Changes in test and range_metrics

* list of list running but error!

* flattening lists, all cases passed

* Empty-Commit

* changes

* Protected functions

* Changes in documentation

* Changed test cases into seperate functions

* test cases added and added range recall

* udf_gamma removed from precision

* changes

* more changes

* recommended changes

* changes

* Added Parameters

* removed udf_gamma from precision

* Added binary to range

* error fixing

* test comparing prts and range_metrics

* Beta parameter added in fscore

* Added udf_gamma function

* f-score failing when comparing against prts

* fixed f-score output

* alpha usage

* Empty-Commit

* added test case to use range-based input for metrics

* soft dependency added

* doc update

---------

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>
Co-authored-by: Sebastian Schmidl <10573700+SebastianSchmidl@users.noreply.github.com>

* Clarify documentation regarding unequal length series limitation (#2589)

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* Automated `pre-commit` hook update (#2683)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT] Bump tj-actions/changed-files in the github-actions group (#2686)

Bumps the github-actions group with 1 update: [tj-actions/changed-files](https://github.com/tj-actions/changed-files).


Updates `tj-actions/changed-files` from 46.0.1 to 46.0.3
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](tj-actions/changed-files@v46.0.1...v46.0.3)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [ENH] Set `outlier_norm` default to True for Catch22 estimators (#2659)

* sets outlier_norm=True by deafault

* Minor changes

* Docs improvement

* [MNT] Use MacOS for examples/ workflow (#2668)

* update bash to 5.x for lastpipe support

* added esig installation

* install boost before esig

* fixed examples path issue for excluded notebooks

* switched to fixed version of macos

* added signature_method.ipynb to excluded list

* removed symlink for /bin/bash

* Correct AutoETS algorithms to not use multiplicative error models for data which is not strictly positive. Add check to ets for this

* Reject multiplicative components for data not strictly positive

* Update dependencies.md (#2717)

Correct typo in dependencies.md

* Automated `pre-commit` hook update (#2708)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [ENH] Test Coverage for Pairwise Distance (#2590)

* Pairwise distance matrix test

* Empty commit for CI

---------

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* re-running notebook for fixing cell output error (#2597)

* Docstring (#2609)

* [DOC] Add 'Raises' section to docstring #1766 (#2617)

* [DOC] Add 'Raises' section to docstring #1766

* Automatic `pre-commit` fixes

* Update _base.py

* Automatic `pre-commit` fixes

---------

Co-authored-by: ayushsingh9720 <199482418+ayushsingh9720@users.noreply.github.com>

* [DOC] Contributor docs update (#2554)

* contributing docs update

* contributing docs update 2

* typos

* Update contributing.md

new section

* Update testing.md

testing update

* Update contributing.md

dont steal code

* Automatic `pre-commit` fixes

* Update contributing.md

if

---------

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>
Co-authored-by: Antoine Guillaume <antoine.guillaume45@gmail.com>

* prevent assignment on PRs (#2703)

* Update run_examples.sh (#2701)

* [BUG] SevenNumberSummary bugfix and input rename (#2555)

* summary bugfix

* maintainer

* test

* readme (#2556)

* remove MutilROCKETRegressor from alias mapping (#2623)

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* Automated `pre-commit` hook update (#2731)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT] Bump the github-actions group with 2 updates (#2733)

Bumps the github-actions group with 2 updates: [actions/create-github-app-token](https://github.com/actions/create-github-app-token) and [tj-actions/changed-files](https://github.com/tj-actions/changed-files).


Updates `actions/create-github-app-token` from 1 to 2
- [Release notes](https://github.com/actions/create-github-app-token/releases)
- [Commits](actions/create-github-app-token@v1...v2)

Updates `tj-actions/changed-files` from 46.0.3 to 46.0.4
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](tj-actions/changed-files@v46.0.3...v46.0.4)

---
updated-dependencies:
- dependency-name: actions/create-github-app-token
  dependency-version: '2'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: tj-actions/changed-files
  dependency-version: 46.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fixed a few spelling/grammar mistakes on TSC docs examples (#2738)

* Fix docstring inconsistencies in benchmarking module (resolves #809) (#2735)

* issue#809 Fix docstrings for benchmarking functions

* Fixed docstrings in results_loaders.py

* Fix docstring inconsistencies in benchmarking module - resolves #809

* Fix docstring inconsistencies in benchmarking module - resolves #809

* [ENH] `best_on_top` addition in `plot_pairwise_scatter` (#2655)

* Empty-Commit

* best_on_top parameter added

* changes

* [ENH] Add dummy clusterer tags (#2551)

* dummy clusterer tags

* len

* [ENH] Collection conversion cleanup and `df-list` fix (#2654)

* collection conversion cleanup

* notebook

* fixes

---------

Co-authored-by: Tony Bagnall <a.j.bagnall@soton.ac.uk>

* [MNT] Updated the release workflows (#2638)

* edit release workflows to use trusted publishing

* docs

* [MNT,ENH]  Update to allow Python 3.13 (#2608)

* python 3.13

* tensorflow

* esig

* tensorflow

* tensorflow

* esig and matrix profile

* signature notebook

* remove prts

* fix

* remove annoying deps from all_extras

* Update pyproject.toml

* [ENH] Hard-Coded Tests for `test_metrics.py` (#2672)

* Empty-Commit

* hard-coded tests

* changes

* Changed single ticks to double (#2640)

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* 📝 Add HaroonAzamFiza as a contributor for doc (#2740)

* 📝 Update CONTRIBUTORS.md [skip ci]

* 📝 Update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* [ENH,MNT] Assign Bot (assigned issues>2) (#2702)

* Empty-Commit

* point 2 working

* changes

* changes in comment message

* [MNT,ENH] Assign-bot (Allow users to type alternative phrases for assingment) (#2704)

* added extra features

* added comments

* optimized code

* optimized code

* made changes requested by moderators

* fixed conflicts

* fixed conflicts

* fixed conflicts

---------

Co-authored-by: Ramana-Raja <ramanarajakesavaraja@gamil.com>

* 📝 Add Ramana-Raja as a contributor for code (#2741)

* 📝 Update CONTRIBUTORS.md [skip ci]

* 📝 Update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Release v1.1.0 (#2696)

* v1.1.0 draft

* finish

* Automated `pre-commit` hook update (#2743)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT] Bump the github-actions group with 2 updates (#2744)

Bumps the github-actions group with 2 updates: [crs-k/stale-branches](https://github.com/crs-k/stale-branches) and [tj-actions/changed-files](https://github.com/tj-actions/changed-files).


Updates `crs-k/stale-branches` from 7.0.0 to 7.0.1
- [Release notes](https://github.com/crs-k/stale-branches/releases)
- [Commits](crs-k/stale-branches@v7.0.0...v7.0.1)

Updates `tj-actions/changed-files` from 46.0.4 to 46.0.5
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](tj-actions/changed-files@v46.0.4...v46.0.5)

---
updated-dependencies:
- dependency-name: crs-k/stale-branches
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: tj-actions/changed-files
  dependency-version: 46.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [DOC] Add implementation references (#2748)

* implementation references

* better attribution

* use gpu installs for periodic tests (#2747)

* Use shape calculation in _fit to optimize QUANTTransformer (#2727)

* [REF] Refactor Anomaly Detection Module into Submodules by Algorithm Family (#2694)

* Refactor Anomaly Detection Module into Submodules by Algorithm Family

* updated documentation and references

* implemented suggested changes

* minor changes

* added headers for remaining algorithm family

* removing tree-based header

* Automated `pre-commit` hook update (#2756)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [ENH]Type hints/forecasting (#2737)

* Type hints for primitive data types in base module

* Type hints for primitive data types and strings
in forecating module

* type hints for primitives in foreacasting module

* Revert "type hints for primitives in foreacasting module"

This reverts commit 575122d.

* type hints for primitives in forecasting module

* Automated `pre-commit` hook update (#2766)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [ENH] Implement `load_model` function for ensemble classifiers (#2631)

* feat: implement `load_model` function for LITETimeClassifier

Implement separate `load_model` function for LITETimeClassifier, which takes in `model_path` as list of strings and `classes` and loads all the models separately and stores them in `self.classifiers_`

* feat: implement `load_model` function for InceptionTimeClassifier

Implement separate `load_model` function for InceptionTimeClassifier, which takes in `model_path` as list of strings and `classes` and loads all the models separately and stores them in `self.classifiers_`

* fix: typo in load model function

* feat: convert load_model functions to classmethods

* test: implement test for save load for LITETIME and Inception classification models

* Automatic `pre-commit` fixes

* refactor: move loading tests to separate files

* Update _ae_abgru.py (#2771)

* Automated `pre-commit` hook update (#2779)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [DOC] Fix Broken [Source] Link and Improve Documentation for suppress_output() (#2677)

* Fix Broken [Source] Link and Improve Documentation for suppress_output() Function

* modified docstring and added tests

* modified docstring example

* modifying docstring examples

* modifying docstring examples

* updating conf file

* updated docstring

* base transform tidy (#2773)

* DOC: Add Raises section for invalid weights in KNeighborsTimeSeriesClassifier (#1766) (#2764)

Document the ValueError raised during initialization when an unsupported value is passed to the 'weights' parameter.

Clarifies expected exceptions for users and improves API documentation consistency.

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* [ENH] Fixes Issue Improve `_check_params` method in `kmeans.py` and `kmedoids.py` (#2682)

* Improves _check_params

* removes function and adds a var

* minor changes

* minor changes

* minor changes

* line endings to LF

* use variable instead of duplicating strings

* weird file change

* weird file change

---------

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* [ENH] Add type hints for deep learning regression classes (#2644)

* type hints for cnn for regrssion

* editing import modules Model & Optim

* type hints for disjoint_cnn for regrssion

* FIX type hints _get_test_params

* ENH Change linie of importing typing

* type hints for _encoder for regrssion

* type hints for _fcn for regrssion

* type hints for _inception_time for regrssion

* type hints for _lite_time for regrssion

* type hints for _mlp for regrssion

* type hints for _resnet for regrssion

* type hints for _base for regrssion

* FIX: mypy errors in _disjoint_cnn.py file

* FIX: mypy typing errors

* Fix: Delete variable types, back old-verbose

* FIX: add model._save in save_last_model_to_file function

* FIX: Put TYPE_CHECKING downside

* Fix: Put Any at the top

* [DOC] Add RotationForest Classifier Notebook for Time Series Classification (#2592)

* Add RotationForest Classifier Notebook for Time Series Classification

* Added references and modified doc

* minor modifications to notebook description

* Update rotation_forest.ipynb

---------

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* fix: Codeowners for benchmarking metrics AD (#2784)

* [GOV] Supporting Developer role (#2775)

* supporting dev role

* pr req

* Update governance.md

* typo

* Automatic `pre-commit` fixes

* aeon

---------

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT, ENH, DOC] Rework similarity search (#2473)

* WIP remake module structure

* Update _brute_force.py

* Update test__commons.py

* WIP mock and test

* Add test for base subsequence

* Fix subsequence_search tests

* debug brute force mp

* more debug of subsequence tests

* more debug of subsequence tests

* Add functional LSH neighbors

* add notebook for sim search tasks

* Updated series similarity search

* Fix mistake addition in transformers and fix base classes

* Fix registry and api reference

* Update documentation and fix some leftover bugs

* Update documentation and add default test params

* Fix identifiers and test data shape for all_estimators tests

* Fix missing params

* Fix n_jobs params and tags, add some docs

* Fix numba test bug and update testing data for sim search

* Fix imports, testing data tests, and impose predict/_predict interface to all sim search estimators

* Fix args

* Fix extract test

* update docs api and notebooks

* remove notes

* Patrick comments

* Adress comments and clean index code

* Fix Patrick comments

* Fix variable suppression mistake

* Divide base class into task specific

* Fix typo in imports

* Empty commit for CI

* Fix typo again

* Add  check_inheritance exception for similarity search

* Revert back to non per type base classes

* Factor check index and typo in test

---------

Co-authored-by: Patrick Schäfer <patrick.schaefer@hu-berlin.de>
Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>
Co-authored-by: baraline <10759117+baraline@users.noreply.github.com>

* [ENH] Adapt the DCNN Networks to use Weight Norm Wrappers (#2628)

* adapt the dcnn networks to use weight norm wrappers and remove l2 regularization

* Automatic `pre-commit` fixes

* add custom object

* Automatic `pre-commit` fixes

* fix trial

---------

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* [GOV] Remove inactive developers (#2776)

* inactive devs

* logo fix

* Automated `pre-commit` hook update (#2792)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* Code to generate differenced datasets

* Add AutoARIMA algorithm into Aeon

* Add ArimaForecaster to forecasting list

* Fix predict method to return the prediction in the correct format

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Tony Bagnall <ajb@uea.ac.uk>
Co-authored-by: Tony Bagnall <a.j.bagnall@soton.ac.uk>
Co-authored-by: MatthewMiddlehurst <m.middlehurst@uea.ac.uk>
Co-authored-by: Alex Banwell <arb1g19@soton.ac.uk>
Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>
Co-authored-by: aeon-actions-bot[bot] <148872591+aeon-actions-bot[bot]@users.noreply.github.com>
Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>
Co-authored-by: Nikita Singh <singhnikkita444@gmail.com>
Co-authored-by: Ali El Hadi ISMAIL FAWAZ <54309336+hadifawaz1999@users.noreply.github.com>
Co-authored-by: Cyril Meyer <69190238+Cyril-Meyer@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Balgopal Moharana <99070111+lucifer4073@users.noreply.github.com>
Co-authored-by: Akash Kawle <128881349+shinymack@users.noreply.github.com>
Co-authored-by: Kevin Shah <161136814+kevinzb56@users.noreply.github.com>
Co-authored-by: Antoine Guillaume <antoine.guillaume45@gmail.com>
Co-authored-by: Kavya Rambhia <161142013+kavya-r30@users.noreply.github.com>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Tanish Yelgoe <143334319+tanishy7777@users.noreply.github.com>
Co-authored-by: Divya Tiwari <108270861+itsdivya1309@users.noreply.github.com>
Co-authored-by: chrisholder <4674372+chrisholder@users.noreply.github.com>
Co-authored-by: Aryan Pola <98093778+aryanpola@users.noreply.github.com>
Co-authored-by: Sebastian Schmidl <10573700+SebastianSchmidl@users.noreply.github.com>
Co-authored-by: Kaustubh <97254178+Kaustbh@users.noreply.github.com>
Co-authored-by: TinaJin0228 <60577222+TinaJin0228@users.noreply.github.com>
Co-authored-by: Ayush Singh <rawatsinghayush9720@gmail.com>
Co-authored-by: ayushsingh9720 <199482418+ayushsingh9720@users.noreply.github.com>
Co-authored-by: HaroonAzamFiza <haroonazamfiza@gmail.com>
Co-authored-by: adityagh006 <142653450+adityagh006@users.noreply.github.com>
Co-authored-by: V_26@ <valencia.saldanha26@gmail.com>
Co-authored-by: Ramana Raja <83065061+Ramana-Raja@users.noreply.github.com>
Co-authored-by: Ramana-Raja <ramanarajakesavaraja@gamil.com>
Co-authored-by: Ahmed Zahran <136983104+Ahmed-Zahran02@users.noreply.github.com>
Co-authored-by: Adarsh Dubey <dubeyadarshmain@gmail.com>
Co-authored-by: Somto Onyekwelu <117727947+SomtoOnyekwelu@users.noreply.github.com>
Co-authored-by: Saad Al-Tohamy <92796871+saadaltohamy@users.noreply.github.com>
Co-authored-by: Patrick Schäfer <patrick.schaefer@hu-berlin.de>
Co-authored-by: baraline <10759117+baraline@users.noreply.github.com>
Co-authored-by: Aadya Chinubhai <77720426+aadya940@users.noreply.github.com>
alexbanwell1 added a commit that referenced this pull request May 20, 2025
* forecaster base and dummy

* forecasting tests

* forecasting tests

* forecasting tests

* forecasting tests

* regression

* notebook

* regressor

* regressor

* regressor

* tags

* tags

* requires_y

* forecasting notebook

* forecasting notebook

* remove tags

* fix forecasting testing (they still fail though)

* _is_fitted -> is_fitted

* _is_fitted -> is_fitted

* _forecast

* notebook

* is_fitted

* y_fitted

* ETS forecaster

* add y checks and conversion

* add tag

* tidy

* _check_is_fitted()

* _check_is_fitted()

* Add fully functional ETS Forecaster. Modify base to not set default y in forecast. Update tests for ETS Forecaster. Add script to verify ETS Forecaster against statsforecast module using a large number of random parameter inputs.

* Add fully functional ETS Forecaster. Modify base to not set default y in forecast. Update tests for ETS Forecaster. Add script to verify ETS Forecaster against statsforecast module using a large number of random parameter inputs. (#2318)

Co-authored-by: Alex Banwell <arb1g19@soton.ac.uk>

* Add faster numba version of ETS forecaster

* Seperate out predict code, and add test to test without creating a class - significantly faster!

* Modify _verify_ets.py to allow easy switching between statsforecast versions. This confirms that my algorithms without class overheads is significantly faster than nixtla statsforecast, and with class overheads, it is faster than their current algorithm

* Add basic gradient decent optimization algorithm for smoothing parameters

* Ajb/forecasting (#2357)

* Add fully functional ETS Forecaster. Modify base to not set default y in forecast. Update tests for ETS Forecaster. Add script to verify ETS Forecaster against statsforecast module using a large number of random parameter inputs.

* Add faster numba version of ETS forecaster

* Seperate out predict code, and add test to test without creating a class - significantly faster!

* Modify _verify_ets.py to allow easy switching between statsforecast versions. This confirms that my algorithms without class overheads is significantly faster than nixtla statsforecast, and with class overheads, it is faster than their current algorithm

* Add basic gradient decent optimization algorithm for smoothing parameters

---------

Co-authored-by: Alex Banwell <arb1g19@soton.ac.uk>

* Add additional AutoETS algorithms, and comparison scripts

* Add ARIMA model in

* [MNT] Testing fixes (#2531)

* adjust test for non numpy output

* test list output

* test dataframe output

* change pickle test

* equal nans

* test scalar output

* fix lists output

* allow arrays of objects

* allow arrays of objects

* test for boolean elements (MERLIN)

* switch to deep equals

* switch to deep equals

* switch to deep equals

* message

* testing fixes

---------

Co-authored-by: Tony Bagnall <ajb@uea.ac.uk>

* Automated `pre-commit` hook update (#2533)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [DOC] Improve type hint guide and add link to the page. (#2532)

* type hints

* bad change

* text

* Add new datasets to tsf_datasets.py

* Add functions for writing out .tsf files, as well as functions for manipulating the train/test split and windowing

* Fix issues causing tests to fail

* [DOC] Add 'Raises' section to docstring (#1766) (#2484)

* Fix line endings

* Moved test_cboss.py to testing/tests directory

* Updated docstring comments and made methods protected

* Fix line endings

* Moved test_cboss.py to testing/tests directory

* Updated docstring comments and made methods protected

* Updated

* Updated

* Removed test_cboss.py

* Updated

* Updated

* Add files for generating the datasets, and the CSV for the chosen datasets

* Add windowed series train/test files

* Automated `pre-commit` hook update (#2541)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* fix test (#2528)

* [BUG] add ExpSmoothingSeriesTransformer and MovingAverageSeriesTransformer to __init__ (#2550)

* update docs to fix 2548 docs

* update init to fix 2548 bug

* Automated `pre-commit` hook update (#2567)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT] Bump ossf/scorecard-action in the github-actions group (#2569)

Bumps the github-actions group with 1 update: [ossf/scorecard-action](https://github.com/ossf/scorecard-action).

Updates `ossf/scorecard-action` from 2.4.0 to 2.4.1
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](ossf/scorecard-action@v2.4.0...v2.4.1)

---
updated-dependencies:
- dependency-name: ossf/scorecard-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [ENH] Added class weights to feature based classifiers (#2512)

* class weights added to classification/feature based

* Automatic `pre-commit` fixes

* Test function for Catch22Classifier added

* Test function for SummaryClassifier added

* Test for tsfreshClassifier added

* Soft dependecy check added for tsfresh

* Test signature test case added

* added test_mlp.py (#2537)

* test file for FCNNetwork added (#2559)

* Documentation improvement of certain BaseClasses (#2516)

Co-authored-by: Antoine Guillaume <antoine.guillaume45@gmail.com>

* [ENH] Test coverage for AEFCNNetwork Improved  (#2558)

* test file added for aefcn

* Test file for aefcn added

* Test file reforammted

* soft dependency added

* name issues resolved

* [ENH] Test coverage for TimeCNNNetwork Improved (#2534)

* Test coverage improved for cnn network

* assertion changed for test_cnn

* coverage improved along with naming

* [ENH] Test coverage for Resnet Network (#2553)

* Resnet pytest

* Resnet pytest

* Fixed tensorflow failing

* Added Resnet in function name

* 📝 Add shinymack as a contributor for code (#2577)

* 📝 Update CONTRIBUTORS.md [skip ci]

* 📝 Update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* 📝 Add kevinzb56 as a contributor for doc (#2588)

* 📝 Update CONTRIBUTORS.md [skip ci]

* 📝 Update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* [MNT] Raise version bound for `scikit-learn` 1.6 (#2486)

* update ver and new tags

* default tags

* toml

* Update _shapelets.py

Fix linear estimator coefs issue

* expected results

* Change expected results

* update

* only linux

* remove mixins just to see test

* revert

---------

Co-authored-by: Antoine Guillaume <antoine.guillaume45@gmail.com>

* [MNT] Bump the python-packages group across 1 directory with 2 updates (#2598)

Updates the requirements on [scipy](https://github.com/scipy/scipy) and [sphinx](https://github.com/sphinx-doc/sphinx) to permit the latest version.

Updates `scipy` to 1.15.2
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](scipy/scipy@v1.9.0...v1.15.2)

Updates `sphinx` to 8.2.3
- [Release notes](https://github.com/sphinx-doc/sphinx/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/master/CHANGES.rst)
- [Commits](sphinx-doc/sphinx@v0.1.61611...v8.2.3)

---
updated-dependencies:
- dependency-name: scipy
  dependency-type: direct:production
  dependency-group: python-packages
- dependency-name: sphinx
  dependency-type: direct:production
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Automated `pre-commit` hook update (#2581)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* Automated `pre-commit` hook update (#2603)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [ENH] Adds support for distances that are asymmetric but supports unequal length (#2613)

* Adds support for distances that are asymmetric but supports unequal length

* Added name to contributors

* create smoothing filters notebook (#2547)

* Remove datasets added

* Reorganise code for generating train/test cluster files, including adding sliding window and train/test transformers

* Add NaiveForecaster

* Fix Bug in NaiveForecaster

* Fix dataset generate script stuff

* [DOC] Notebook on Feature-based Clustering (#2579)

* Feature-based clustering

* Feature-based clustering update

* Update clustering overview

* formatting

* Automated `CONTRIBUTORS.md` update (#2614)

Co-authored-by: chrisholder <4674372+chrisholder@users.noreply.github.com>

* Updated Interval Based Notebook (#2620)

* [DOC] Added Docstring for regression forecasting (#2564)

* Added Docstring for Regression

* Added Docstring for Regression

* exog fix

* GSoC announcement (#2629)

* Automated `pre-commit` hook update (#2632)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT] Bump tj-actions/changed-files from 45 to 46 in the github-actions group (#2637)

* [MNT] Bump tj-actions/changed-files in the github-actions group

Bumps the github-actions group with 1 update: [tj-actions/changed-files](https://github.com/tj-actions/changed-files).

Updates `tj-actions/changed-files` from 45 to 46
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](tj-actions/changed-files@v45...v46)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pr_precommit.yml

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* [MNT] Update numpy requirement in the python-packages group (#2643)

Updates the requirements on [numpy](https://github.com/numpy/numpy) to permit the latest version.

Updates `numpy` to 2.2.4
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](numpy/numpy@v1.21.0...v2.2.4)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [MNT,DEP] _binary.py metrics deprecated  (#2600)

* functions deprecated

* Empty-Commit

* version changed

* Support for unequal length timeseries in itakura parallelogram (#2647)

* [ENH] Implement DTW with Global alignment (#2565)

* Implements Dynamic Time Warping with Global Invariances

* Adds Numba JIT compilation support

* Adds docs and numba support for dtw_gi and test_distance fixed

* Fixes doctests

* Automatic `pre-commit` fixes

* Minor changes

* Minor changes

* Remove dtw_gi function and combine with private method _dtw_gi

* Adds parameter tests

* Fixes doctests

* Minor changes

* [ENH] Adds kdtw kernel support for kernelkmeans (#2645)

* Adds kdtw kernel support for kernelkmeans

* Code refactor

* Adds tests for kdtw clustering

* minor changes

* minor changes

* [MNT] Skip some excected results tests when numba is disabled (#2639)

* skip some numba tests

* Empty commit for CI

* Update testing_config.py

---------

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT] Remove REDCOMETs from testing exclusion list (#2630)

* remove excluded estimators

* redcomets fix

* Ensure ETS algorithms are behaving correctly, and do more testing on AutoETS, along with AutoETS forecaster class

* Fix a couple of bugs in the forecasters, add Sktime and StatsForecast wrappers for their AutoETS implementations

* [ENH] Replace `prts` metrics (#2400)

* Pre-commit fixes

* Position parameter in calculate_bias

* Added recall metric

* merged into into one file

* test added

* Changes in test and range_metrics

* list of list running but error!

* flattening lists, all cases passed

* Empty-Commit

* changes

* Protected functions

* Changes in documentation

* Changed test cases into seperate functions

* test cases added and added range recall

* udf_gamma removed from precision

* changes

* more changes

* recommended changes

* changes

* Added Parameters

* removed udf_gamma from precision

* Added binary to range

* error fixing

* test comparing prts and range_metrics

* Beta parameter added in fscore

* Added udf_gamma function

* f-score failing when comparing against prts

* fixed f-score output

* alpha usage

* Empty-Commit

* added test case to use range-based input for metrics

* soft dependency added

* doc update

---------

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>
Co-authored-by: Sebastian Schmidl <10573700+SebastianSchmidl@users.noreply.github.com>

* Clarify documentation regarding unequal length series limitation (#2589)

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* Automated `pre-commit` hook update (#2683)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT] Bump tj-actions/changed-files in the github-actions group (#2686)

Bumps the github-actions group with 1 update: [tj-actions/changed-files](https://github.com/tj-actions/changed-files).

Updates `tj-actions/changed-files` from 46.0.1 to 46.0.3
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](tj-actions/changed-files@v46.0.1...v46.0.3)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [ENH] Set `outlier_norm` default to True for Catch22 estimators (#2659)

* sets outlier_norm=True by deafault

* Minor changes

* Docs improvement

* [MNT] Use MacOS for examples/ workflow (#2668)

* update bash to 5.x for lastpipe support

* added esig installation

* install boost before esig

* fixed examples path issue for excluded notebooks

* switched to fixed version of macos

* added signature_method.ipynb to excluded list

* removed symlink for /bin/bash

* Correct AutoETS algorithms to not use multiplicative error models for data which is not strictly positive. Add check to ets for this

* Reject multiplicative components for data not strictly positive

* Update dependencies.md (#2717)

Correct typo in dependencies.md

* Automated `pre-commit` hook update (#2708)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [ENH] Test Coverage for Pairwise Distance (#2590)

* Pairwise distance matrix test

* Empty commit for CI

---------

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* re-running notebook for fixing cell output error (#2597)

* Docstring (#2609)

* [DOC] Add 'Raises' section to docstring #1766 (#2617)

* [DOC] Add 'Raises' section to docstring #1766

* Automatic `pre-commit` fixes

* Update _base.py

* Automatic `pre-commit` fixes

---------

Co-authored-by: ayushsingh9720 <199482418+ayushsingh9720@users.noreply.github.com>

* [DOC] Contributor docs update (#2554)

* contributing docs update

* contributing docs update 2

* typos

* Update contributing.md

new section

* Update testing.md

testing update

* Update contributing.md

dont steal code

* Automatic `pre-commit` fixes

* Update contributing.md

if

---------

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>
Co-authored-by: Antoine Guillaume <antoine.guillaume45@gmail.com>

* prevent assignment on PRs (#2703)

* Update run_examples.sh (#2701)

* [BUG] SevenNumberSummary bugfix and input rename (#2555)

* summary bugfix

* maintainer

* test

* readme (#2556)

* remove MutilROCKETRegressor from alias mapping (#2623)

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* Automated `pre-commit` hook update (#2731)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT] Bump the github-actions group with 2 updates (#2733)

Bumps the github-actions group with 2 updates: [actions/create-github-app-token](https://github.com/actions/create-github-app-token) and [tj-actions/changed-files](https://github.com/tj-actions/changed-files).

Updates `actions/create-github-app-token` from 1 to 2
- [Release notes](https://github.com/actions/create-github-app-token/releases)
- [Commits](actions/create-github-app-token@v1...v2)

Updates `tj-actions/changed-files` from 46.0.3 to 46.0.4
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](tj-actions/changed-files@v46.0.3...v46.0.4)

---
updated-dependencies:
- dependency-name: actions/create-github-app-token
  dependency-version: '2'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: tj-actions/changed-files
  dependency-version: 46.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fixed a few spelling/grammar mistakes on TSC docs examples (#2738)

* Fix docstring inconsistencies in benchmarking module (resolves #809) (#2735)

* issue#809 Fix docstrings for benchmarking functions

* Fixed docstrings in results_loaders.py

* Fix docstring inconsistencies in benchmarking module - resolves #809

* Fix docstring inconsistencies in benchmarking module - resolves #809

* [ENH] `best_on_top` addition in `plot_pairwise_scatter` (#2655)

* Empty-Commit

* best_on_top parameter added

* changes

* [ENH] Add dummy clusterer tags (#2551)

* dummy clusterer tags

* len

* [ENH] Collection conversion cleanup and `df-list` fix (#2654)

* collection conversion cleanup

* notebook

* fixes

---------

Co-authored-by: Tony Bagnall <a.j.bagnall@soton.ac.uk>

* [MNT] Updated the release workflows (#2638)

* edit release workflows to use trusted publishing

* docs

* [MNT,ENH]  Update to allow Python 3.13 (#2608)

* python 3.13

* tensorflow

* esig

* tensorflow

* tensorflow

* esig and matrix profile

* signature notebook

* remove prts

* fix

* remove annoying deps from all_extras

* Update pyproject.toml

* [ENH] Hard-Coded Tests for `test_metrics.py` (#2672)

* Empty-Commit

* hard-coded tests

* changes

* Changed single ticks to double (#2640)

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* 📝 Add HaroonAzamFiza as a contributor for doc (#2740)

* 📝 Update CONTRIBUTORS.md [skip ci]

* 📝 Update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* [ENH,MNT] Assign Bot (assigned issues>2) (#2702)

* Empty-Commit

* point 2 working

* changes

* changes in comment message

* [MNT,ENH] Assign-bot (Allow users to type alternative phrases for assingment) (#2704)

* added extra features

* added comments

* optimized code

* optimized code

* made changes requested by moderators

* fixed conflicts

* fixed conflicts

* fixed conflicts

---------

Co-authored-by: Ramana-Raja <ramanarajakesavaraja@gamil.com>

* 📝 Add Ramana-Raja as a contributor for code (#2741)

* 📝 Update CONTRIBUTORS.md [skip ci]

* 📝 Update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Release v1.1.0 (#2696)

* v1.1.0 draft

* finish

* Automated `pre-commit` hook update (#2743)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT] Bump the github-actions group with 2 updates (#2744)

Bumps the github-actions group with 2 updates: [crs-k/stale-branches](https://github.com/crs-k/stale-branches) and [tj-actions/changed-files](https://github.com/tj-actions/changed-files).

Updates `crs-k/stale-branches` from 7.0.0 to 7.0.1
- [Release notes](https://github.com/crs-k/stale-branches/releases)
- [Commits](crs-k/stale-branches@v7.0.0...v7.0.1)

Updates `tj-actions/changed-files` from 46.0.4 to 46.0.5
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](tj-actions/changed-files@v46.0.4...v46.0.5)

---
updated-dependencies:
- dependency-name: crs-k/stale-branches
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: tj-actions/changed-files
  dependency-version: 46.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [DOC] Add implementation references (#2748)

* implementation references

* better attribution

* use gpu installs for periodic tests (#2747)

* Use shape calculation in _fit to optimize QUANTTransformer (#2727)

* [REF] Refactor Anomaly Detection Module into Submodules by Algorithm Family (#2694)

* Refactor Anomaly Detection Module into Submodules by Algorithm Family

* updated documentation and references

* implemented suggested changes

* minor changes

* added headers for remaining algorithm family

* removing tree-based header

* Automated `pre-commit` hook update (#2756)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [ENH]Type hints/forecasting (#2737)

* Type hints for primitive data types in base module

* Type hints for primitive data types and strings
in forecating module

* type hints for primitives in foreacasting module

* Revert "type hints for primitives in foreacasting module"

This reverts commit 575122d.

* type hints for primitives in forecasting module

* Automated `pre-commit` hook update (#2766)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [ENH] Implement `load_model` function for ensemble classifiers (#2631)

* feat: implement `load_model` function for LITETimeClassifier

Implement separate `load_model` function for LITETimeClassifier, which takes in `model_path` as list of strings and `classes` and loads all the models separately and stores them in `self.classifiers_`

* feat: implement `load_model` function for InceptionTimeClassifier

Implement separate `load_model` function for InceptionTimeClassifier, which takes in `model_path` as list of strings and `classes` and loads all the models separately and stores them in `self.classifiers_`

* fix: typo in load model function

* feat: convert load_model functions to classmethods

* test: implement test for save load for LITETIME and Inception classification models

* Automatic `pre-commit` fixes

* refactor: move loading tests to separate files

* Update _ae_abgru.py (#2771)

* Automated `pre-commit` hook update (#2779)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [DOC] Fix Broken [Source] Link and Improve Documentation for suppress_output() (#2677)

* Fix Broken [Source] Link and Improve Documentation for suppress_output() Function

* modified docstring and added tests

* modified docstring example

* modifying docstring examples

* modifying docstring examples

* updating conf file

* updated docstring

* base transform tidy (#2773)

* DOC: Add Raises section for invalid weights in KNeighborsTimeSeriesClassifier (#1766) (#2764)

Document the ValueError raised during initialization when an unsupported value is passed to the 'weights' parameter.

Clarifies expected exceptions for users and improves API documentation consistency.

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* [ENH] Fixes Issue Improve `_check_params` method in `kmeans.py` and `kmedoids.py` (#2682)

* Improves _check_params

* removes function and adds a var

* minor changes

* minor changes

* minor changes

* line endings to LF

* use variable instead of duplicating strings

* weird file change

* weird file change

---------

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* [ENH] Add type hints for deep learning regression classes (#2644)

* type hints for cnn for regrssion

* editing import modules Model & Optim

* type hints for disjoint_cnn for regrssion

* FIX type hints _get_test_params

* ENH Change linie of importing typing

* type hints for _encoder for regrssion

* type hints for _fcn for regrssion

* type hints for _inception_time for regrssion

* type hints for _lite_time for regrssion

* type hints for _mlp for regrssion

* type hints for _resnet for regrssion

* type hints for _base for regrssion

* FIX: mypy errors in _disjoint_cnn.py file

* FIX: mypy typing errors

* Fix: Delete variable types, back old-verbose

* FIX: add model._save in save_last_model_to_file function

* FIX: Put TYPE_CHECKING downside

* Fix: Put Any at the top

* [DOC] Add RotationForest Classifier Notebook for Time Series Classification (#2592)

* Add RotationForest Classifier Notebook for Time Series Classification

* Added references and modified doc

* minor modifications to notebook description

* Update rotation_forest.ipynb

---------

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* fix: Codeowners for benchmarking metrics AD (#2784)

* [GOV] Supporting Developer role (#2775)

* supporting dev role

* pr req

* Update governance.md

* typo

* Automatic `pre-commit` fixes

* aeon

---------

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT, ENH, DOC] Rework similarity search (#2473)

* WIP remake module structure

* Update _brute_force.py

* Update test__commons.py

* WIP mock and test

* Add test for base subsequence

* Fix subsequence_search tests

* debug brute force mp

* more debug of subsequence tests

* more debug of subsequence tests

* Add functional LSH neighbors

* add notebook for sim search tasks

* Updated series similarity search

* Fix mistake addition in transformers and fix base classes

* Fix registry and api reference

* Update documentation and fix some leftover bugs

* Update documentation and add default test params

* Fix identifiers and test data shape for all_estimators tests

* Fix missing params

* Fix n_jobs params and tags, add some docs

* Fix numba test bug and update testing data for sim search

* Fix imports, testing data tests, and impose predict/_predict interface to all sim search estimators

* Fix args

* Fix extract test

* update docs api and notebooks

* remove notes

* Patrick comments

* Adress comments and clean index code

* Fix Patrick comments

* Fix variable suppression mistake

* Divide base class into task specific

* Fix typo in imports

* Empty commit for CI

* Fix typo again

* Add  check_inheritance exception for similarity search

* Revert back to non per type base classes

* Factor check index and typo in test

---------

Co-authored-by: Patrick Schäfer <patrick.schaefer@hu-berlin.de>
Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>
Co-authored-by: baraline <10759117+baraline@users.noreply.github.com>

* [ENH] Adapt the DCNN Networks to use Weight Norm Wrappers (#2628)

* adapt the dcnn networks to use weight norm wrappers and remove l2 regularization

* Automatic `pre-commit` fixes

* add custom object

* Automatic `pre-commit` fixes

* fix trial

---------

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* [GOV] Remove inactive developers (#2776)

* inactive devs

* logo fix

* Automated `pre-commit` hook update (#2792)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* Code to generate differenced datasets

* Add AutoARIMA algorithm into Aeon

* Add ArimaForecaster to forecasting list

* Fix predict method to return the prediction in the correct format

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Tony Bagnall <ajb@uea.ac.uk>
Co-authored-by: Tony Bagnall <a.j.bagnall@soton.ac.uk>
Co-authored-by: MatthewMiddlehurst <m.middlehurst@uea.ac.uk>
Co-authored-by: Alex Banwell <arb1g19@soton.ac.uk>
Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>
Co-authored-by: aeon-actions-bot[bot] <148872591+aeon-actions-bot[bot]@users.noreply.github.com>
Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>
Co-authored-by: Nikita Singh <singhnikkita444@gmail.com>
Co-authored-by: Ali El Hadi ISMAIL FAWAZ <54309336+hadifawaz1999@users.noreply.github.com>
Co-authored-by: Cyril Meyer <69190238+Cyril-Meyer@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Balgopal Moharana <99070111+lucifer4073@users.noreply.github.com>
Co-authored-by: Akash Kawle <128881349+shinymack@users.noreply.github.com>
Co-authored-by: Kevin Shah <161136814+kevinzb56@users.noreply.github.com>
Co-authored-by: Antoine Guillaume <antoine.guillaume45@gmail.com>
Co-authored-by: Kavya Rambhia <161142013+kavya-r30@users.noreply.github.com>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Tanish Yelgoe <143334319+tanishy7777@users.noreply.github.com>
Co-authored-by: Divya Tiwari <108270861+itsdivya1309@users.noreply.github.com>
Co-authored-by: chrisholder <4674372+chrisholder@users.noreply.github.com>
Co-authored-by: Aryan Pola <98093778+aryanpola@users.noreply.github.com>
Co-authored-by: Sebastian Schmidl <10573700+SebastianSchmidl@users.noreply.github.com>
Co-authored-by: Kaustubh <97254178+Kaustbh@users.noreply.github.com>
Co-authored-by: TinaJin0228 <60577222+TinaJin0228@users.noreply.github.com>
Co-authored-by: Ayush Singh <rawatsinghayush9720@gmail.com>
Co-authored-by: ayushsingh9720 <199482418+ayushsingh9720@users.noreply.github.com>
Co-authored-by: HaroonAzamFiza <haroonazamfiza@gmail.com>
Co-authored-by: adityagh006 <142653450+adityagh006@users.noreply.github.com>
Co-authored-by: V_26@ <valencia.saldanha26@gmail.com>
Co-authored-by: Ramana Raja <83065061+Ramana-Raja@users.noreply.github.com>
Co-authored-by: Ramana-Raja <ramanarajakesavaraja@gamil.com>
Co-authored-by: Ahmed Zahran <136983104+Ahmed-Zahran02@users.noreply.github.com>
Co-authored-by: Adarsh Dubey <dubeyadarshmain@gmail.com>
Co-authored-by: Somto Onyekwelu <117727947+SomtoOnyekwelu@users.noreply.github.com>
Co-authored-by: Saad Al-Tohamy <92796871+saadaltohamy@users.noreply.github.com>
Co-authored-by: Patrick Schäfer <patrick.schaefer@hu-berlin.de>
Co-authored-by: baraline <10759117+baraline@users.noreply.github.com>
Co-authored-by: Aadya Chinubhai <77720426+aadya940@users.noreply.github.com>
alexbanwell1 added a commit that referenced this pull request May 20, 2025
* forecaster base and dummy

* forecasting tests

* forecasting tests

* forecasting tests

* forecasting tests

* regression

* notebook

* regressor

* regressor

* regressor

* tags

* tags

* requires_y

* forecasting notebook

* forecasting notebook

* remove tags

* fix forecasting testing (they still fail though)

* _is_fitted -> is_fitted

* _is_fitted -> is_fitted

* _forecast

* notebook

* is_fitted

* y_fitted

* ETS forecaster

* add y checks and conversion

* add tag

* tidy

* _check_is_fitted()

* _check_is_fitted()

* Add fully functional ETS Forecaster. Modify base to not set default y in forecast. Update tests for ETS Forecaster. Add script to verify ETS Forecaster against statsforecast module using a large number of random parameter inputs.

* Add fully functional ETS Forecaster. Modify base to not set default y in forecast. Update tests for ETS Forecaster. Add script to verify ETS Forecaster against statsforecast module using a large number of random parameter inputs. (#2318)

Co-authored-by: Alex Banwell <arb1g19@soton.ac.uk>

* Add faster numba version of ETS forecaster

* Seperate out predict code, and add test to test without creating a class - significantly faster!

* Modify _verify_ets.py to allow easy switching between statsforecast versions. This confirms that my algorithms without class overheads is significantly faster than nixtla statsforecast, and with class overheads, it is faster than their current algorithm

* Add basic gradient decent optimization algorithm for smoothing parameters

* Ajb/forecasting (#2357)

* Add fully functional ETS Forecaster. Modify base to not set default y in forecast. Update tests for ETS Forecaster. Add script to verify ETS Forecaster against statsforecast module using a large number of random parameter inputs.

* Add faster numba version of ETS forecaster

* Seperate out predict code, and add test to test without creating a class - significantly faster!

* Modify _verify_ets.py to allow easy switching between statsforecast versions. This confirms that my algorithms without class overheads is significantly faster than nixtla statsforecast, and with class overheads, it is faster than their current algorithm

* Add basic gradient decent optimization algorithm for smoothing parameters

---------

Co-authored-by: Alex Banwell <arb1g19@soton.ac.uk>

* Add additional AutoETS algorithms, and comparison scripts

* Add ARIMA model in

* [MNT] Testing fixes (#2531)

* adjust test for non numpy output

* test list output

* test dataframe output

* change pickle test

* equal nans

* test scalar output

* fix lists output

* allow arrays of objects

* allow arrays of objects

* test for boolean elements (MERLIN)

* switch to deep equals

* switch to deep equals

* switch to deep equals

* message

* testing fixes

---------

Co-authored-by: Tony Bagnall <ajb@uea.ac.uk>

* Automated `pre-commit` hook update (#2533)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [DOC] Improve type hint guide and add link to the page. (#2532)

* type hints

* bad change

* text

* Add new datasets to tsf_datasets.py

* Add functions for writing out .tsf files, as well as functions for manipulating the train/test split and windowing

* Fix issues causing tests to fail

* [DOC] Add 'Raises' section to docstring (#1766) (#2484)

* Fix line endings

* Moved test_cboss.py to testing/tests directory

* Updated docstring comments and made methods protected

* Fix line endings

* Moved test_cboss.py to testing/tests directory

* Updated docstring comments and made methods protected

* Updated

* Updated

* Removed test_cboss.py

* Updated

* Updated

* Add files for generating the datasets, and the CSV for the chosen datasets

* Add windowed series train/test files

* Automated `pre-commit` hook update (#2541)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* fix test (#2528)

* [BUG] add ExpSmoothingSeriesTransformer and MovingAverageSeriesTransformer to __init__ (#2550)

* update docs to fix 2548 docs

* update init to fix 2548 bug

* Automated `pre-commit` hook update (#2567)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT] Bump ossf/scorecard-action in the github-actions group (#2569)

Bumps the github-actions group with 1 update: [ossf/scorecard-action](https://github.com/ossf/scorecard-action).

Updates `ossf/scorecard-action` from 2.4.0 to 2.4.1
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](ossf/scorecard-action@v2.4.0...v2.4.1)

---
updated-dependencies:
- dependency-name: ossf/scorecard-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [ENH] Added class weights to feature based classifiers (#2512)

* class weights added to classification/feature based

* Automatic `pre-commit` fixes

* Test function for Catch22Classifier added

* Test function for SummaryClassifier added

* Test for tsfreshClassifier added

* Soft dependecy check added for tsfresh

* Test signature test case added

* added test_mlp.py (#2537)

* test file for FCNNetwork added (#2559)

* Documentation improvement of certain BaseClasses (#2516)

Co-authored-by: Antoine Guillaume <antoine.guillaume45@gmail.com>

* [ENH] Test coverage for AEFCNNetwork Improved  (#2558)

* test file added for aefcn

* Test file for aefcn added

* Test file reforammted

* soft dependency added

* name issues resolved

* [ENH] Test coverage for TimeCNNNetwork Improved (#2534)

* Test coverage improved for cnn network

* assertion changed for test_cnn

* coverage improved along with naming

* [ENH] Test coverage for Resnet Network (#2553)

* Resnet pytest

* Resnet pytest

* Fixed tensorflow failing

* Added Resnet in function name

* 📝 Add shinymack as a contributor for code (#2577)

* 📝 Update CONTRIBUTORS.md [skip ci]

* 📝 Update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* 📝 Add kevinzb56 as a contributor for doc (#2588)

* 📝 Update CONTRIBUTORS.md [skip ci]

* 📝 Update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* [MNT] Raise version bound for `scikit-learn` 1.6 (#2486)

* update ver and new tags

* default tags

* toml

* Update _shapelets.py

Fix linear estimator coefs issue

* expected results

* Change expected results

* update

* only linux

* remove mixins just to see test

* revert

---------

Co-authored-by: Antoine Guillaume <antoine.guillaume45@gmail.com>

* [MNT] Bump the python-packages group across 1 directory with 2 updates (#2598)

Updates the requirements on [scipy](https://github.com/scipy/scipy) and [sphinx](https://github.com/sphinx-doc/sphinx) to permit the latest version.

Updates `scipy` to 1.15.2
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](scipy/scipy@v1.9.0...v1.15.2)

Updates `sphinx` to 8.2.3
- [Release notes](https://github.com/sphinx-doc/sphinx/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/master/CHANGES.rst)
- [Commits](sphinx-doc/sphinx@v0.1.61611...v8.2.3)

---
updated-dependencies:
- dependency-name: scipy
  dependency-type: direct:production
  dependency-group: python-packages
- dependency-name: sphinx
  dependency-type: direct:production
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Automated `pre-commit` hook update (#2581)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* Automated `pre-commit` hook update (#2603)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [ENH] Adds support for distances that are asymmetric but supports unequal length (#2613)

* Adds support for distances that are asymmetric but supports unequal length

* Added name to contributors

* create smoothing filters notebook (#2547)

* Remove datasets added

* Reorganise code for generating train/test cluster files, including adding sliding window and train/test transformers

* Add NaiveForecaster

* Fix Bug in NaiveForecaster

* Fix dataset generate script stuff

* [DOC] Notebook on Feature-based Clustering (#2579)

* Feature-based clustering

* Feature-based clustering update

* Update clustering overview

* formatting

* Automated `CONTRIBUTORS.md` update (#2614)

Co-authored-by: chrisholder <4674372+chrisholder@users.noreply.github.com>

* Updated Interval Based Notebook (#2620)

* [DOC] Added Docstring for regression forecasting (#2564)

* Added Docstring for Regression

* Added Docstring for Regression

* exog fix

* GSoC announcement (#2629)

* Automated `pre-commit` hook update (#2632)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT] Bump tj-actions/changed-files from 45 to 46 in the github-actions group (#2637)

* [MNT] Bump tj-actions/changed-files in the github-actions group

Bumps the github-actions group with 1 update: [tj-actions/changed-files](https://github.com/tj-actions/changed-files).

Updates `tj-actions/changed-files` from 45 to 46
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](tj-actions/changed-files@v45...v46)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pr_precommit.yml

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* [MNT] Update numpy requirement in the python-packages group (#2643)

Updates the requirements on [numpy](https://github.com/numpy/numpy) to permit the latest version.

Updates `numpy` to 2.2.4
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](numpy/numpy@v1.21.0...v2.2.4)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [MNT,DEP] _binary.py metrics deprecated  (#2600)

* functions deprecated

* Empty-Commit

* version changed

* Support for unequal length timeseries in itakura parallelogram (#2647)

* [ENH] Implement DTW with Global alignment (#2565)

* Implements Dynamic Time Warping with Global Invariances

* Adds Numba JIT compilation support

* Adds docs and numba support for dtw_gi and test_distance fixed

* Fixes doctests

* Automatic `pre-commit` fixes

* Minor changes

* Minor changes

* Remove dtw_gi function and combine with private method _dtw_gi

* Adds parameter tests

* Fixes doctests

* Minor changes

* [ENH] Adds kdtw kernel support for kernelkmeans (#2645)

* Adds kdtw kernel support for kernelkmeans

* Code refactor

* Adds tests for kdtw clustering

* minor changes

* minor changes

* [MNT] Skip some excected results tests when numba is disabled (#2639)

* skip some numba tests

* Empty commit for CI

* Update testing_config.py

---------

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT] Remove REDCOMETs from testing exclusion list (#2630)

* remove excluded estimators

* redcomets fix

* Ensure ETS algorithms are behaving correctly, and do more testing on AutoETS, along with AutoETS forecaster class

* Fix a couple of bugs in the forecasters, add Sktime and StatsForecast wrappers for their AutoETS implementations

* [ENH] Replace `prts` metrics (#2400)

* Pre-commit fixes

* Position parameter in calculate_bias

* Added recall metric

* merged into into one file

* test added

* Changes in test and range_metrics

* list of list running but error!

* flattening lists, all cases passed

* Empty-Commit

* changes

* Protected functions

* Changes in documentation

* Changed test cases into seperate functions

* test cases added and added range recall

* udf_gamma removed from precision

* changes

* more changes

* recommended changes

* changes

* Added Parameters

* removed udf_gamma from precision

* Added binary to range

* error fixing

* test comparing prts and range_metrics

* Beta parameter added in fscore

* Added udf_gamma function

* f-score failing when comparing against prts

* fixed f-score output

* alpha usage

* Empty-Commit

* added test case to use range-based input for metrics

* soft dependency added

* doc update

---------

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>
Co-authored-by: Sebastian Schmidl <10573700+SebastianSchmidl@users.noreply.github.com>

* Clarify documentation regarding unequal length series limitation (#2589)

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* Automated `pre-commit` hook update (#2683)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT] Bump tj-actions/changed-files in the github-actions group (#2686)

Bumps the github-actions group with 1 update: [tj-actions/changed-files](https://github.com/tj-actions/changed-files).

Updates `tj-actions/changed-files` from 46.0.1 to 46.0.3
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](tj-actions/changed-files@v46.0.1...v46.0.3)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [ENH] Set `outlier_norm` default to True for Catch22 estimators (#2659)

* sets outlier_norm=True by deafault

* Minor changes

* Docs improvement

* [MNT] Use MacOS for examples/ workflow (#2668)

* update bash to 5.x for lastpipe support

* added esig installation

* install boost before esig

* fixed examples path issue for excluded notebooks

* switched to fixed version of macos

* added signature_method.ipynb to excluded list

* removed symlink for /bin/bash

* Correct AutoETS algorithms to not use multiplicative error models for data which is not strictly positive. Add check to ets for this

* Reject multiplicative components for data not strictly positive

* Update dependencies.md (#2717)

Correct typo in dependencies.md

* Automated `pre-commit` hook update (#2708)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [ENH] Test Coverage for Pairwise Distance (#2590)

* Pairwise distance matrix test

* Empty commit for CI

---------

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* re-running notebook for fixing cell output error (#2597)

* Docstring (#2609)

* [DOC] Add 'Raises' section to docstring #1766 (#2617)

* [DOC] Add 'Raises' section to docstring #1766

* Automatic `pre-commit` fixes

* Update _base.py

* Automatic `pre-commit` fixes

---------

Co-authored-by: ayushsingh9720 <199482418+ayushsingh9720@users.noreply.github.com>

* [DOC] Contributor docs update (#2554)

* contributing docs update

* contributing docs update 2

* typos

* Update contributing.md

new section

* Update testing.md

testing update

* Update contributing.md

dont steal code

* Automatic `pre-commit` fixes

* Update contributing.md

if

---------

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>
Co-authored-by: Antoine Guillaume <antoine.guillaume45@gmail.com>

* prevent assignment on PRs (#2703)

* Update run_examples.sh (#2701)

* [BUG] SevenNumberSummary bugfix and input rename (#2555)

* summary bugfix

* maintainer

* test

* readme (#2556)

* remove MutilROCKETRegressor from alias mapping (#2623)

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* Automated `pre-commit` hook update (#2731)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT] Bump the github-actions group with 2 updates (#2733)

Bumps the github-actions group with 2 updates: [actions/create-github-app-token](https://github.com/actions/create-github-app-token) and [tj-actions/changed-files](https://github.com/tj-actions/changed-files).

Updates `actions/create-github-app-token` from 1 to 2
- [Release notes](https://github.com/actions/create-github-app-token/releases)
- [Commits](actions/create-github-app-token@v1...v2)

Updates `tj-actions/changed-files` from 46.0.3 to 46.0.4
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](tj-actions/changed-files@v46.0.3...v46.0.4)

---
updated-dependencies:
- dependency-name: actions/create-github-app-token
  dependency-version: '2'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: tj-actions/changed-files
  dependency-version: 46.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fixed a few spelling/grammar mistakes on TSC docs examples (#2738)

* Fix docstring inconsistencies in benchmarking module (resolves #809) (#2735)

* issue#809 Fix docstrings for benchmarking functions

* Fixed docstrings in results_loaders.py

* Fix docstring inconsistencies in benchmarking module - resolves #809

* Fix docstring inconsistencies in benchmarking module - resolves #809

* [ENH] `best_on_top` addition in `plot_pairwise_scatter` (#2655)

* Empty-Commit

* best_on_top parameter added

* changes

* [ENH] Add dummy clusterer tags (#2551)

* dummy clusterer tags

* len

* [ENH] Collection conversion cleanup and `df-list` fix (#2654)

* collection conversion cleanup

* notebook

* fixes

---------

Co-authored-by: Tony Bagnall <a.j.bagnall@soton.ac.uk>

* [MNT] Updated the release workflows (#2638)

* edit release workflows to use trusted publishing

* docs

* [MNT,ENH]  Update to allow Python 3.13 (#2608)

* python 3.13

* tensorflow

* esig

* tensorflow

* tensorflow

* esig and matrix profile

* signature notebook

* remove prts

* fix

* remove annoying deps from all_extras

* Update pyproject.toml

* [ENH] Hard-Coded Tests for `test_metrics.py` (#2672)

* Empty-Commit

* hard-coded tests

* changes

* Changed single ticks to double (#2640)

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* 📝 Add HaroonAzamFiza as a contributor for doc (#2740)

* 📝 Update CONTRIBUTORS.md [skip ci]

* 📝 Update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* [ENH,MNT] Assign Bot (assigned issues>2) (#2702)

* Empty-Commit

* point 2 working

* changes

* changes in comment message

* [MNT,ENH] Assign-bot (Allow users to type alternative phrases for assingment) (#2704)

* added extra features

* added comments

* optimized code

* optimized code

* made changes requested by moderators

* fixed conflicts

* fixed conflicts

* fixed conflicts

---------

Co-authored-by: Ramana-Raja <ramanarajakesavaraja@gamil.com>

* 📝 Add Ramana-Raja as a contributor for code (#2741)

* 📝 Update CONTRIBUTORS.md [skip ci]

* 📝 Update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Release v1.1.0 (#2696)

* v1.1.0 draft

* finish

* Automated `pre-commit` hook update (#2743)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT] Bump the github-actions group with 2 updates (#2744)

Bumps the github-actions group with 2 updates: [crs-k/stale-branches](https://github.com/crs-k/stale-branches) and [tj-actions/changed-files](https://github.com/tj-actions/changed-files).

Updates `crs-k/stale-branches` from 7.0.0 to 7.0.1
- [Release notes](https://github.com/crs-k/stale-branches/releases)
- [Commits](crs-k/stale-branches@v7.0.0...v7.0.1)

Updates `tj-actions/changed-files` from 46.0.4 to 46.0.5
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](tj-actions/changed-files@v46.0.4...v46.0.5)

---
updated-dependencies:
- dependency-name: crs-k/stale-branches
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: tj-actions/changed-files
  dependency-version: 46.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [DOC] Add implementation references (#2748)

* implementation references

* better attribution

* use gpu installs for periodic tests (#2747)

* Use shape calculation in _fit to optimize QUANTTransformer (#2727)

* [REF] Refactor Anomaly Detection Module into Submodules by Algorithm Family (#2694)

* Refactor Anomaly Detection Module into Submodules by Algorithm Family

* updated documentation and references

* implemented suggested changes

* minor changes

* added headers for remaining algorithm family

* removing tree-based header

* Automated `pre-commit` hook update (#2756)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [ENH]Type hints/forecasting (#2737)

* Type hints for primitive data types in base module

* Type hints for primitive data types and strings
in forecating module

* type hints for primitives in foreacasting module

* Revert "type hints for primitives in foreacasting module"

This reverts commit 575122d.

* type hints for primitives in forecasting module

* Automated `pre-commit` hook update (#2766)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [ENH] Implement `load_model` function for ensemble classifiers (#2631)

* feat: implement `load_model` function for LITETimeClassifier

Implement separate `load_model` function for LITETimeClassifier, which takes in `model_path` as list of strings and `classes` and loads all the models separately and stores them in `self.classifiers_`

* feat: implement `load_model` function for InceptionTimeClassifier

Implement separate `load_model` function for InceptionTimeClassifier, which takes in `model_path` as list of strings and `classes` and loads all the models separately and stores them in `self.classifiers_`

* fix: typo in load model function

* feat: convert load_model functions to classmethods

* test: implement test for save load for LITETIME and Inception classification models

* Automatic `pre-commit` fixes

* refactor: move loading tests to separate files

* Update _ae_abgru.py (#2771)

* Automated `pre-commit` hook update (#2779)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [DOC] Fix Broken [Source] Link and Improve Documentation for suppress_output() (#2677)

* Fix Broken [Source] Link and Improve Documentation for suppress_output() Function

* modified docstring and added tests

* modified docstring example

* modifying docstring examples

* modifying docstring examples

* updating conf file

* updated docstring

* base transform tidy (#2773)

* DOC: Add Raises section for invalid weights in KNeighborsTimeSeriesClassifier (#1766) (#2764)

Document the ValueError raised during initialization when an unsupported value is passed to the 'weights' parameter.

Clarifies expected exceptions for users and improves API documentation consistency.

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* [ENH] Fixes Issue Improve `_check_params` method in `kmeans.py` and `kmedoids.py` (#2682)

* Improves _check_params

* removes function and adds a var

* minor changes

* minor changes

* minor changes

* line endings to LF

* use variable instead of duplicating strings

* weird file change

* weird file change

---------

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* [ENH] Add type hints for deep learning regression classes (#2644)

* type hints for cnn for regrssion

* editing import modules Model & Optim

* type hints for disjoint_cnn for regrssion

* FIX type hints _get_test_params

* ENH Change linie of importing typing

* type hints for _encoder for regrssion

* type hints for _fcn for regrssion

* type hints for _inception_time for regrssion

* type hints for _lite_time for regrssion

* type hints for _mlp for regrssion

* type hints for _resnet for regrssion

* type hints for _base for regrssion

* FIX: mypy errors in _disjoint_cnn.py file

* FIX: mypy typing errors

* Fix: Delete variable types, back old-verbose

* FIX: add model._save in save_last_model_to_file function

* FIX: Put TYPE_CHECKING downside

* Fix: Put Any at the top

* [DOC] Add RotationForest Classifier Notebook for Time Series Classification (#2592)

* Add RotationForest Classifier Notebook for Time Series Classification

* Added references and modified doc

* minor modifications to notebook description

* Update rotation_forest.ipynb

---------

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* fix: Codeowners for benchmarking metrics AD (#2784)

* [GOV] Supporting Developer role (#2775)

* supporting dev role

* pr req

* Update governance.md

* typo

* Automatic `pre-commit` fixes

* aeon

---------

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* [MNT, ENH, DOC] Rework similarity search (#2473)

* WIP remake module structure

* Update _brute_force.py

* Update test__commons.py

* WIP mock and test

* Add test for base subsequence

* Fix subsequence_search tests

* debug brute force mp

* more debug of subsequence tests

* more debug of subsequence tests

* Add functional LSH neighbors

* add notebook for sim search tasks

* Updated series similarity search

* Fix mistake addition in transformers and fix base classes

* Fix registry and api reference

* Update documentation and fix some leftover bugs

* Update documentation and add default test params

* Fix identifiers and test data shape for all_estimators tests

* Fix missing params

* Fix n_jobs params and tags, add some docs

* Fix numba test bug and update testing data for sim search

* Fix imports, testing data tests, and impose predict/_predict interface to all sim search estimators

* Fix args

* Fix extract test

* update docs api and notebooks

* remove notes

* Patrick comments

* Adress comments and clean index code

* Fix Patrick comments

* Fix variable suppression mistake

* Divide base class into task specific

* Fix typo in imports

* Empty commit for CI

* Fix typo again

* Add  check_inheritance exception for similarity search

* Revert back to non per type base classes

* Factor check index and typo in test

---------

Co-authored-by: Patrick Schäfer <patrick.schaefer@hu-berlin.de>
Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>
Co-authored-by: baraline <10759117+baraline@users.noreply.github.com>

* [ENH] Adapt the DCNN Networks to use Weight Norm Wrappers (#2628)

* adapt the dcnn networks to use weight norm wrappers and remove l2 regularization

* Automatic `pre-commit` fixes

* add custom object

* Automatic `pre-commit` fixes

* fix trial

---------

Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>

* [GOV] Remove inactive developers (#2776)

* inactive devs

* logo fix

* Automated `pre-commit` hook update (#2792)

Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>

* Code to generate differenced datasets

* Add AutoARIMA algorithm into Aeon

* Add ArimaForecaster to forecasting list

* Fix predict method to return the prediction in the correct format

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Tony Bagnall <ajb@uea.ac.uk>
Co-authored-by: Tony Bagnall <a.j.bagnall@soton.ac.uk>
Co-authored-by: MatthewMiddlehurst <m.middlehurst@uea.ac.uk>
Co-authored-by: Alex Banwell <arb1g19@soton.ac.uk>
Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>
Co-authored-by: aeon-actions-bot[bot] <148872591+aeon-actions-bot[bot]@users.noreply.github.com>
Co-authored-by: MatthewMiddlehurst <25731235+MatthewMiddlehurst@users.noreply.github.com>
Co-authored-by: Nikita Singh <singhnikkita444@gmail.com>
Co-authored-by: Ali El Hadi ISMAIL FAWAZ <54309336+hadifawaz1999@users.noreply.github.com>
Co-authored-by: Cyril Meyer <69190238+Cyril-Meyer@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Balgopal Moharana <99070111+lucifer4073@users.noreply.github.com>
Co-authored-by: Akash Kawle <128881349+shinymack@users.noreply.github.com>
Co-authored-by: Kevin Shah <161136814+kevinzb56@users.noreply.github.com>
Co-authored-by: Antoine Guillaume <antoine.guillaume45@gmail.com>
Co-authored-by: Kavya Rambhia <161142013+kavya-r30@users.noreply.github.com>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Tanish Yelgoe <143334319+tanishy7777@users.noreply.github.com>
Co-authored-by: Divya Tiwari <108270861+itsdivya1309@users.noreply.github.com>
Co-authored-by: chrisholder <4674372+chrisholder@users.noreply.github.com>
Co-authored-by: Aryan Pola <98093778+aryanpola@users.noreply.github.com>
Co-authored-by: Sebastian Schmidl <10573700+SebastianSchmidl@users.noreply.github.com>
Co-authored-by: Kaustubh <97254178+Kaustbh@users.noreply.github.com>
Co-authored-by: TinaJin0228 <60577222+TinaJin0228@users.noreply.github.com>
Co-authored-by: Ayush Singh <rawatsinghayush9720@gmail.com>
Co-authored-by: ayushsingh9720 <199482418+ayushsingh9720@users.noreply.github.com>
Co-authored-by: HaroonAzamFiza <haroonazamfiza@gmail.com>
Co-authored-by: adityagh006 <142653450+adityagh006@users.noreply.github.com>
Co-authored-by: V_26@ <valencia.saldanha26@gmail.com>
Co-authored-by: Ramana Raja <83065061+Ramana-Raja@users.noreply.github.com>
Co-authored-by: Ramana-Raja <ramanarajakesavaraja@gamil.com>
Co-authored-by: Ahmed Zahran <136983104+Ahmed-Zahran02@users.noreply.github.com>
Co-authored-by: Adarsh Dubey <dubeyadarshmain@gmail.com>
Co-authored-by: Somto Onyekwelu <117727947+SomtoOnyekwelu@users.noreply.github.com>
Co-authored-by: Saad Al-Tohamy <92796871+saadaltohamy@users.noreply.github.com>
Co-authored-by: Patrick Schäfer <patrick.schaefer@hu-berlin.de>
Co-authored-by: baraline <10759117+baraline@users.noreply.github.com>
Co-authored-by: Aadya Chinubhai <77720426+aadya940@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
codecov actions Run the codecov action on a PR documentation Improvements or additions to documentation enhancement New feature, improvement request or other non-bug code enhancement full pytest actions Run the full pytest suite on a PR maintenance Continuous integration, unit testing & package distribution similarity search Similarity search package
Projects
None yet
3 participants