项目介绍:Darts 时间序列分析库
简介
Darts 是一个用于时间序列预测和异常检测的 Python 库,提供了一系列从传统到深度神经网络的多样模型。用户能够通过类似于 scikit-learn 的 fit()
和 predict()
函数来随意地使用各种预测模型。此外,Darts 还支持模型的回测、多个模型预测结果的组合和外部数据的整合。它既支持单变量也支持多变量时间序列,而基于机器学习的模型可以在包含多个时间序列的大型数据集上进行训练,部分模型支持概率预测。
主要功能
预测模型
Darts 提供大量的预测模型,包括传统的统计模型(如 ARIMA)和现代机器学习模型(如 N-BEATS 和 Transformer),这些模型适用于不同的时间序列类型和需求。
异常检测
Darts 内置了丰富的异常检测工具,可以轻松应用 PyOD 模型来获取异常分数,或将任何 Darts 的预测或过滤模型包装成功能完备的异常检测模型。
多变量支持
Darts 支持多变量 TimeSeries
,即可以包含多个时间变化的维度/列,而不仅仅是单一标量值。
多序列训练
所有基于机器学习的模型支持在多个(潜在多变量的)时间序列上进行训练,即便是大型数据集也适用。
概率支持
TimeSeries
对象可以(可选)表示随机时间序列,并且许多模型支持不同类型的概率预测(如估计参数分布或分位数)。
外部协变量支持
许多 Darts 模型支持将过去观测到的和/或未来已知的协变量(外部数据)作为生成预测的输入。
数据处理与过滤
Darts 提供工具以轻松对时间序列数据进行常见转换(如缩放、填充缺失值、差分、Box-Cox变换),同时也包含一些过滤模型如卡尔曼滤波器,允许对时间序列进行过滤并在某些情况下获得概率推断。
快速安装
建议首先使用 conda、venv 或 virtualenv 工具设置一个干净的 Python 环境(版本 3.9 及以上)。然后可以通过以下命令安装 Darts:
pip install darts
更多安装细节可以参考 安装说明。
使用示例
预测
用户可以创建一个从 pandas DataFrame 转换而来的 TimeSeries
对象,并将其拆分为训练集和验证集进行模型训练和预测。
异常检测
Darts 提供多种异常检测方法,用户可以方便地进行异常评分,并通过二元分类模型进行异常检测。
开放社区与支持
Darts 欢迎任何人加入 Gitter 讨论组 进行问题交流、方案讨论或提交使用案例,如果发现漏洞或有建议,您也可以通过 GitHub Issue 进行反馈。
参与方式
Darts 项目持续开发中,我们欢迎各类建议、Pull Request 和 Issues,详细信息可以参考 贡献指南。
科学引用
如果您在科研工作中使用 Darts,我们将非常感激您对相关论文的引用:
Darts: User-Friendly Modern Machine Learning for Time Series
以上是 Darts 的概述,提供了一个高效且灵活的平台来处理复杂的时间序列数据,非常适合对预测和异常检测有需求的用户。