点击上方卡片关注我
设置星标 学习更多技能
时间序列分析是数据科学中的重要分支,涵盖预测、分类、聚类等多种任务。Aeon是从著名的sktime库分离出来的专业时间序列机器学习工具包,专注于提供高性能的算法实现和统一的API接口。该库整合了深度学习、传统机器学习和统计方法,支持单变量和多变量时间序列处理。与其他工具相比,Aeon更注重计算效率和算法的现代化实现,提供了大量经过优化的分类器、回归器和变换器。
使用pip安装Aeon库:
pip install aeon运行以下代码验证安装:
import aeonprint(aeon.__version__)如果能正常输出版本号,说明安装成功。
时间序列分类是识别序列所属类别的任务,如动作识别、设备状态判断等。下面的代码展示如何使用Aeon的经典分类器ROCKET,通过随机卷积核提取特征后用Ridge分类器预测。ROCKET在多个基准数据集上表现优异且速度快,适合快速建立分类基线模型。
from aeon.classification.convolution_based import RocketClassifierfrom aeon.datasets import load_arrow_headimport numpy as np# 加载示例数据集X_train, y_train = load_arrow_head(split="train")X_test, y_test = load_arrow_head(split="test")# 训练ROCKET分类器classifier = RocketClassifier(num_kernels=10000)classifier.fit(X_train, y_train)# 预测和评估accuracy = classifier.score(X_test, y_test)print(f"分类准确率: {accuracy:.4f}")回归任务用于预测连续数值,如销量预测、温度估计等。下面的代码使用基于距离的时间序列回归器KNeighborsTimeSeriesRegressor,通过计算时间序列间的DTW(动态时间规整)距离找到最近邻样本进行预测。
from aeon.regression.distance_based import KNeighborsTimeSeriesRegressorfrom sklearn.model_selection import train_test_splitimport pandas as pd# 创建示例数据X = np.random.randn(100, 1, 50) # 100个样本,1个变量,50个时间点y = np.random.randn(100)X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)# 训练回归模型regressor = KNeighborsTimeSeriesRegressor(n_neighbors=5, distance="dtw")regressor.fit(X_train, y_train)# 预测和评估predictions = regressor.predict(X_test)score = regressor.score(X_test, y_test)print(f"回归R²分数: {score:.4f}")聚类用于发现时间序列数据中的隐藏模式和分组。下面的代码展示如何使用TimeSeriesKMeans进行聚类分析,支持多种时间序列距离度量。
from aeon.clustering import TimeSeriesKMeans# 创建时间序列数据X = np.random.randn(50, 1, 100) # 50个时间序列# K-means聚类kmeans = TimeSeriesKMeans(n_clusters=3, metric="euclidean", n_init=10)cluster_labels = kmeans.fit_predict(X)print(f"聚类标签: {cluster_labels}")print(f"各簇样本数: {np.bincount(cluster_labels)}")# 获取聚类中心centers = kmeans.cluster_centers_print(f"聚类中心形状: {centers.shape}")Aeon集成了多种深度学习模型,提供端到端的时间序列分类能力。下面的代码展示如何使用ResNet分类器,它采用残差连接架构,能够学习复杂的时间模式。
深度学习方法在大规模数据集上通常优于传统方法,但需要更长的训练时间。通过调整网络深度和训练轮数,可以在准确率和计算成本间找到平衡。
from aeon.classification.deep_learning import ResNetClassifier# 使用ResNet深度学习分类器resnet = ResNetClassifier(n_epochs=100, batch_size=16, verbose=False)resnet.fit(X_train, y_train)# 预测和评估y_pred = resnet.predict(X_test)accuracy = (y_pred == y_test).mean()print(f"ResNet准确率: {accuracy:.4f}")# 获取预测概率proba = resnet.predict_proba(X_test)print(f"预测概率形状: {proba.shape}")特征工程对时间序列建模至关重要。Aeon提供了多种特征提取变换器,可以将原始序列转换为特征向量。
下面的代码展示如何使用Catch22变换器提取22个统计特征,这些特征捕捉了序列的统计属性、自相关性等信息。
from aeon.transformations.collection.feature_based import Catch22# 特征提取变换器catch22 = Catch22()X_features = catch22.fit_transform(X_train)print(f"原始数据形状: {X_train.shape}")print(f"提取特征形状: {X_features.shape}")# 使用提取的特征训练传统分类器from sklearn.ensemble import RandomForestClassifierrf = RandomForestClassifier(n_estimators=100)rf.fit(X_features, y_train)# 对测试集提取特征并预测X_test_features = catch22.transform(X_test)rf_accuracy = rf.score(X_test_features, y_test)print(f"基于特征的分类准确率: {rf_accuracy:.4f}")集成多个模型通常能获得更好的性能和鲁棒性。下面的代码展示如何使用HIVE-COTE,它是时间序列分类领域的顶尖算法之一,集成了多种特征表示和分类器。虽然训练时间较长,但在准确率要求高的应用中,HIVE-COTE能够提供业界领先的性能。
from aeon.classification.hybrid import HIVECOTEV2# 使用HIVE-COTE集成分类器hivecote = HIVECOTEV2( time_limit_in_minutes=5, # 限制训练时间 n_jobs=1)hivecote.fit(X_train, y_train)# 预测和评估hive_accuracy = hivecote.score(X_test, y_test)print(f"HIVE-COTE准确率: {hive_accuracy:.4f}")# 查看集成中各组件的权重print("集成组件信息:")for name, weight in zip(hivecote.estimator_names_, hivecote.weights_): print(f"{name}: {weight:.4f}")Aeon是一个功能全面、性能优异的时间序列机器学习工具包,从传统统计方法到现代深度学习模型,提供了丰富的算法选择。其统一的scikit-learn风格API降低了学习门槛,让开发者能够快速上手。高性能的算法实现和优化使其适合处理大规模时间序列数据。从分类、回归到聚类,Aeon涵盖了时间序列分析的主要任务类型。内置的特征提取工具和集成学习方法,让模型性能优化变得简单。
如果在编程工具充值使用上遇到麻烦,推荐一个牛逼的中转工具!一次性搞定 Codex 、Claude Code和 gemini,内容介绍和付费兑换详见文末阅读原文。
📘 我们整理了一份《AI 编程出海蓝皮书》,汇集了过去几个月团队在出海实战中沉淀下来的核心经验。内容持续更新ing
从需求、工具、部署、收款,到 SEO、推广、引流,一步步带你搞懂普通人也能启动的出海路径。这份资料能帮你快速入门、少踩坑。
扫码或微信搜索 257735添加微信,回复【出海资料】即可免费领取。

网站SEO必备工具:Google Search Console 使用教程