Skip to content

[ENH] Add RehabPile dataset collection#2993

Merged
hadifawaz1999 merged 3 commits intoaeon-toolkit:mainfrom
sarthakuwar:feature/add-rehabpile-dataset
Aug 15, 2025
Merged

[ENH] Add RehabPile dataset collection#2993
hadifawaz1999 merged 3 commits intoaeon-toolkit:mainfrom
sarthakuwar:feature/add-rehabpile-dataset

Conversation

@sarthakuwar
Copy link
Copy Markdown
Contributor

Reference Issues/PRs

Fixes #2989

What does this implement/fix? Explain your changes.

This PR introduces support for the RehabPile dataset collection, which contains time series datasets for both classification and regression tasks.

The implementation includes:

A new loader file, aeon/datasets/rehabpile_loader.py, which handles the dynamic discovery of datasets by scraping the source website (https://maxime-devanne.com/datasets/RehabPile/).

The load_rehabpile function downloads the required .npy files on demand and caches them locally, following the existing design pattern in aeon.datasets.

New public functions rehabpile_classification_datasets() and rehabpile_regression_datasets() to allow users to easily list all available datasets in the collection.

A new test file, aeon/datasets/tests/test_rehabpile_loader.py, to ensure the loader works correctly, handles errors, and can download from the archive.

The package's aeon/datasets/__init__.py has been updated to expose the new user-facing functions.

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

No, this contribution does not introduce any new dependencies. It uses standard libraries and existing aeon dependencies like numpy and pandas.

Any other comments?

The new loader was designed to align closely with the existing architectural patterns of the aeon.datasets module, ensuring a consistent user experience and maintainability.

API documentation for the new functions may need to be added as a follow-up.

PR checklist

For all contributions

[x] I've added myself to the [list of contributors](https://github.com/aeon-toolkit/aeon/blob/main/.all-contributorsrc). Alternatively, you can use the [@all-contributors](https://allcontributors.org/docs/en/bot/usage) bot to do this for you after the PR has been merged.

[x] 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](https://www.aeon-toolkit.org/en/latest/api_reference.html).

[ ] (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](https://github.com/aeon-toolkit/aeon/blob/main/CODEOWNERS) to receive notifications about future changes to these files.

@aeon-actions-bot aeon-actions-bot bot added the datasets Datasets and data loaders label Aug 2, 2025
@aeon-actions-bot
Copy link
Copy Markdown
Contributor

Thank you for contributing to aeon

I did not find any labels to add based on the title. Please add the [ENH], [MNT], [BUG], [DOC], [REF], [DEP] and/or [GOV] tags to your pull requests titles. For now you can add the labels manually.
I have added the following labels to this PR based on the changes made: [ datasets ]. 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

@sarthakuwar sarthakuwar changed the title FEAT: Add RehabPile dataset collection and loader [ENH] Add RehabPile dataset collection Aug 2, 2025
@TonyBagnall
Copy link
Copy Markdown
Contributor

hi, thanks for this, you might want to install pre-commit, that will pick up formatting errors before running CI

@sarthakuwar sarthakuwar force-pushed the feature/add-rehabpile-dataset branch from 2c743bb to 7d9b973 Compare August 5, 2025 08:28
@sarthakuwar
Copy link
Copy Markdown
Contributor Author

the CI is failing on a TimeCNNRegressor test in test_all_estimators.py, which seems unrelated to my dataset loader PR. I have already tried re-running the failed job, but the error persists.

Copy link
Copy Markdown
Member

@hadifawaz1999 hadifawaz1999 left a comment

Choose a reason for hiding this comment

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

Thanks for this. The loader should take into consideration that there is multiple resamples (folds) per dataset. The default split to load should be always fold 0, but there is multiple folds per dataset. The information of number of folds (resamples or splits) per dataset is available here: https://github.com/MSD-IRIMAS/DeepRehabPile/blob/main/DeepRehabPileForExperiments.json

@MatthewMiddlehurst
Copy link
Copy Markdown
Member

Maybe we need to start subgrouping these, it will get confusing if we start putting specific loaders alongside the general ones

@sarthakuwar sarthakuwar force-pushed the feature/add-rehabpile-dataset branch 3 times, most recently from 4fc27f3 to a4d0b80 Compare August 11, 2025 19:03
Copy link
Copy Markdown
Member

@hadifawaz1999 hadifawaz1999 left a comment

Choose a reason for hiding this comment

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

Thank you very much for your effort on this. I left some comments, with one additional functionality needed and others are docs stuff and placements

@sarthakuwar sarthakuwar force-pushed the feature/add-rehabpile-dataset branch from aebd571 to 70efd89 Compare August 13, 2025 12:41
@sarthakuwar sarthakuwar force-pushed the feature/add-rehabpile-dataset branch 2 times, most recently from 70efd89 to 048ce39 Compare August 14, 2025 08:26
@sarthakuwar sarthakuwar force-pushed the feature/add-rehabpile-dataset branch 2 times, most recently from 9d1a33c to 9c45447 Compare August 14, 2025 15:16
Copy link
Copy Markdown
Member

@hadifawaz1999 hadifawaz1999 left a comment

Choose a reason for hiding this comment

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

Can you add the three functions to the api reference here ? https://github.com/aeon-toolkit/aeon/blob/main/docs/api_reference/datasets.md

@sarthakuwar sarthakuwar force-pushed the feature/add-rehabpile-dataset branch from 6f066ec to 9abac38 Compare August 15, 2025 09:50
@sarthakuwar sarthakuwar force-pushed the feature/add-rehabpile-dataset branch from 02bd0ab to c85b903 Compare August 15, 2025 11:57
Copy link
Copy Markdown
Member

@hadifawaz1999 hadifawaz1999 left a comment

Choose a reason for hiding this comment

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

LGTM thanks

@hadifawaz1999 hadifawaz1999 merged commit 0808bb1 into aeon-toolkit:main Aug 15, 2025
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

datasets Datasets and data loaders

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[ENH] loaders for Rehab Pile datasets

4 participants