aeon
统一 API 的时间序列机器学习工具包,涵盖分类、预测、异常检测等十大任务
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
统一 API 的时间序列机器学习工具包,涵盖分类、预测、异常检测等十大任务
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:aeon 官方 Logo — 专注时间序列机器学习的开源工具包
想象一下这个场景:某天你在医院上班,需要预测未来48小时内ICU病房的床位需求。这是一条随时间变化的数据流,每一秒都在产生新数据。传统机器学习方法在处理这类「时间序列」数据时,往往需要大量自定义代码、复杂的数据预处理,以及针对不同任务(分类、预测、异常检测)使用完全不同的工具库。这就是时间序列分析领域长期存在的「碎片化」问题。
aeon(读作 ee-on)的诞生,正是为了解决这个痛点。它由 aeon-toolkit 团队开发,团队成员同时也是该领域顶级学术期刊的作者和时间序列分类网站的运营者。2024年,aeon 正式发表在 Journal of Machine Learning Research (JMLR) 上,这是一本人工智能领域的顶级学术期刊,标志着其代码质量和学术严谨性得到了同行的高度认可。
aeon 最大的设计哲学是「十项任务,一套 API」——无论你做的是时间序列分类、回归、聚类还是异常检测,调用方式几乎完全一致。这种统一性大幅降低了学习成本,让研究者可以将精力集中在实验本身。
aeon 支持的十大核心任务:
| 任务类型 | 核心能力 | 典型应用场景 |
|---|---|---|
| 分类 | 将时间序列归类到预定义类别 | ECG 心电图识别、手势动作分类 |
| 回归 | 预测连续数值 | 股票价格预测、能耗预测 |
| 聚类 | 无监督发现时间序列模式 | 用户行为分群、设备状态分类 |
| 预测 | 预测未来时间点的值 | 销量预测、天气预报 |
| 异常检测 | 识别偏离正常模式的数据点 | 金融欺诈检测、设备故障预警 |
| 分割 | 将长序列划分为语义段落 | 视频动作分割、信号分解 |
| 相似度搜索 | 快速查找相似的时间序列 | 音乐检索、数据库查询 |
| 距离计算 | 多种时间序列距离度量 | 序列比对、聚类基础算法 |
| 基准测试 | 标准化实验对比框架 | 论文实验复现、算法评估 |
| 数据转换 | 特征提取、降维、去噪等预处理 | 信号处理、特征工程 |
aeon 的架构设计深受 scikit-learn 影响。所有算法都实现了 fit()、predict() 和 transform() 三个标准方法,如果你熟悉 scikit-learn,aeon 上手几乎没有门槛。同时,它借鉴了 Keras/PyTorch 的模型注册机制,通过统一的 BaseRegressor 和 BaseClassifier 继承体系来管理算法层级。
代码包结构清晰,分为以下核心模块:
依赖管理上,aeon 的核心依赖极为精简——仅依赖 NumPy、pandas、SciPy、scikit-learn 和 Numba(用于 JIT 加速)。可选依赖涵盖深度学习框架(TensorFlow、PyTorch)、可视化(matplotlib、seaborn)、统计建模(statsmodels)等,用户可按需选择性安装。aeon 明确要求 Python >= 3.11,确保了对现代 Python 语法和性能特性的充分利用。
安装只需一行命令:
pip install aeon
# 或安装完整版(包含所有可选依赖):
pip install aeon[all_extras]
三行代码完成时间序列分类:
from aeon.classification.convolution_based import RocketClassifier
from aeon.datasets import load_gunpoint
X_train, y_train = load_gunpoint(split='train')
X_test, y_test = load_gunpoint(split='test')
clf = RocketClassifier()
clf.fit(X_train, y_train)
print('Accuracy:', clf.score(X_test, y_test))
内置数据集加载器是 aeon 的一大亮点——aeon.datasets 模块直接内置了 UCR/UEA 时间序列档案库中的 130+ 个标准数据集,涵盖了医疗、金融、工业等各领域的典型数据,省去了手动下载和格式转换的麻烦。
从工程部署角度来看:
aeon 的出现在时间序列领域具有里程碑意义。在它之前,研究者需要在多个工具库之间切换:tslearn 处理聚类、tsfresh 做特征提取、statsmodels 做统计预测、sktime 做分类——每个库的设计理念和 API 风格各异,切换成本极高。aeon 的出现,首次将这个碎片化的生态整合为一个统一工具包。
截至目前,aeon 在 GitHub 上已获得 1392 stars,被 274 个项目 fork,并持续保持活跃的开发状态(234 个 open issues)。JMLR 论文的发表进一步巩固了其在学术界的地位——aeon 中的算法实现经过严格验证,反映了对应论文的实际描述。
尽管 aeon 功能强大,也有一些需要注意的局限:
aeon 是目前时间序列机器学习领域最全面、最权威的 Python 开源工具包。它将学术前沿算法与工程实用性完美结合,通过统一的 API 设计大幅降低了时间序列分析的门槛。适合科研工作者、数据科学家以及需要处理时间序列数据的工程师使用,是时间序列分析领域的「scikit-learn」。