名称: aeon 描述: 用于分类、回归、聚类、预测、异常检测、分割和相似性搜索的时间序列机器学习工具包。在以下情况下使用此技能:处理时间数据、执行时间序列分析、在序列数据上构建预测模型,或实现涉及距离度量(DTW)、变换(ROCKET、Catch22)或深度学习用于时间序列的工作流程。适用于任务如ECG分类、股票价格预测、传感器异常检测或可穿戴设备活动识别。
Aeon
概述
Aeon 是一个全面的 Python 时间序列机器学习工具包,提供最先进的算法和经典技术用于分析时间数据。在涉及七种主要学习任务的序列/时间数据工作时使用此技能:分类、回归、聚类、预测、异常检测、分割和相似性搜索。
何时使用此技能
在以下情况下应用此技能:
- 分类或预测时间序列数据(例如,ECG 分类、活动识别)
- 预测时间序列中的未来值(例如,股票价格、能源需求)
- 在传感器流或操作数据中检测异常
- 聚类时间模式或发现 motif
- 将时间序列分割为有意义区域(变更点检测)
- 使用专门度量(DTW、MSM、ERP)计算时间序列之间的距离
- 使用 ROCKET、Catch22、TSFresh 或 shapelet 从时间数据中提取特征
- 使用专门架构为时间序列构建深度学习模型
核心能力
1. 时间序列分类
使用多种算法族分类带标签的时间序列:
- 基于卷积的: ROCKET、MiniRocket、MultiRocket、Arsenal、Hydra
- 深度学习: InceptionTime、ResNet、FCN、TimeCNN、LITE
- 基于字典的: BOSS、TDE、WEASEL、MrSEQL(符号表示)
- 基于距离的: 使用弹性距离的 KNN、Elastic Ensemble、Proximity Forest
- 基于特征的: Catch22、FreshPRINCE、Signature 分类器
- 基于区间的: CIF、DrCIF、RISE、Random Interval 变体
- 基于 shapelet 的: Learning Shapelet、SAST
- 混合集成: HIVE-COTE V1/V2
示例:
from aeon.classification.convolution_based import RocketClassifier
from aeon.datasets import load_arrow_head
X_train, y_train = load_arrow_head(split="train")
X_test, y_test = load_arrow_head(split="test")
clf = RocketClassifier()
clf.fit(X_train, y_train)
accuracy = clf.score(X_test, y_test)
2. 时间序列回归
使用适应分类算法从时间序列预测连续值:
from aeon.regression.convolution_based import RocketRegressor
reg = RocketRegressor()
reg.fit(X_train, y_train_continuous)
predictions = reg.predict(X_test)
3. 预测
使用统计和深度学习模型预测未来值:
- 统计:ARIMA、ETS、Theta、TAR、AutoTAR、TVP
- 朴素基准:带有季节策略的 NaiveForecaster
- 深度学习:TCN(时间卷积网络)
- 基于回归的:带有滑动窗口的 RegressionForecaster
示例:
from aeon.forecasting.naive import NaiveForecaster
forecaster = NaiveForecaster(strategy="last")
forecaster.fit(y_train)
y_pred = forecaster.predict(fh=[1, 2, 3]) # 预测未来3步
4. 异常检测
识别时间序列数据中的异常值:
- 基于距离的: KMeansAD、CBLOF、LOF、STOMP、LeftSTAMPi、MERLIN、ROCKAD
- 基于分布的: COPOD、DWT_MLEAD
- 异常检测: IsolationForest、OneClassSVM、STRAY
- 集合适配器: ClassificationAdapter、OutlierDetectionAdapter
示例:
from aeon.anomaly_detection import STOMP
detector = STOMP(window_size=50)
anomaly_scores = detector.fit_predict(X_series)
5. 聚类
无标签地分组相似时间序列:
from aeon.clustering import TimeSeriesKMeans
clusterer = TimeSeriesKMeans(n_clusters=3, distance="dtw")
clusterer.fit(X_collection)
labels = clusterer.predict(X_new)
6. 分割
将时间序列划分为不同区域或识别变更点:
from aeon.segmentation import ClaSPSegmenter
segmenter = ClaSPSegmenter()
change_points = segmenter.fit_predict(X_series)
7. 相似性搜索
使用专门距离度量和矩阵剖面技术,在时间序列集合中查找 motif 和最近邻。
8. 变换
预处理和从时间序列提取特征:
- 集合变换器: ROCKET、Catch22、TSFresh、Shapelet、SAX、PAA、SFA
- 序列变换器: 移动平均、Box-Cox、PCA、傅里叶、Savitzky-Golay
- 通道操作: 选择、评分、平衡
- 数据平衡: SMOTE、ADASYN
示例:
from aeon.transformations.collection.convolution_based import Rocket
rocket = Rocket(num_kernels=10000)
X_transformed = rocket.fit_transform(X_train)
9. 距离度量
计算专门的时间序列距离:
- 扭曲的: DTW、WDTW、DDTW、WDDTW、Shape DTW、ADTW
- 编辑距离: ERP、EDR、LCSS、TWE
- 标准的: 欧几里得、曼哈顿、闵可夫斯基、平方
- 专门的: MSM、SBD
示例:
from aeon.distances import dtw_distance, pairwise_distance
dist = dtw_distance(series1, series2)
dist_matrix = pairwise_distance(X_collection, metric="dtw")
安装
使用 pip 安装 aeon:
# 仅核心依赖
pip install -U aeon
# 所有可选依赖
pip install -U "aeon[all_extras]"
或使用 conda:
conda create -n aeon-env -c conda-forge aeon
conda activate aeon-env
要求: Python 3.9、3.10、3.11 或 3.12
数据格式
Aeon 使用标准化数据形状:
- 集合:
(n_cases, n_channels, n_timepoints)作为 NumPy 数组或 pandas DataFrame - 单序列: NumPy 数组或 pandas Series
- 变长: 通过填充或专门处理支持
加载示例数据集:
from aeon.datasets import load_arrow_head, load_airline
# 分类数据集
X_train, y_train = load_arrow_head(split="train")
# 预测数据集
y = load_airline()
工作流程模式
管道构建
使用 scikit-learn 管道组合变换器和估计器:
from sklearn.pipeline import Pipeline
from aeon.transformations.collection import Catch22
from aeon.classification.distance_based import KNeighborsTimeSeriesClassifier
pipeline = Pipeline([
('features', Catch22()),
('classifier', KNeighborsTimeSeriesClassifier())
])
pipeline.fit(X_train, y_train)
发现和标签
以编程方式查找估计器:
from aeon.utils.discovery import all_estimators
# 查找所有分类器
classifiers = all_estimators(type_filter="classifier")
# 查找所有预测器
forecasters = all_estimators(type_filter="forecaster")
参考资料
此技能包括带全面细节的模块化参考文件:
references/learning_tasks.md
深入覆盖分类、回归、聚类和相似性搜索,包括算法类别、用例和代码模式。
references/temporal_analysis.md
详细预测、异常检测和分割任务信息,包括模型描述和工作流程。
references/core_modules.md
全面文档化变换、距离、网络、数据集和基准测试工具。
references/workflows.md
常见工作流程模式、管道示例、交叉验证策略和与 scikit-learn 的集成。
根据需要加载这些参考文件以获取特定模块或工作流程的详细信息。