Darts 时间序列预测指南

Darts 是一个让时间序列预测变得简单且灵活的 Python 库。通过统一的接口,它支持从 ARIMA 等基础模型到 LSTM 和 Transformers 等高级深度学习模型。我们可以使用 Darts 仅需几行代码就能预测销售额、股票价格、能源使用等情况。它还包括用于评估模型、处理多元时间序列以及添加附加特征以提高准确性的工具。

什么是 Darts?

  • Darts 是一个专为时间序列预测和分析设计的开源 Python 库。
  • 由 Unit8 开发,它提供了一个简单且一致的 API,允许用户应用广泛的预测模型,从 ARIMA 和指数平滑等经典方法到 LSTM、N-BEATS 和 Transformers 等高级深度学习模型。
  • Darts 支持单变量和多变量时间序列、概率预测、模型集成、回测甚至自定义模型集成。
  • 其直观的设计使其非常适合初学者和专家,旨在以最少的精力构建准确且可扩展的预测解决方案。

主要特性

  • 统一的多模型 API: Darts 提供了一致且简单的接口,可以互换使用机器学习和深度学习模型。
  • 支持单变量和多变量时间序列: 它处理单个和多个时间相关变量,允许通过附加输入进行更丰富的预测。
  • 概率预测: Darts 支持不仅生成点预测,还生成预测区间以捕获不确定性的模型。
  • 内置数据集和实用工具: 包括即用型数据集以及用于可视化、预处理和评估的实用函数。

实现步骤

步骤 1:安装 darts 库

使用 pip 安装 u8darts Python 库及其所有可选依赖项。–quiet 标志用于抑制输出。

Python


CODEBLOCK_b79d09ff

步骤 2:加载并准备时间序列数据

将压缩的 CSV 文件 train.csv.zip 读取到 pandas DataFrame 中,并将 date 列解析为 datetime。然后按日期对数据进行排序,以确保时间序列建模的时间顺序。

Python


CODEBLOCK_0b642854

输出:

!DartOutput

步骤 3:创建并绘制时间序列

筛选商店 1 和“GROCERY I”产品系列的 DataFrame,然后使用 date 和 sales 列从筛选后的数据创建 TimeSeries 对象。缺失的日期用频率 D(每天)填充,并绘制系列图。

Python


CODEBLOCK_fca573e2

输出:

!DartOutput

步骤 4:将数据拆分为训练集和验证集

使用 85% 的数据用于训练,其余 15% 用于验证,将时间序列拆分为训练集和验证集。

Python


CODEBLOCK_51e2ff88

步骤 5:使用指数平滑进行训练和预测

初始化一个指数平滑模型,在训练数据上拟合它,并预测与验证集长度相同的值。绘制实际和预测系列进行比较。

Python


CODEBLOCK_169e9f7b

输出:

!DartOutput

步骤 6:评估预测准确性

计算实际验证数据和预测值之间的 平均绝对误差 (MAE),然后打印四舍五入到小数点后两位的误差。

Python


CODEBLOCK_4b66798d

输出:

!DartOutput

应用场景

  • 需求预测: Darts 广泛应用于零售和供应链,用于预测商店或仓库层面的产品需求,帮助企业优化库存并减少积压或缺货。
  • 金融预测: 在银行和金融领域,Darts 可以预测股票价格、利率或收入。凭借深度学习的支持,它
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/38050.html
点赞
0.00 平均评分 (0% 分数) - 0