- Notifications
You must be signed in to change notification settings - Fork187
A toolkit for machine learning from time series
License
aeon-toolkit/aeon
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
aeon
is an open-source toolkit for learning from time series. It is compatible withscikit-learn and provides access to the very latestalgorithms for time series machine learning, in addition to a range of classicaltechniques for learning tasks such as forecasting and classification.
We strive to provide a broad library of time series algorithms including thelatest advances, offer efficient implementations using numba, and interfaces with othertime series packages to provide a single framework for algorithm comparison.
The latestaeon
release isv1.0.0
. You can view the full changeloghere.
Our webpage and documentation is available athttps://aeon-toolkit.org.
The following modules are still considered experimental, and thedeprecation policydoes not apply:
anomaly_detection
forecasting
segmentation
similarity_search
visualisation
Overview | |
---|---|
CI/CD | |
Code | |
Community | |
Affiliation |
aeon
requires a Python version of 3.9 or greater. Our full installation guide isavailable in ourdocumentation.
The easiest way to installaeon
is via pip:
pip install aeon
Some estimators require additional packages to be installed. If you want to installthe full package with all optional dependencies, you can use:
pip install aeon[all_extras]
Instructions for installation from theGitHub sourcecan be foundhere.
The best place to get started for allaeon
packages is ourgetting started guide.
Below we provide a quick example of how to useaeon
for classification and clustering.
Time series classification looks to predict class labels fore unseen series using amodel 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.
importnumpyasnpfromaeon.classification.distance_basedimportKNeighborsTimeSeriesClassifierX=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 lengthy=np.array(['low','low','high'])# class labels for each sampleclf=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']
Time series clustering groups similar time series together from a collection oftime series.
importnumpyasnpfromaeon.clusteringimportTimeSeriesKMeansX=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 lengthclu=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])
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 iscontact@aeon-toolkit.org.
If you are interested in contributing toaeon
, please see ourcontributing guideand have a read through before assigning an issue and creating a pull request. Beaware that thelatest
version of the docs is the development version, and thestable
version is the latest release.
Theaeon
developers are volunteers so please be patient with responses to comments andpull request reviews. If you have any questions, feel free to ask using the abovemediums.
If you useaeon
we would appreciate a citation of the followingpaper:
@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 usingaeon
, we will happily list ithere.
aeon
was forked fromsktime
v0.16.0
in 2022 by an initial group of eight coredevelopers.
About
A toolkit for machine learning from time series