aeon

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Aeon Time Series Machine Learning

Aeon时间序列机器学习

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.
Aeon是一个兼容scikit-learn的Python时间序列机器学习工具包,提供用于分类、回归、聚类、预测、异常检测、分割和相似性搜索的最先进算法。

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

安装

bash
uv pip install aeon
bash
uv pip install aeon

Core Capabilities

核心功能

1. Time Series Classification

1. 时间序列分类

Categorize time series into predefined classes. See
references/classification.md
for complete algorithm catalog.
Quick Start:
python
from aeon.classification.convolution_based import RocketClassifier
from aeon.datasets import load_classification
将时间序列分类为预定义类别。完整算法目录请参考
references/classification.md
快速入门:
python
from 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")
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:**
- **Speed + Performance**: `MiniRocketClassifier`, `Arsenal`
- **Maximum Accuracy**: `HIVECOTEV2`, `InceptionTimeClassifier`
- **Interpretability**: `ShapeletTransformClassifier`, `Catch22Classifier`
- **Small Datasets**: `KNeighborsTimeSeriesClassifier` with DTW distance
clf = RocketClassifier(n_kernels=10000) clf.fit(X_train, y_train) accuracy = clf.score(X_test, y_test)

**算法选择:**
- **速度与性能兼顾**:`MiniRocketClassifier`、`Arsenal`
- **最高准确率**:`HIVECOTEV2`、`InceptionTimeClassifier`
- **可解释性**:`ShapeletTransformClassifier`、`Catch22Classifier`
- **小数据集**:搭配DTW距离的`KNeighborsTimeSeriesClassifier`

2. Time Series Regression

2. 时间序列回归

Predict continuous values from time series. See
references/regression.md
for algorithms.
Quick Start:
python
from 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)
从时间序列中预测连续值。算法详情请参考
references/regression.md
快速入门:
python
from 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)

3. Time Series Clustering

3. 时间序列聚类

Group similar time series without labels. See
references/clustering.md
for methods.
Quick Start:
python
from aeon.clustering import TimeSeriesKMeans

clusterer = TimeSeriesKMeans(
    n_clusters=3,
    distance="dtw",
    averaging_method="ba"
)
labels = clusterer.fit_predict(X_train)
centers = clusterer.cluster_centers_
在无标签的情况下对相似时间序列进行分组。方法详情请参考
references/clustering.md
快速入门:
python
from aeon.clustering import TimeSeriesKMeans

clusterer = TimeSeriesKMeans(
    n_clusters=3,
    distance="dtw",
    averaging_method="ba"
)
labels = clusterer.fit_predict(X_train)
centers = clusterer.cluster_centers_

4. Forecasting

4. 时间序列预测

Predict future time series values. See
references/forecasting.md
for forecasters.
Quick Start:
python
from aeon.forecasting.arima import ARIMA

forecaster = ARIMA(order=(1, 1, 1))
forecaster.fit(y_train)
y_pred = forecaster.predict(fh=[1, 2, 3, 4, 5])
预测时间序列的未来值。预测器详情请参考
references/forecasting.md
快速入门:
python
from aeon.forecasting.arima import ARIMA

forecaster = ARIMA(order=(1, 1, 1))
forecaster.fit(y_train)
y_pred = forecaster.predict(fh=[1, 2, 3, 4, 5])

5. Anomaly Detection

5. 异常检测

Identify unusual patterns or outliers. See
references/anomaly_detection.md
for detectors.
Quick Start:
python
from aeon.anomaly_detection import STOMP

detector = STOMP(window_size=50)
anomaly_scores = detector.fit_predict(y)
识别异常模式或离群值。检测器详情请参考
references/anomaly_detection.md
快速入门:
python
from 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
undefined
threshold = np.percentile(anomaly_scores, 95) anomalies = anomaly_scores > threshold
undefined

6. Segmentation

6. 时间序列分割

Partition time series into regions with change points. See
references/segmentation.md
.
Quick Start:
python
from aeon.segmentation import ClaSPSegmenter

segmenter = ClaSPSegmenter()
change_points = segmenter.fit_predict(y)
将时间序列划分为包含变化点的区域。详情请参考
references/segmentation.md
快速入门:
python
from aeon.segmentation import ClaSPSegmenter

segmenter = ClaSPSegmenter()
change_points = segmenter.fit_predict(y)

7. Similarity Search

7. 相似性搜索

Find similar patterns within or across time series. See
references/similarity_search.md
.
Quick Start:
python
from aeon.similarity_search import StompMotif
在单个或多个时间序列中查找相似模式。详情请参考
references/similarity_search.md
快速入门:
python
from aeon.similarity_search import StompMotif

