Install any skill in seconds. Free to start, no credit card required.
Get Started Free →This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 146% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 145% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 139% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 68% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 301% | 0% |
Aeon is a scikit-learn compatible Python toolkit for time series machine learning (aeon-toolkit.org). It provides algorithms across classification, regression, clustering, forecasting, anomaly detection, segmentation, similarity search, distances, transformations, benchmarking, and visualization — with a consistent estimator API.
Version note: Examples target aeon 1.x (stable docs: v1.4.0, March 2026). The v1.0 release reworked forecasting and transformations; import paths differ from aeon 0.x/sktime-era code.
Apply this skill when:
Requires Python 3.10+ (3.11+ recommended). Pin a 1.x release for reproducibility:
bashuv pip install "aeon>=1.4,<2"
For deep learning forecasters/classifiers and other optional estimators:
bashuv pip install "aeon[all_extras]>=1.4,<2"
On zsh, quote the extras: uv pip install "aeon[all_extras]>=1.4,<2".
Upstream treats forecasting, anomaly_detection, segmentation, similarity_search, and visualisation as experimental — interfaces may change between minor releases. Prefer stable modules (classification, regression, clustering, distances, transformations) for production pipelines unless you need these tasks.
Categorize time series into predefined classes. See references/classification.md for complete algorithm catalog.
Quick Start:
pythonfrom aeon.classification.convolution_based import RocketClassifier from aeon.datasets import load_classification # Load data X_train, y_train = load_classification("GunPoint", split="train") X_test, y_test = load_classification("GunPoint", split="test") # Train classifier clf = RocketClassifier(n_kernels=10000) clf.fit(X_train, y_train) accuracy = clf.score(X_test, y_test)
Algorithm Selection:
MiniRocketClassifier, ArsenalHIVECOTEV2, InceptionTimeClassifierShapeletTransformClassifier, Catch22ClassifierKNeighborsTimeSeriesClassifier with DTW distancePredict continuous values from time series. See references/regression.md for algorithms.
Quick Start:
pythonfrom aeon.regression.convolution_based import RocketRegressor from aeon.datasets import load_regression X_train, y_train = load_regression("Covid3Month", split="train") X_test, y_test = load_regression("Covid3Month", split="test") reg = RocketRegressor() reg.fit(X_train, y_train) predictions = reg.predict(X_test)
Group similar time series without labels. See references/clustering.md for methods.
Quick Start:
pythonfrom aeon.clustering import TimeSeriesKMeans clusterer = TimeSeriesKMeans( n_clusters=3, distance="dtw", averaging_method="ba" ) labels = clusterer.fit_predict(X_train) centers = clusterer.cluster_centers_
Predict future time series values (experimental module in aeon 1.x). See references/forecasting.md for forecasters.
Quick Start:
pythonimport numpy as np from aeon.forecasting import NaiveForecaster from aeon.forecasting.stats import ARIMA y_train = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0]) # Set horizon in the constructor; predict passes the series to forecast from naive = NaiveForecaster(strategy="last", horizon=5) naive.fit(y_train) y_pred = naive.predict(y_train) # ARIMA uses p/d/q (not order=); multi-step via iterative_forecast arima = ARIMA(p=1, d=1, q=1) arima.fit(y_train) y_pred = arima.iterative_forecast(y_train, prediction_horizon=5)
Identify unusual patterns or outliers. See references/anomaly_detection.md for detectors.
Quick Start:
pythonfrom aeon.anomaly_detection import STOMP detector = STOMP(window_size=50) anomaly_scores = detector.fit_predict(y) # Higher scores indicate anomalies threshold = np.percentile(anomaly_scores, 95) anomalies = anomaly_scores > threshold
Partition time series into regions with change points. See references/segmentation.md.
Quick Start:
pythonfrom aeon.segmentation import ClaSPSegmenter segmenter = ClaSPSegmenter() change_points = segmenter.fit_predict(y)
Find similar patterns within or across time series. See references/similarity_search.md.
Quick Start:
pythonfrom aeon.similarity_search import StompMotif # Find recurring patterns motif_finder = StompMotif(window_size=50, k=3) motifs = motif_finder.fit_predict(y)
Transform time series for feature engineering. See references/transformations.md.
ROCKET Features:
pythonfrom aeon.transformations.collection.convolution_based import RocketTransformer rocket = RocketTransformer() X_features = rocket.fit_transform(X_train) # Use features with any sklearn classifier from sklearn.ensemble import RandomForestClassifier clf = RandomForestClassifier() clf.fit(X_features, y_train)
Statistical Features:
pythonfrom aeon.transformations.collection.feature_based import Catch22 catch22 = Catch22() X_features = catch22.fit_transform(X_train)
Preprocessing:
pythonfrom aeon.transformations.collection import MinMaxScaler, Normalizer scaler = Normalizer() # Z-normalization X_normalized = scaler.fit_transform(X_train)
Specialized temporal distance measures. See references/distances.md for complete catalog.
Usage:
pythonfrom aeon.distances import dtw_distance, dtw_pairwise_distance # Single distance distance = dtw_distance(x, y, window=0.1) # Pairwise distances distance_matrix = dtw_pairwise_distance(X_train) # Use with classifiers from aeon.classification.distance_based import KNeighborsTimeSeriesClassifier clf = KNeighborsTimeSeriesClassifier( n_neighbors=5, distance="dtw", distance_params={"window": 0.2} )
Available Distances:
Neural architectures for time series. See references/networks.md.
Architectures:
FCNClassifier, ResNetClassifier, InceptionTimeClassifierRecurrentNetwork, TCNNetworkAEFCNClusterer, AEResNetClustererUsage:
pythonfrom aeon.classification.deep_learning import InceptionTimeClassifier clf = InceptionTimeClassifier(n_epochs=100, batch_size=32) clf.fit(X_train, y_train) predictions = clf.predict(X_test)
Load standard benchmarks and evaluate performance. See references/datasets_benchmarking.md.
Load Datasets:
pythonfrom aeon.datasets import load_classification, load_gunpoint, load_regression # Classification (generic loader or dataset-specific helper) X_train, y_train = load_classification("GunPoint", split="train") X_train, y_train = load_gunpoint(split="train") # same UCR dataset # Regression X_train, y_train = load_regression("Covid3Month", split="train")
Benchmarking:
pythonfrom aeon.benchmarking import get_estimator_results # Compare with published results published = get_estimator_results("ROCKET", "GunPoint")
pythonfrom aeon.transformations.collection import Normalizer from aeon.classification.convolution_based import RocketClassifier from sklearn.pipeline import Pipeline pipeline = Pipeline([ ('normalize', Normalizer()), ('classify', RocketClassifier()) ]) pipeline.fit(X_train, y_train) accuracy = pipeline.score(X_test, y_test)
pythonfrom aeon.transformations.collection import RocketTransformer from sklearn.ensemble import GradientBoostingClassifier # Extract features rocket = RocketTransformer() X_train_features = rocket.fit_transform(X_train) X_test_features = rocket.transform(X_test) # Train traditional ML clf = GradientBoostingClassifier() clf.fit(X_train_features, y_train) predictions = clf.predict(X_test_features)
pythonfrom aeon.anomaly_detection import STOMP import matplotlib.pyplot as plt detector = STOMP(window_size=50) scores = detector.fit_predict(y) plt.figure(figsize=(15, 5)) plt.subplot(2, 1, 1) plt.plot(y, label='Time Series') plt.subplot(2, 1, 2) plt.plot(scores, label='Anomaly Scores', color='red') plt.axhline(np.percentile(scores, 95), color='k', linestyle='--') plt.show()
python from aeon.transformations.collection import Normalizer normalizer = Normalizer() X_train = normalizer.fit_transform(X_train) X_test = normalizer.transform(X_test)
python from aeon.transformations.collection import SimpleImputer imputer = SimpleImputer(strategy='mean') X_train = imputer.fit_transform(X_train)
(n_cases, n_channels, n_timepoints); single series use (n_channels, n_timepoints) (see data format)For Fast Prototyping:
MiniRocketClassifierMiniRocketRegressorTimeSeriesKMeans with EuclideanFor Maximum Accuracy:
HIVECOTEV2, InceptionTimeClassifierInceptionTimeRegressorAutoARIMA, AutoETS, TCNForecaster (requires [all_extras] for deep learning)For Interpretability:
ShapeletTransformClassifier, Catch22ClassifierCatch22, TSFreshFor Small Datasets:
KNeighborsTimeSeriesClassifier with DTWDetailed information available in references/:
classification.md - All classification algorithmsregression.md - Regression methodsclustering.md - Clustering algorithmsforecasting.md - Forecasting approachesanomaly_detection.md - Anomaly detection methodssegmentation.md - Segmentation algorithmssimilarity_search.md - Pattern matching and motif discoverytransformations.md - Feature extraction and preprocessingdistances.md - Time series distance metricsnetworks.md - Deep learning architecturesdatasets_benchmarking.md - Data loading and evaluation toolsOther measured skills in the registry, with their headline benchmark lift.