news 2026/4/15 23:35:22

Python 第三方库:darts(现代化时间序列建模与预测框架)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python 第三方库:darts(现代化时间序列建模与预测框架)

darts 是一个专门用于时间序列分析、建模与预测的 Python 库,提供统一而高层的 API,集成了统计模型(如 ARIMA)、机器学习模型(如 LightGBM)、深度学习模型(如 RNN、Transformer、N-BEATS、TCN 等)以及时间序列特有的处理工具(如窗口生成、协变量管理、回测、误差评估等)。

darts 的设计目标是让时间序列预测像使用 scikit-learn 一样简单,同时让深度学习模型的构建更加易用。

安装:

pip install darts

如需使用深度学习模型:

pip install darts[u]

常见应用场景:

(1)时间序列预测(Forecasting)

使用 ARIMA、RNN、Transformer、N-BEATS 等模型进行未来值预测。

(2)多元时间序列建模

支持多变量输入、协变量(covariates)、滞后特征等复杂数据结构。

(3)回测与模型评估

内置回测、滚动预测、交叉验证与误差指标。

(4)异常检测

支持时间序列的异常值检测及预测残差分析。

(5)时间序列处理

提供插值、缩放、缺失值填补、时间对齐等操作。

(6)深度学习时间序列模型

内置 PyTorch 实现的专业算法,如:

• RNNModel

• TCNModel

• NBEATSModel

• TransformerModel

• TFTModel(Temporal Fusion Transformer)

拥有高性能与易用性的平衡。

◆ ◆

核心概念

1、TimeSeries 对象(核心数据结构)

darts 所有模型的输入与输出均为 TimeSeries 类型。

它包含:

• 时间索引(DatetimeIndex 或 RangeIndex)

• 数据列(可以是一列或多列)

• 可选的附加维度(例如多个样本)

创建方式示例:

from darts import TimeSeriesimport pandas as pd df = pd.read_csv("data.csv")series = TimeSeries.from_dataframe(df, "date", "value")

2、预测模型(Models)

darts 的模型分为:

• 统计模型(ARIMA、Exponential Smoothing、Theta 等)

• 机器学习模型(RegressionModel)

• 深度学习模型(NBEATS、RNN、TFT 等)

• EnsembleModel(用于模型集成)

每一个模型都提供统一的 API:

model = SomeModel(...)model.fit(series)forecast = model.predict(n)

3、协变量(Covariates)

时间序列预测常需要外生变量,如:

• 天气

• 节假日

• 商品价格

• 滞后窗口

darts 支持三类协变量:

• past_covariates:过去已知的数据

• future_covariates:未来已知的数据(如节日表)

• static_covariates:不会随时间变化的特征

4、回测(Backtesting)

darts 内置回测工具,通过滑动窗口自动评估模型表现:

from darts.metrics import mape model.backtest( series, forecast_horizon=12, metric=mape)

5、误差指标(Metrics)

支持:

• MAE

• RMSE

• MAPE

• SMAPE

• DTW 距离

• R2 score

用于评估预测效果。

◆ ◆

应用举例

例 1:加载数据并创建 TimeSeries

from darts import TimeSeriesimport pandas as pd df = pd.read_csv("sales.csv")series = TimeSeries.from_dataframe(df, "date", "sales")

例 2:使用 ARIMA 进行预测

from darts.models import ARIMA model = ARIMA()model.fit(series)forecast = model.predict(12)forecast.plot(label="forecast")

例 3:使用深度学习模型(N-BEATS)

from darts.models import NBEATSModel model = NBEATSModel( input_chunk_length=24, output_chunk_length=12, n_epochs=50,) model.fit(series)prediction = model.predict(12)

例 4:使用协变量进行多元预测(RNN)

from darts.models import RNNModel model = RNNModel( model="LSTM", input_chunk_length=30, output_chunk_length=7) model.fit(series, future_covariates=weather_series)forecast = model.predict(7, future_covariates=weather_series)

例 5:回测评估模型

from darts.metrics import smape error = model.backtest( series, forecast_horizon=12, metric=smape,)print("SMAPE:", error)