Find recurring patterns

查找重复模式

motif_finder = StompMotif(window_size=50, k=3) motifs = motif_finder.fit_predict(y)
undefined
motif_finder = StompMotif(window_size=50, k=3) motifs = motif_finder.fit_predict(y)
undefined

Feature Extraction and Transformations

特征提取与转换

Transform time series for feature engineering. See
references/transformations.md
.
ROCKET Features:
python
from aeon.transformations.collection.convolution_based import RocketTransformer

rocket = RocketTransformer()
X_features = rocket.fit_transform(X_train)
转换时间序列以进行特征工程。详情请参考
references/transformations.md
ROCKET特征:
python
from aeon.transformations.collection.convolution_based import RocketTransformer

rocket = RocketTransformer()
X_features = rocket.fit_transform(X_train)

Use features with any sklearn classifier

将特征与任意sklearn分类器配合使用

from sklearn.ensemble import RandomForestClassifier clf = RandomForestClassifier() clf.fit(X_features, y_train)

**Statistical Features:**
```python
from aeon.transformations.collection.feature_based import Catch22

catch22 = Catch22()
X_features = catch22.fit_transform(X_train)
Preprocessing:
python
from aeon.transformations.collection import MinMaxScaler, Normalizer

scaler = Normalizer()  # Z-normalization
X_normalized = scaler.fit_transform(X_train)
from sklearn.ensemble import RandomForestClassifier clf = RandomForestClassifier() clf.fit(X_features, y_train)

**统计特征:**
```python
from aeon.transformations.collection.feature_based import Catch22

catch22 = Catch22()
X_features = catch22.fit_transform(X_train)
预处理:
python
from aeon.transformations.collection import MinMaxScaler, Normalizer

scaler = Normalizer()  # Z标准化
X_normalized = scaler.fit_transform(X_train)

Distance Metrics

距离指标

Specialized temporal distance measures. See
references/distances.md
for complete catalog.
Usage:
python
from aeon.distances import dtw_distance, dtw_pairwise_distance
专用的时序距离度量。完整目录请参考
references/distances.md
使用方法:
python
from aeon.distances import dtw_distance, dtw_pairwise_distance

Single distance

单个距离计算

distance = dtw_distance(x, y, window=0.1)
distance = dtw_distance(x, y, window=0.1)

Pairwise distances

成对距离计算

distance_matrix = dtw_pairwise_distance(X_train)
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:**
- **Elastic**: DTW, DDTW, WDTW, ERP, EDR, LCSS, TWE, MSM
- **Lock-step**: Euclidean, Manhattan, Minkowski
- **Shape-based**: Shape DTW, SBD
from aeon.classification.distance_based import KNeighborsTimeSeriesClassifier
clf = KNeighborsTimeSeriesClassifier( n_neighbors=5, distance="dtw", distance_params={"window": 0.2} )

**可用距离类型:**
- **弹性距离**:DTW、DDTW、WDTW、ERP、EDR、LCSS、TWE、MSM
- **同步距离**:欧氏距离、曼哈顿距离、闵可夫斯基距离
- **基于形状的距离**: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:
python
from 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)
用于时间序列的神经架构。详情请参考
references/networks.md
架构类型:
  • 卷积类:
    FCNClassifier
    ResNetClassifier
    InceptionTimeClassifier
  • 循环类:
    RecurrentNetwork
    TCNNetwork
  • 自编码器类:
    AEFCNClusterer
    AEResNetClusterer
使用方法:
python
from 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)

Datasets and Benchmarking

数据集与基准测试

Load standard benchmarks and evaluate performance. See
references/datasets_benchmarking.md
.
Load Datasets:
python
from aeon.datasets import load_classification, load_regression
加载标准基准数据集并评估性能。详情请参考
references/datasets_benchmarking.md
加载数据集:
python
from aeon.datasets import load_classification, load_regression

Classification

分类数据集

X_train, y_train = load_classification("ArrowHead", split="train")
X_train, y_train = load_classification("ArrowHead", split="train")

Regression

回归数据集

X_train, y_train = load_regression("Covid3Month", split="train")

**Benchmarking:**
```python
from aeon.benchmarking import get_estimator_results
X_train, y_train = load_regression("Covid3Month", split="train")

**基准测试:**
```python
from aeon.benchmarking import get_estimator_results

Compare with published results

与已发布结果对比

published = get_estimator_results("ROCKET", "GunPoint")
undefined
published = get_estimator_results("ROCKET", "GunPoint")
undefined

Common Workflows

常见工作流

Classification Pipeline

