Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ENH] AutoETS, ARIMA and AutoARIMA Implementation #2527

Closed

Conversation

alexbanwell1
Copy link
Contributor

Reference Issues/PRs

Implements #2411

What does this implement/fix? Explain your changes.

AutoETS implementation. ARIMA implementation, start of an AutoARIMA implementation.

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

No

Any other comments?

No

PR checklist

For all contributions
  • I've added myself to the list of contributors. Alternatively, you can use the @all-contributors bot to do this for you after the PR has been merged.
  • The PR title starts with either [ENH], [MNT], [DOC], [BUG], [REF], [DEP] or [GOV] indicating whether the PR topic is related to enhancement, maintenance, documentation, bugs, refactoring, deprecation or governance.
For new estimators and functions
  • I've added the estimator/function to the online API documentation.
  • (OPTIONAL) I've added myself as a __maintainer__ at the top of relevant files and want to be contacted regarding its maintenance. Unmaintained files may be removed. This is for the full file, and you should not add yourself if you are just making minor changes or do not want to help maintain its contents.
For developers with write access
  • (OPTIONAL) I've updated aeon's CODEOWNERS to receive notifications about future changes to these files.

Alex Banwell and others added 30 commits November 8, 2024 07:45
… in forecast. Update tests for ETS Forecaster. Add script to verify ETS Forecaster against statsforecast module using a large number of random parameter inputs.
…ersions. 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
* remove y from predict

* remove score

* remove score, add fit_predict

* remove score, add fit_predict

* removed score and n_clusters from base class

* fit_predict

* fixed predict proba

* fixed dnn tests

* fixed dnn tests

* fix notebook

* fixed

* removed deep learner n_clusters and assert labels_ exists

* cont

* fix dnns

* pipeline clusterer

* fix pipeline

* revert

* fix

* remove score from dnns

* remove score from notebooks

* remove score from remaining

* fix notebook

* fixed kmeans bug stopping tests working

* fixed

* docstring fix

---------

Co-authored-by: chrisholder <chrisholder987@hotmail.com>
* anomaly tests

* anomaly tests

* stomp and kmeansad

* pyod adaptor

* pyod adaptor

* pyod adaptor

* iforest

* seed

* split functions, use check_random

* test clean up

* check_series

* fix soft-dtw cost matrix test

* check_series

* pairwise

* viz

* remove make_series

* Update test_forecasting_plotting.py

* Update test_segmentation_plotting.py

* fixing distance tests

* fixed distance tests

* fix shape-dtw docs

---------

Co-authored-by: Sebastian Schmidl <CodeLionX@users.noreply.github.com>
Co-authored-by: chrisholder <chrisholder987@hotmail.com>
Co-authored-by: Matthew Middlehurst <pfm15hbu@gmail.com>
* remove y from predict

* remove score

* remove score, add fit_predict

* remove score, add fit_predict

* removed score and n_clusters from base class

* fit_predict

* clustering deprecations

* notebook

* fixed predict proba

* fixed dnn tests

* fixed dnn tests

* fix notebook

* fixed

* removed deep learner n_clusters and assert labels_ exists

* cont

* fix dnns

* pipeline clusterer

* fix pipeline

* revert

* fix

* remove score from dnns

* remove score from notebooks

* remove score from remaining

* fix notebook

* fixed notebook

---------

Co-authored-by: Tony Bagnall <ajb@uea.ac.uk>
Co-authored-by: Tony Bagnall <a.j.bagnall@soton.ac.uk>
* convert 1D numpy to 2D

* add further test
)

* tidy general estimator tests

* fixes

* fixes
* multithreading testing

* set multithreading tag

* tags

* fix

* tags

* param

* test params

* test

* Update _base.py

* Update _base.py
* base changes

* comment fix

* fixes

* fixes

* add abstract to base init

* init

* more init

* more init

* merge
* write_to_ts_file

* revert changelogs

* change log

* remove suffix

* minirocket notebook
* Implementation of LOF using PyODAdapter

* Automatic `pre-commit` fixes

* window size > stride in params

* NotFittederror

* Automatic `pre-commit` fixes

* return self

* Automatic `pre-commit` fixes

* test to check params

* Adding a value to window_size if not provided

* Update aeon/anomaly_detection/_lof.py

Co-authored-by: Sebastian Schmidl <CodeLionX@users.noreply.github.com>

* Changes in test, 1 failing

* Automatic `pre-commit` fixes

* pyod_model as parameter

* unfinished changes

* Update aeon/anomaly_detection/_lof.py

Co-authored-by: Sebastian Schmidl <CodeLionX@users.noreply.github.com>

* Update aeon/anomaly_detection/_lof.py

Co-authored-by: Sebastian Schmidl <CodeLionX@users.noreply.github.com>

