aeon

A toolkit for time series machine learning and deep learning

https://github.com/aeon-toolkit/aeon

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    18 of 320 committers (5.6%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.9%) to scientific vocabulary

Keywords

data-mining data-science deep-learning forecasting machine-learning neural-network scikit-learn time-series time-series-analysis time-series-anomaly-detection time-series-classification time-series-clustering time-series-regression time-series-segmentation

Keywords from Contributors

transformer closember cryptocurrency jax alignment audio speech-recognition pretrained-models vlm flexible
Last synced: 6 months ago · JSON representation

Repository

A toolkit for time series machine learning and deep learning

Basic Info
  • Host: GitHub
  • Owner: aeon-toolkit
  • License: bsd-3-clause
  • Language: Python
  • Default Branch: main
  • Homepage: https://aeon-toolkit.org/
  • Size: 113 MB
Statistics
  • Stars: 1,226
  • Watchers: 22
  • Forks: 216
  • Open Issues: 207
  • Releases: 19
Topics
data-mining data-science deep-learning forecasting machine-learning neural-network scikit-learn time-series time-series-analysis time-series-anomaly-detection time-series-classification time-series-clustering time-series-regression time-series-segmentation
Created about 3 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Codeowners Governance

README.md

aeon logo

⌛ Welcome to aeon

aeon is an open-source toolkit for time series machine learning. Fully compatible with scikit-learn, it brings together the latest machine learning methods alongside a wide range of classical approaches for tasks such as forecasting, clustering, and classification.

Our goal is to provide a comprehensive collection of state-of-the-art time series algorithms, with efficient implementations powered by numba, and to promote reproducible research in the field of time series machine learning.

The latest aeon release is v1.2.0. You can view the full changelog here.

Our webpage and documentation is available at https://aeon-toolkit.org.

The following modules are still considered experimental, and the deprecation policy does not apply:

  • anomaly_detection
  • forecasting
  • segmentation
  • similarity_search
  • visualisation
  • transformations.collection.self_supervised
  • transformations.collection.imbalance

| Overview | | |-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | CI/CD | github-actions-release github-actions-main github-actions-nightly docs-main docs-main codecov openssf-scorecard | | Code | !pypi !conda !python-versions !black license binder | | Community | !slack !linkedin !x-twitter !medium | | Affiliation | numfocus |

⚙️ Installation

aeon requires a Python version of 3.10 or greater. Our full installation guide is available in our documentation.

The easiest way to install aeon is via pip:

bash pip install aeon

Some estimators require additional packages to be installed. If you want to install the full package with all optional dependencies, you can use:

bash pip install aeon[all_extras]

Instructions for installation from the GitHub source can be found here.

⏲️ Getting started

The best place to get started for all aeon packages is our getting started guide.

Below we provide a quick example of how to use aeon for classification and clustering.

Classification/Regression

Time series classification looks to predict class labels fore unseen series using a model fitted from a collection of time series. The framework for regression is similar, replace the classifier with a regressor and the labels with continuous values.

```python import numpy as np from aeon.classification.distance_based import KNeighborsTimeSeriesClassifier

X = np.array([[[1, 2, 3, 4, 5, 5]], # 3D array example (univariate) [[1, 2, 3, 4, 4, 2]], # Three samples, one channel, [[8, 7, 6, 5, 4, 4]]]) # six series length y = np.array(['low', 'low', 'high']) # class labels for each sample

clf = KNeighborsTimeSeriesClassifier(distance="dtw") clf.fit(X, y) # fit the classifier on train data

KNeighborsTimeSeriesClassifier()

Xtest = np.array( [[[2, 2, 2, 2, 2, 2]], [[5, 5, 5, 5, 5, 5]], [[6, 6, 6, 6, 6, 6]]] ) ypred = clf.predict(X_test) # make class predictions on new data

['low' 'high' 'high'] ```

Clustering

Time series clustering groups similar time series together from a collection of time series.

```python import numpy as np from aeon.clustering import TimeSeriesKMeans

X = np.array([[[1, 2, 3, 4, 5, 5]], # 3D array example (univariate) [[1, 2, 3, 4, 4, 2]], # Three samples, one channel, [[8, 7, 6, 5, 4, 4]]]) # six series length

clu = TimeSeriesKMeans(distance="dtw", n_clusters=2) clu.fit(X) # fit the clusterer on train data

TimeSeriesKMeans(distance='dtw', n_clusters=2)

clu.labels_ # get training cluster labels

array([0, 0, 1])

Xtest = np.array( [[[2, 2, 2, 2, 2, 2]], [[5, 5, 5, 5, 5, 5]], [[6, 6, 6, 6, 6, 6]]] ) clu.predict(Xtest) # Assign clusters to new data

array([1, 0, 0]) ```

💬 Where to ask questions

| Type | Platforms | |------------------------------------|-----------------------------------| | 🐛 Bug Reports | GitHub Issue Tracker | | ✨ Feature Requests & Ideas | GitHub Issue Tracker & Slack | | 💻 Usage Questions | GitHub Discussions & Slack | | 💬 General Discussion | GitHub Discussions & Slack | | 🏭 Contribution & Development | Slack |

For enquiries about the project or collaboration, our email is contact@aeon-toolkit.org.

🔨 Contributing to aeon

If you are interested in contributing to aeon, please see our contributing guide and have a read through before assigning an issue and creating a pull request. Be aware that the latest version of the docs is the development version, and the stable version is the latest release.

The aeon developers are volunteers so please be patient with responses to comments and pull request reviews. If you have any questions, feel free to ask using the above mediums.

📚 Citation

If you use aeon we would appreciate a citation of the following paper:

bibtex @article{aeon24jmlr, author = {Matthew Middlehurst and Ali Ismail-Fawaz and Antoine Guillaume and Christopher Holder and David Guijo-Rubio and Guzal Bulatova and Leonidas Tsaprounis and Lukasz Mentel and Martin Walter and Patrick Sch{{\"a}}fer and Anthony Bagnall}, title = {aeon: a Python Toolkit for Learning from Time Series}, journal = {Journal of Machine Learning Research}, year = {2024}, volume = {25}, number = {289}, pages = {1--10}, url = {http://jmlr.org/papers/v25/23-1444.html} }

If you let us know about your paper using aeon, we will happily list it here.

👥 Further information

aeon was forked from sktime v0.16.0 in 2022 by an initial group of eight core developers. You can read more about the project's history and governance structure in our About Us page.

Owner

  • Name: aeon
  • Login: aeon-toolkit
  • Kind: organization
  • Email: contact@aeon-toolkit.org

A toolkit for conducting machine learning tasks with time series data

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 4,487
  • Total Committers: 320
  • Avg Commits per committer: 14.022
  • Development Distribution Score (DDS): 0.836
Past Year
  • Commits: 664
  • Committers: 66
  • Avg Commits per committer: 10.061
  • Development Distribution Score (DDS): 0.747
Top Committers
Name Email Commits
Franz Király f****y@u****k 738
mloning m****7@u****k 733
Tony Bagnall a****b@u****k 717
Matthew Middlehurst p****u@u****k 553
Martin Walter m****r@w****e 120
chrisholder c****7@h****m 90
Sajaysurya Ganesh s****a@g****m 87
aeon-actions-bot[bot] 1****] 81
George Oastler g****4@g****m 75
Ali El Hadi ISMAIL FAWAZ 5****9 69
Jason Lines j****s@u****k 62
Viktor Kazakov v****v@o****m 56
allcontributors[bot] 4****] 50
Lukasz Mentel l****l 45
dependabot[bot] 4****] 40
Patrick Schäfer p****r@h****e 29
Aadya Chinubhai 7****0 29
danbartl d****g@g****m 22
Sebastian Schmidl C****X 21
Stanislav Khrapov s****v@d****m 21
Leonidas Tsaprounis 6****s 20
Sagar Mishra 5****e 19
RNKuhns R****s@g****m 19
Antoine Guillaume a****5@g****m 19
Mirae Parker m****8@g****m 18
Divya Tiwari 1****9 17
Aryan Pola 9****a 17
Ciaran Gilbert 4****g 16
Cyril Meyer 6****r 16
Ivan Knyazev 1****v 14
and 290 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 840
  • Total pull requests: 2,485
  • Average time to close issues: 3 months
  • Average time to close pull requests: 15 days
  • Total issue authors: 88
  • Total pull request authors: 131
  • Average comments per issue: 1.59
  • Average comments per pull request: 2.18
  • Merged pull requests: 1,657
  • Bot issues: 89
  • Bot pull requests: 385
Past Year
  • Issues: 315
  • Pull requests: 1,151
  • Average time to close issues: 18 days
  • Average time to close pull requests: 12 days
  • Issue authors: 45
  • Pull request authors: 79
  • Average comments per issue: 1.22
  • Average comments per pull request: 2.14
  • Merged pull requests: 726
  • Bot issues: 68
  • Bot pull requests: 207
Top Authors
Issue Authors
  • TonyBagnall (309)
  • MatthewMiddlehurst (111)
  • aeon-actions-bot[bot] (87)
  • hadifawaz1999 (68)
  • baraline (45)
  • aiwalter (19)
  • CodeLionX (18)
  • chrisholder (14)
  • lucifer4073 (10)
  • aadya940 (10)
  • SebastianSchmidl (9)
  • Kaustbh (8)
  • IRKnyazev (7)
  • lmmentel (7)
  • kavya-r30 (6)
Pull Request Authors
  • TonyBagnall (636)
  • MatthewMiddlehurst (472)
  • aeon-actions-bot[bot] (138)
  • dependabot[bot] (128)
  • allcontributors[bot] (92)
  • chrisholder (87)
  • hadifawaz1999 (77)
  • aryanpola (50)
  • aadya940 (45)
  • lucifer4073 (36)
  • itsdivya1309 (35)
  • baraline (33)
  • kavya-r30 (31)
  • CodeLionX (31)
  • patrickzib (28)
Top Labels
Issue Labels
enhancement (356) bug (160) documentation (137) transformations (97) stale branch (83) classification (82) good first issue (81) maintenance (69) testing (56) deep learning (51) clustering (50) implementing algorithms (46) forecasting (44) distances (36) datasets (35) regression (30) anomaly detection (30) benchmarking (16) similarity search (13) visualisation (12) examples (11) dependencies (11) annotation (10) networks (8) API design (8) segmentation (8) interfacing algorithms (7) coverage (6) datatypes (4) governance (4)
Pull Request Labels
enhancement (753) maintenance (625) documentation (451) no changelog (358) transformations (341) classification (253) testing (195) bug (192) full pytest actions (163) dependencies (159) deprecation (143) examples (137) full pre-commit (134) clustering (122) forecasting (113) codecov actions (106) regression (103) distances (91) datasets (88) networks (77) anomaly detection (76) benchmarking (57) deep learning (54) visualisation (44) refactor (42) similarity search (35) datatypes (31) coverage (28) segmentation (27) release (22)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 18,632 last-month
  • Total docker downloads: 80
  • Total dependent packages: 5
    (may contain duplicates)
  • Total dependent repositories: 1
    (may contain duplicates)
  • Total versions: 44
  • Total maintainers: 1
proxy.golang.org: github.com/aeon-toolkit/aeon
  • Versions: 17
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 6.4%
Average: 6.6%
Dependent repos count: 6.8%
Last synced: 6 months ago
pypi.org: aeon

A toolkit for machine learning from time series

  • Homepage: https://www.aeon-toolkit.org
  • Documentation: https://www.aeon-toolkit.org
  • License: BSD 3-Clause License Copyright (c) The aeon developers. Copyright (c) 2022 The sktime developers. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  • Latest release: 2.0.2
    published almost 11 years ago
  • Versions: 27
  • Dependent Packages: 5
  • Dependent Repositories: 1
  • Downloads: 18,632 Last month
  • Docker Downloads: 80
Rankings
Dependent packages count: 2.4%
Stargazers count: 2.5%
Docker downloads count: 3.1%
Downloads: 3.9%
Forks count: 6.6%
Average: 6.7%
Dependent repos count: 21.5%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/update_contributors.yml actions
  • actions/checkout v3 composite
  • actions/setup-node v3 composite
  • stefanzweifel/git-auto-commit-action v4 composite
.binder/Dockerfile docker
  • jupyter/scipy-notebook python-3.8.8 build
.github/workflows/periodic_tests.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
.github/workflows/pr_examples.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/pr_pytest.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/release.yml actions
  • actions/checkout v3 composite
  • actions/download-artifact v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • pre-commit/action v3.0.0 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/pr_opened.yml actions
  • actions/checkout v4 composite
  • actions/create-github-app-token v1 composite
  • actions/setup-python v5 composite
.github/workflows/pr_precommit.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • pre-commit-ci/lite-action v1.0.1 composite
  • pre-commit/action v3.0.0 composite
  • tj-actions/changed-files v40.2.2 composite
.github/workflows/precommit_autoupdate.yml actions
  • actions/checkout v4 composite
  • actions/create-github-app-token v1 composite
  • actions/setup-python v5 composite
  • browniebroke/pre-commit-autoupdate-action v1.0.0 composite
  • peter-evans/create-pull-request v5 composite
pyproject.toml pypi
  • attrs >=19.2.0
  • deprecated >=1.2.13
  • numba >=0.55
  • numpy >=1.21.0,<1.27.0
  • packaging >=20.0
  • pandas >=1.5.3,<2.1.0
  • scikit-learn >=1.0.0,<1.4.0
  • scipy >=1.2.0,<2.0.0
.github/actions/numba_cache/action.yml actions
  • actions/cache/restore v3 composite
.github/workflows/issue_comment_posted.yml actions
  • actions/checkout v4 composite
  • actions/create-github-app-token v1 composite
  • actions/setup-python v5 composite
.github/workflows/periodic_github_maintenace.yml actions
  • actions/create-github-app-token v1 composite
  • crs-k/stale-branches v5.0.0 composite
.github/workflows/fast_release.yml actions
  • actions/checkout v4 composite
  • actions/download-artifact v4 composite
  • actions/setup-python v5 composite
  • actions/upload-artifact v4 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/issue_assigned.yml actions
  • actions/checkout v4 composite
  • actions/create-github-app-token v1 composite
  • actions/setup-python v5 composite
.github/workflows/issue_comment_edited.yml actions
  • actions/checkout v4 composite
  • actions/create-github-app-token v1 composite
  • actions/setup-python v5 composite
  • stefanzweifel/git-auto-commit-action v5 composite
.github/workflows/pr_typecheck.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • nick-fields/retry v3 composite
.github/workflows/scorecard.yml actions
  • actions/checkout v4 composite
  • actions/upload-artifact v4 composite
  • github/codeql-action/upload-sarif v3 composite
  • ossf/scorecard-action v2.4.0 composite