◆ ◆

常用函数与类速览

TimeSeries.from_dataframe(df, time_col, value_cols)

从 DataFrame 创建时间序列对象。

参数:

df:pandas DataFrame。

time_col:时间列名。

value_cols:数值列名或列表。

返回:TimeSeries 实例。

model.fit(series, **covariates)

训练模型。

参数:

series:目标时间序列。

past_covariates:可选,历史协变量。

future_covariates:可选,未来协变量。

返回:无。

model.predict(n, **covariates)

预测未来 n 步。

参数:

n:预测步数。

future_covariates:未来外生变量。

返回:TimeSeries 类型的预测结果。

model.backtest(series, forecast_horizon, metric)

对时间序列执行滑动窗口回测。

参数:

series:目标时间序列。

forecast_horizon:一次预测步数。

metric:误差函数。

返回:float(误差值)。

TimeSeries.plot()

快速绘制时间序列。

参数: 无。

返回: 无(生成图形)。

📘 小结

darts 是一套现代化的时间序列分析框架,具有以下优势:

• 统一的 API,几十种模型可无缝切换

• 内置深度学习模型,支持 PyTorch 训练

• 支持协变量、窗口生成、多元时间序列

• 强大的回测工具与评估指标

• TimeSeries 统一数据结构,简化时间序列处理

• 可从快速原型扩展到企业级模型

无论你是做金融预测、供应链预测,还是做科学研究或智能调度,darts 都提供稳定、灵活而完整的工具链。

“点赞有美意,赞赏是鼓励”

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 10:13:04

快速理解开关式LED驱动电路恒流原理

深入浅出:开关式LED驱动如何实现精准恒流?你有没有想过,为什么一串LED灯在电压波动时依然亮度稳定?为什么车灯从启动到高速行驶,始终如一地亮着而不闪烁?背后的关键,并不只是“电源供电”&#…

作者头像 李华
网站建设 2026/4/16 11:03:42

教育培训认证体系:培养专业部署技术人员

教育培训认证体系:培养专业部署技术人员 在人工智能技术加速渗透各行各业的今天,大语言模型(LLM)已不再是实验室里的“黑科技”,而是逐渐成为企业知识管理、智能客服和教育实训的核心基础设施。然而,真正的…

作者头像 李华
网站建设 2026/4/10 23:12:30

从零搭建个人AI助手——基于Anything-LLM镜像的完整指南

从零搭建个人AI助手——基于Anything-LLM镜像的完整指南 在大模型席卷全球的今天,我们早已习惯向 ChatGPT 提问、让它写邮件、做总结、甚至生成代码。但你有没有遇到过这样的尴尬:它对你说“我无法访问你的本地文件”?那些你辛辛苦苦整理的项…

作者头像 李华
网站建设 2026/4/14 10:09:06

投资回报率测算:部署anything-llm能省多少钱?

投资回报率测算:部署 Anything-LLM 能省多少钱? 在一家中型企业的法务部门,一位新入职的合同专员花了整整两天时间翻找历史文档,只为确认一个关于“知识产权归属”的标准条款。而在隔壁的研发团队,工程师们每周平均花费…

作者头像 李华
网站建设 2026/4/15 16:19:12

Vitis助力智能制造升级:核心要点解析

Vitis如何让FPGA“听懂”C?揭秘智能制造中的软硬协同革命你有没有遇到过这样的场景:产线上的相机拍得飞快,但图像处理却卡成PPT?AI模型精度很高,部署到现场却跑不动?传统工业控制器想加点智能功能&#xff…

作者头像 李华
网站建设 2026/4/13 11:00:59

前后端分离Sringboot+个人驾校预约管理系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程

摘要 随着信息技术的快速发展,传统驾校管理模式逐渐暴露出效率低下、信息孤岛等问题。学员预约、教练调度、课程安排等流程依赖人工操作,不仅耗时耗力,还容易出现错漏。为解决这一问题,基于前后端分离架构的个人驾校预约管理系统应…

作者头像 李华