Skip to content
/ aeon Public
forked from aeon-toolkit/aeon

A toolkit for conducting machine learning tasks with time series data

License

Notifications You must be signed in to change notification settings

aadya940/aeon

This branch is 107 commits behind aeon-toolkit/aeon:main.

Folders and files

NameName
Last commit message
Last commit date
Jan 19, 2024
Nov 18, 2024
Nov 17, 2024
Nov 16, 2024
Nov 15, 2024
Nov 14, 2024
Oct 29, 2024
Feb 6, 2024
Oct 19, 2023
Mar 26, 2024
Nov 18, 2024
Feb 16, 2024
Jan 19, 2024
Nov 10, 2024
Jan 19, 2024
Jan 19, 2024
Nov 14, 2024
Jan 19, 2024
Sep 27, 2024
Nov 15, 2024
Oct 31, 2024
Oct 25, 2024
Nov 15, 2024

aeon logo

⌛ Welcome to aeon

aeon is an open-source toolkit for learning from time series. It is compatible with scikit-learn and provides access to the very latest algorithms for time series machine learning, in addition to a range of classical techniques for learning tasks such as forecasting and classification.

We strive to provide a broad library of time series algorithms including the latest advances, offer efficient implementations using numba, and interfaces with other time series packages to provide a single framework for algorithm comparison.

The latest aeon release is v0.11.1. 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, benchmarking, segmentation, similarity_search, testing, transformations/series, visualisation

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 !twitter

⚙️ Installation

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

The easiest way to install aeon is via pip:

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:

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

It's worth mentioning that the classifier used in the example can easily be swapped out for a regressor, and the labels for numeric targets. This flexibility allows for seamless adaptation to different tasks and datasets while preserving API consistency.

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

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

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

X_test = np.array(
    [[[2, 2, 2, 2, 2, 2]], [[5, 5, 5, 5, 5, 5]], [[6, 6, 6, 6, 6, 6]]]
)
y_pred = clf.predict(X_test)  # make class predictions on new data
>>> ['low' 'high' 'high']

Clustering

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, six series length,
     [[8, 7, 6, 5, 4, 4]]])

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])

X_test = np.array(
    [[[2, 2, 2, 2, 2, 2]], [[5, 5, 5, 5, 5, 5]], [[6, 6, 6, 6, 6, 6]]]
)
clu.predict(X_test)  # 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

Citation

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

@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 and we will happily list it here

About

A toolkit for conducting machine learning tasks with time series data

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%