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] Working draft PR for forecasting #2244

Draft
wants to merge 45 commits into
base: main
Choose a base branch
from
Draft

Conversation

TonyBagnall
Copy link
Contributor

@TonyBagnall TonyBagnall commented Oct 24, 2024

Reference Issues/PRs

First draft of the new forecasting module. See aeon-toolkit/aeon-admin#14 for some discussion.

This is very early, still lots to do. This includes

  • Setting up a regression wrapper
  • Implementing ETS in this structure
  • Writing first notebook
  • Setting up testing under new set up

and lots more. Note after discussion, we have adopted @alexbanwell1 proposal to call X exog to remove confusion with collection estimators.

@TonyBagnall TonyBagnall added the forecasting Forecasting package label Oct 24, 2024
@aeon-actions-bot aeon-actions-bot bot added the enhancement New feature, improvement request or other non-bug code enhancement label Oct 24, 2024
@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}}$ ].
I would have added the following labels to this PR based on the changes made: [ $\color{#31FCCD}{\textsf{forecasting}}$ ], however some package labels are already present.

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

@TonyBagnall TonyBagnall changed the title [ENH] forecaster base and dummy [ENH] forecasting first PR: base, dummy and regressor Oct 25, 2024
Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@TonyBagnall TonyBagnall mentioned this pull request Oct 25, 2024
25 tasks
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.

Not commenting on the base class or estimators yet beyond small things i noticed while skimming

aeon/testing/mock_estimators/_mock_forecasters.py Outdated Show resolved Hide resolved
aeon/forecasting/base.py Outdated Show resolved Hide resolved
aeon/utils/tags/_tags.py Outdated Show resolved Hide resolved
aeon/utils/tags/_tags.py Show resolved Hide resolved
aeon/utils/tags/_tags.py Outdated Show resolved Hide resolved
@MatthewMiddlehurst
Copy link
Member

I would rather sort out the tags and what we want them to be before merging this (or at the very least the release). That is a much bigger pain to change later.

@TonyBagnall TonyBagnall closed this Nov 1, 2024
@TonyBagnall
Copy link
Contributor Author

I would rather sort out the tags and what we want them to be before merging this (or at the very least the release). That is a much bigger pain to change later.

ok, I have no preference I just want it to work with the testing, I am happy with any way you think is appropriate for that.

@TonyBagnall TonyBagnall reopened this Nov 1, 2024
@TonyBagnall TonyBagnall changed the title [ENH] forecasting first PR: base, dummy and regressor [ENH] forecasting first PR: base, dummy, regressor and ETS Nov 7, 2024
@alexbanwell1 alexbanwell1 mentioned this pull request Nov 8, 2024
3 tasks
alexbanwell1 and others added 3 commits November 8, 2024 09:23
… 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 <[email protected]>
# Conflicts:
#	aeon/testing/testing_data.py
#	aeon/testing/utils/estimator_checks.py
* 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 <[email protected]>
@TonyBagnall TonyBagnall changed the title [ENH] forecasting first PR: base, dummy, regressor and ETS [ENH] Working draft PR for forecasting Nov 18, 2024
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 forecasting Forecasting package
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants