Skill v1.0.0
currentAutomated scan100/100version: "1.0.0" name: aeon description: 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. license: BSD-3-Clause license tags: [scientific-skills, aeon, scikit-learn, machine-learning, search, finance] metadata: skill-author: K-Dense Inc.
Aeon Time Series Machine Learning
Overview
Aeon is a scikit-learn compatible Python toolkit for time series machine learning. It provides state-of-the-art algorithms for classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search.
When to Use This Skill
Apply this skill when:
- Classifying or predicting from time series data
- Detecting anomalies or change points in temporal sequences
- Clustering similar time series patterns
- Forecasting future values
- Finding repeated patterns (motifs) or unusual subsequences (discords)
- Comparing time series with specialized distance metrics
- Extracting features from temporal data
Installation
uv pip install aeon
Core Capabilities
1. Time Series Classification
Categorize time series into predefined classes. See references/classification.md for complete algorithm catalog.
Quick Start:
from aeon.classification.convolution_based import RocketClassifierfrom aeon.datasets import load_classification# Load dataX_train, y_train = load_classification("GunPoint", split="train")X_test, y_test = load_classification("GunPoint", split="test")# Train classifierclf = RocketClassifier(n_kernels=10000)clf.fit(X_train, y_train)accuracy = clf.score(X_test, y_test)
Algorithm Selection:
- Speed + Performance:
MiniRocketClassifier,Arsenal - Maximum Accuracy:
HIVECOTEV2,InceptionTimeClassifier - Interpretability:
ShapeletTransformClassifier,Catch22Classifier - Small Datasets:
KNeighborsTimeSeriesClassifierwith DTW distance
2. Time Series Regression
Predict continuous values from time series. See references/regression.md for algorithms.
Quick Start:
from aeon.regression.convolution_based import RocketRegressorfrom aeon.datasets import load_regressionX_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)
3. Time Series Clustering
Group similar time series without labels. See references/clustering.md for methods.
Quick Start:
from aeon.clustering import TimeSeriesKMeansclusterer = TimeSeriesKMeans(n_clusters=3,distance="dtw",averaging_method="ba")labels = clusterer.fit_predict(X_train)centers = clusterer.cluster_centers_
4. Forecasting
Predict future time series values. See references/forecasting.md for forecasters.
Quick Start:
from aeon.forecasting.arima import ARIMAforecaster = ARIMA(order=(1, 1, 1))forecaster.fit(y_train)y_pred = forecaster.predict(fh=[1, 2, 3, 4, 5])
5. Anomaly Detection
Identify unusual patterns or outliers. See references/anomaly_detection.md for detectors.
Quick Start:
from aeon.anomaly_detection import STOMPdetector = STOMP(window_size=50)anomaly_scores = detector.fit_predict(y)# Higher scores indicate anomaliesthreshold = np.percentile(anomaly_scores, 95)anomalies = anomaly_scores > threshold
6. Segmentation
Partition time series into regions with change points. See references/segmentation.md.
Quick Start:
from aeon.segmentation import ClaSPSegmentersegmenter = ClaSPSegmenter()change_points = segmenter.fit_predict(y)
7. Similarity Search
Find similar patterns within or across time series. See references/similarity_search.md.
Quick Start:
from aeon.similarity_search import StompMotif# Find recurring patternsmotif_finder = StompMotif(window_size=50, k=3)motifs = motif_finder.fit_predict(y)
Feature Extraction and Transformations
Transform time series for feature engineering. See references/transformations.md.
ROCKET Features:
from aeon.transformations.collection.convolution_based import RocketTransformerrocket = RocketTransformer()X_features = rocket.fit_transform(X_train)# Use features with any sklearn classifierfrom sklearn.ensemble import RandomForestClassifierclf = RandomForestClassifier()clf.fit(X_features, y_train)
Statistical Features:
from aeon.transformations.collection.feature_based import Catch22catch22 = Catch22()X_features = catch22.fit_transform(X_train)
Preprocessing:
from aeon.transformations.collection import MinMaxScaler, Normalizerscaler = Normalizer() # Z-normalizationX_normalized = scaler.fit_transform(X_train)
Distance Metrics
Specialized temporal distance measures. See references/distances.md for complete catalog.
Usage:
from aeon.distances import dtw_distance, dtw_pairwise_distance# Single distancedistance = dtw_distance(x, y, window=0.1)# Pairwise distancesdistance_matrix = dtw_pairwise_distance(X_train)# Use with classifiersfrom aeon.classification.distance_based import KNeighborsTimeSeriesClassifierclf = KNeighborsTimeSeriesClassifier(n_neighbors=5,distance="dtw",distance_params={"window": 0.2})
Available Distances:
- Elastic: DTW, DDTW, WDTW, ERP, EDR, LCSS, TWE, MSM
- Lock-step: Euclidean, Manhattan, Minkowski
- Shape-based: Shape DTW, SBD
Deep Learning Networks
Neural architectures for time series. See references/networks.md.
Architectures:
- Convolutional:
FCNClassifier,ResNetClassifier,InceptionTimeClassifier - Recurrent:
RecurrentNetwork,TCNNetwork - Autoencoders:
AEFCNClusterer,AEResNetClusterer
Usage:
from aeon.classification.deep_learning import InceptionTimeClassifierclf = InceptionTimeClassifier(n_epochs=100, batch_size=32)clf.fit(X_train, y_train)predictions = clf.predict(X_test)
Datasets and Benchmarking
Load standard benchmarks and evaluate performance. See references/datasets_benchmarking.md.
Load Datasets:
from aeon.datasets import load_classification, load_regression# ClassificationX_train, y_train = load_classification("ArrowHead", split="train")# RegressionX_train, y_train = load_regression("Covid3Month", split="train")
Benchmarking:
from aeon.benchmarking import get_estimator_results# Compare with published resultspublished = get_estimator_results("ROCKET", "GunPoint")
Common Workflows
Classification Pipeline
from aeon.transformations.collection import Normalizerfrom aeon.classification.convolution_based import RocketClassifierfrom sklearn.pipeline import Pipelinepipeline = Pipeline([('normalize', Normalizer()),('classify', RocketClassifier())])pipeline.fit(X_train, y_train)accuracy = pipeline.score(X_test, y_test)
Feature Extraction + Traditional ML
from aeon.transformations.collection import RocketTransformerfrom sklearn.ensemble import GradientBoostingClassifier# Extract featuresrocket = RocketTransformer()X_train_features = rocket.fit_transform(X_train)X_test_features = rocket.transform(X_test)# Train traditional MLclf = GradientBoostingClassifier()clf.fit(X_train_features, y_train)predictions = clf.predict(X_test_features)
Anomaly Detection with Visualization
from aeon.anomaly_detection import STOMPimport matplotlib.pyplot as pltdetector = 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()
Best Practices
Data Preparation
- Normalize: Most algorithms benefit from z-normalization
``python from aeon.transformations.collection import Normalizer normalizer = Normalizer() X_train = normalizer.fit_transform(X_train) X_test = normalizer.transform(X_test) ``
- Handle Missing Values: Impute before analysis
``python from aeon.transformations.collection import SimpleImputer imputer = SimpleImputer(strategy='mean') X_train = imputer.fit_transform(X_train) ``
- Check Data Format: Aeon expects shape
(n_samples, n_channels, n_timepoints)
Model Selection
- Start Simple: Begin with ROCKET variants before deep learning
- Use Validation: Split training data for hyperparameter tuning
- Compare Baselines: Test against simple methods (1-NN Euclidean, Naive)
- Consider Resources: ROCKET for speed, deep learning if GPU available
Algorithm Selection Guide
For Fast Prototyping:
- Classification:
MiniRocketClassifier - Regression:
MiniRocketRegressor - Clustering:
TimeSeriesKMeanswith Euclidean
For Maximum Accuracy:
- Classification:
HIVECOTEV2,InceptionTimeClassifier - Regression:
InceptionTimeRegressor - Forecasting:
ARIMA,TCNForecaster
For Interpretability:
- Classification:
ShapeletTransformClassifier,Catch22Classifier - Features:
Catch22,TSFresh
For Small Datasets:
- Distance-based:
KNeighborsTimeSeriesClassifierwith DTW - Avoid: Deep learning (requires large data)
Reference Documentation
Detailed 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 tools
Additional Resources
- Documentation: https://www.aeon-toolkit.org/
- GitHub: https://github.com/aeon-toolkit/aeon
- Examples: https://www.aeon-toolkit.org/en/stable/examples.html
- API Reference: https://www.aeon-toolkit.org/en/stable/api_reference.html