Skip to main content

A toolkit for machine learning from time series

Project description

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.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, 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 forecasting, 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 allowing 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aeon-0.11.0.tar.gz (8.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aeon-0.11.0-py3-none-any.whl (8.7 MB view details)

Uploaded Python 3

File details

Details for the file aeon-0.11.0.tar.gz.

File metadata

  • Download URL: aeon-0.11.0.tar.gz
  • Upload date:
  • Size: 8.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for aeon-0.11.0.tar.gz
Algorithm Hash digest
SHA256 d83d2958bf67fc98d1a570b7ddcb32c3c928b5c3f57260fdfa9c8c6f34334168
MD5 a33772792b78876f539671ca1dbfcee1
BLAKE2b-256 1cbab90310d05d75374e57cea66656ee47ad11aa38a5b48a94aec76d0ff554ef

See more details on using hashes here.

File details

Details for the file aeon-0.11.0-py3-none-any.whl.

File metadata

  • Download URL: aeon-0.11.0-py3-none-any.whl
  • Upload date:
  • Size: 8.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for aeon-0.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5b4e02492a55fc2422e47c4c3f05798fa94a7a5177cc94af1f1d0a019efd0e2e
MD5 b12320956ea59e0e5d079ef4b8d60954
BLAKE2b-256 04ec0b1cb39878b54c3a0c183043339d9563fe07e714eb71ee02711cac50f2f2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page