tsai: 为时间序列和序列数据打造的先进深度学习库
t sai是一个基于PyTorch和fastai构建的开源深度学习库,专注于为时间序列和序列数据提供最先进的技术解决方案。作为一个功能强大且灵活的工具包,tsai为研究人员和实践者提供了丰富的模型选择和便捷的使用体验,可以应用于分类、回归、预测、插值等多种时间序列任务。
主要特性
t sai具有以下几个突出的特点:
-
丰富的模型库: tsai提供了大量最先进的时间序列模型,包括LSTM、GRU、FCN、ResNet、InceptionTime、Rocket等经典模型,以及最新的PatchTST、TSPerceiver等创新模型。这些模型涵盖了RNN、CNN、Transformer等不同架构,为用户提供了广泛的选择。
-
多样化的任务支持: tsai不仅支持分类和回归任务,还可以处理预测、插值等复杂的时间序列问题。无论是单变量还是多变量,单步还是多步预测,tsai都能够轻松应对。
-
便捷的数据处理: tsai提供了完整的数据处理流程,包括数据加载、预处理、增强等功能。用户可以轻松地准备和转换时间序列数据,为模型训练做好准备。
-
灵活的训练接口: 基于fastai的训练接口,tsai提供了简洁而强大的模型训练和评估功能。用户可以轻松地实现模型拟合、交叉验证、超参数调优等操作。
-
丰富的教程资源: tsai提供了大量的教程笔记本,涵盖了从入门到高级应用的各个方面,帮助用户快速上手并掌握库的各项功能。
安装与使用
t sai可以通过pip或conda轻松安装:
pip install tsai
或
conda install -c timeseriesai tsai
安装完成后,只需简单几行代码即可开始使用tsai:
from tsai.basics import *
# 加载数据
X, y, splits = get_classification_data('ECG200', split_data=False)
# 定义模型和训练器
model = TSClassifier(X, y, splits=splits, arch="InceptionTimePlus")
# 训练模型
model.fit_one_cycle(100, 3e-4)
# 导出模型
model.export("model.pkl")
应用示例
t sai可以应用于多种时间序列任务,以下是几个典型的应用示例:
二分类任务
对于二分类问题,tsai提供了简洁的接口:
from tsai.basics import *
X, y, splits = get_classification_data('ECG200', split_data=False)
tfms = [None, TSClassification()]
batch_tfms = TSStandardize()
clf = TSClassifier(X, y, splits=splits, path='models', arch="InceptionTimePlus",
tfms=tfms, batch_tfms=batch_tfms, metrics=accuracy, cbs=ShowGraph())
clf.fit_one_cycle(100, 3e-4)
clf.export("clf.pkl")
多变量回归任务
tsai同样支持多变量回归:
from tsai.basics import *
X, y, splits = get_regression_data('AppliancesEnergy', split_data=False)
tfms = [None, TSRegression()]
batch_tfms = TSStandardize(by_sample=True)
reg = TSRegressor(X, y, splits=splits, path='models', arch="TSTPlus",
tfms=tfms, batch_tfms=batch_tfms, metrics=rmse, cbs=ShowGraph(), verbose=True)
reg.fit_one_cycle(100, 3e-4)
reg.export("reg.pkl")
时间序列预测
t sai还可以用于单步或多步时间序列预测:
from tsai.basics import *
ts = get_forecasting_time_series("Sunspots").values
X, y = SlidingWindow(60, horizon=3)(ts)
splits = TimeSplitter(235, fcst_horizon=3)(y)
tfms = [None, TSForecasting()]
batch_tfms = TSStandardize()
fcst = TSForecaster(X, y, splits=splits, path='models', tfms=tfms, batch_tfms=batch_tfms,
bs=512, arch="TSTPlus", metrics=mae, cbs=ShowGraph())
fcst.fit_one_cycle(50, 1e-3)
fcst.export("fcst.pkl")
模型库
t sai提供了丰富的模型选择,包括但不限于:
- LSTM和GRU: 经典的循环神经网络模型
- FCN和ResNet: 用于时间序列的卷积神经网络
- InceptionTime: 基于Inception架构的时间序列模型
- Rocket和MiniRocket: 高效的时间序列分类器
- TST: 时间序列Transformer
- PatchTST: 基于补丁的时间序列Transformer
- XCM: 可解释的卷积神经网络模型
这些模型涵盖了从传统到最新的各种架构,为不同的应用场景提供了丰富的选择。
社区与支持
t sai是一个活跃的开源项目,欢迎社区贡献。如果您在使用过程中遇到问题,可以通过以下方式获取帮助:
对于企业用户,tsai还提供专业的支持和咨询服务,可以通过邮件 info@timeseriesai.co 联系。
结语
t sai作为一个功能强大、易于使用的时间序列深度学习库,为研究人员和实践者提供了丰富的工具和资源。无论是进行学术研究还是解决实际问题,tsai都是一个值得尝试的优秀选择。随着时间序列分析在各个领域的广泛应用,tsai将继续发展和完善,为用户提供更多创新和实用的功能.