分类流水线

python
from 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)
python
from 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)

Feature Extraction + Traditional ML

特征提取 + 传统机器学习

python
from aeon.transformations.collection import RocketTransformer
from sklearn.ensemble import GradientBoostingClassifier
python
from 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)
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)
undefined
clf = GradientBoostingClassifier() clf.fit(X_train_features, y_train) predictions = clf.predict(X_test_features)
undefined

Anomaly Detection with Visualization

异常检测与可视化

python
from 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.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='时间序列')
plt.subplot(2, 1, 2)
plt.plot(scores, label='异常分数', color='red')
plt.axhline(np.percentile(scores, 95), color='k', linestyle='--')
plt.show()

Best Practices

最佳实践

Data Preparation

数据准备

  1. 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)
  2. Handle Missing Values: Impute before analysis
    python
    from aeon.transformations.collection import SimpleImputer
    imputer = SimpleImputer(strategy='mean')
    X_train = imputer.fit_transform(X_train)
  3. Check Data Format: Aeon expects shape
    (n_samples, n_channels, n_timepoints)
  1. 标准化:大多数算法受益于Z标准化
    python
    from aeon.transformations.collection import Normalizer
    normalizer = Normalizer()
    X_train = normalizer.fit_transform(X_train)
    X_test = normalizer.transform(X_test)
  2. 处理缺失值:分析前进行插补
    python
    from aeon.transformations.collection import SimpleImputer
    imputer = SimpleImputer(strategy='mean')
    X_train = imputer.fit_transform(X_train)
  3. 检查数据格式:Aeon要求数据形状为
    (n_samples, n_channels, n_timepoints)

Model Selection

模型选择

  1. Start Simple: Begin with ROCKET variants before deep learning
  2. Use Validation: Split training data for hyperparameter tuning
  3. Compare Baselines: Test against simple methods (1-NN Euclidean, Naive)
  4. Consider Resources: ROCKET for speed, deep learning if GPU available
  1. 从简单开始:在尝试深度学习之前,先从ROCKET变体开始
  2. 使用验证集:拆分训练数据进行超参数调优
  3. 对比基线模型:与简单方法(1-NN欧氏距离、朴素模型)进行测试
  4. 考虑资源情况:追求速度选ROCKET,若有GPU可用再考虑深度学习

Algorithm Selection Guide

算法选择指南

For Fast Prototyping:
  • Classification:
    MiniRocketClassifier
  • Regression:
    MiniRocketRegressor
  • Clustering:
    TimeSeriesKMeans
    with 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:
    KNeighborsTimeSeriesClassifier
    with DTW
  • Avoid: Deep learning (requires large data)
快速原型开发:
  • 分类:
    MiniRocketClassifier
  • 回归:
    MiniRocketRegressor
  • 聚类:搭配欧氏距离的
    TimeSeriesKMeans
最高准确率:
  • 分类:
    HIVECOTEV2
    InceptionTimeClassifier
  • 回归:
    InceptionTimeRegressor
  • 预测:
    ARIMA
    TCNForecaster
可解释性优先:
  • 分类:
    ShapeletTransformClassifier
    Catch22Classifier
  • 特征:
    Catch22
    TSFresh
小数据集场景:
  • 基于距离的模型:搭配DTW距离的
    KNeighborsTimeSeriesClassifier
  • 避免使用:深度学习(需要大量数据)

Reference Documentation

参考文档

Detailed information available in
references/
:
  • classification.md
    - All classification algorithms
  • regression.md
    - Regression methods
  • clustering.md
    - Clustering algorithms
  • forecasting.md
    - Forecasting approaches
  • anomaly_detection.md
    - Anomaly detection methods
  • segmentation.md
    - Segmentation algorithms
  • similarity_search.md
    - Pattern matching and motif discovery
  • transformations.md
    - Feature extraction and preprocessing
  • distances.md
    - Time series distance metrics
  • networks.md
    - Deep learning architectures
  • datasets_benchmarking.md
    - Data loading and evaluation tools
详细信息请查看
references/
目录:
  • classification.md
    - 所有分类算法
  • regression.md
    - 回归方法
  • clustering.md
    - 聚类算法
  • forecasting.md
    - 预测方法
  • anomaly_detection.md
    - 异常检测方法
  • segmentation.md
    - 分割算法
  • similarity_search.md
    - 模式匹配与基元发现
  • transformations.md
    - 特征提取与预处理
  • distances.md
    - 时间序列距离指标
  • networks.md
    - 深度学习架构
  • datasets_benchmarking.md
    - 数据加载与评估工具

Additional Resources

额外资源