* Update aeon/anomaly_detection/_lof.py

Co-authored-by: Sebastian Schmidl <CodeLionX@users.noreply.github.com>

* Update aeon/anomaly_detection/_lof.py

Co-authored-by: Sebastian Schmidl <CodeLionX@users.noreply.github.com>

* working model

* Automatic `pre-commit` fixes

* merge conflicts

* .

* Automatic `pre-commit` fixes

* git conflicts

* Automatic `pre-commit` fixes

* git conflicts

* test

* Automatic `pre-commit` fixes

* test2

* test3

* Automatic `pre-commit` fixes

* .

* fixes

* fixed minor mistakes

* Update aeon/anomaly_detection/tests/test_lof.py

Co-authored-by: Sebastian Schmidl <CodeLionX@users.noreply.github.com>

* Update aeon/anomaly_detection/tests/test_lof.py

Co-authored-by: Sebastian Schmidl <CodeLionX@users.noreply.github.com>

* Update aeon/anomaly_detection/tests/test_lof.py

Co-authored-by: Sebastian Schmidl <CodeLionX@users.noreply.github.com>

* Update aeon/anomaly_detection/_lof.py

Co-authored-by: Sebastian Schmidl <CodeLionX@users.noreply.github.com>

* Changes in test_lof

* removed anomaly range stuff

* removed unnecessary in test_lof_default

* checking for anomalies

---------

Co-authored-by: aryanpola <aryanpola@users.noreply.github.com>
Co-authored-by: Sebastian Schmidl <CodeLionX@users.noreply.github.com>
Co-authored-by: Sebastian Schmidl <10573700+SebastianSchmidl@users.noreply.github.com>
…eon-toolkit#2360)

* excluded tests

* trying to fix things

* tidy up transform testing

* fixes

* fixes

* fixes

* still trying to make this work

* ignore index for pandas

* allclose

* Empty commit for CI

* correct

* rist

* rist

* fix

---------

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

* nb

* nb

* nb

* deep

* dictionary

* distance

* feature

* interval

* IndividualInceptionClassifier
* rocket unequal length

* typo

* typo

* num_kernels

* switch to mock

* examples

* examples and typos

* handle mismatch it fit and transform

* handle mismatch it fit and transform

* notebook

* tests

* remove minirocketmultivariatevariable

* num_kernels -> n_kernels

* update from main

* remove unequal cap

* minirocket notebook

* change test_all_estimators_list_tag_lookup

* tag

* tags

* minrocket notebook

* minirocket notebook
…kit#2392)

* cluster init_algorithm removed across all clusterers

* removed deprecation warnings - just removed it

* typo

---------

Co-authored-by: Tony Bagnall <a.j.bagnall@soton.ac.uk>
* 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. (aeon-toolkit#2318)

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

* Ajb/forecasting (aeon-toolkit#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>

* first forecasters

* beta local

* example

* example

* test regressor

* forecasting notebook

* base

* base

* ETS refactor

* correct test

* private forecast

* remove duplicate

* fit_is_empty check

* fit_is_empty check

* fix changed constant name

* typo

* n_timepoints

* forecasting tests

---------

Co-authored-by: MatthewMiddlehurst <m.middlehurst@uea.ac.uk>
Co-authored-by: alexbanwell1 <31886108+alexbanwell1@users.noreply.github.com>
Co-authored-by: Alex Banwell <arb1g19@soton.ac.uk>
* speed up TSFresh notebook

* deep networks notebook

* rocket notebook

* exclude

* run_examples.sh
Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@aeon-actions-bot aeon-actions-bot bot added the enhancement New feature, improvement request or other non-bug code enhancement label Feb 5, 2025
@aeon-actions-bot
Copy link
Contributor

Thank you for contributing to aeon

I have added the following labels to this PR based on the title: [ $\color{#FEF1BE}{\textsf{enhancement}}$ ].
This PR changes too many different packages (>3) for automatic addition of labels, please manually add package labels if relevant.

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

@SebastianSchmidl
Copy link
Member

Wow, you managed to ping all core devs! 😆 No worries, this also happens to us occasionally.

Your PR does not target the main-branch, but ajb/forecasting. Thus, none of our automatic PR tests are executed, and the PR contains commits that are already merged into main (which triggered the review requests to so many people).

Please rebase your branch to the current aeon-toolkit:main and open a new PR that also targets aeon-toolkit:main.

I will close this PR to safe our inboxes 😉

@TonyBagnall
Copy link
Contributor

@SebastianSchmidl, I need to reopen the branch, its easiest for us to work off shared branches but this was already merged

@TonyBagnall
Copy link
Contributor

@alexbanwell1 could you rebase to ajb/ets?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature, improvement request or other non-bug code enhancement
Projects
None yet
Development

Successfully merging this pull request may close these issues.