huggingface实现Autoformer时间序列深度分解与自相关预测模型

目录

引言

AutoformerConfig

参数详解

示例代码

AutoformerModel

参数

forward 方法参数

返回值

主要返回元素

示例代码

AutoformerForPrediction

参数

forward 方法参数

返回值

使用示例


引言

Autoformer是一种用于长期时间序列预测的模型,由Haixu Wu, Jiehui Xu, Jianmin Wang, Mingsheng Long提出。这种模型增强了传统的Transformer架构,使其成为一个深度分解架构,可以在预测过程中逐步分解趋势和季节性组件。

在实际应用中,如极端天气早期预警和长期能源消费规划,扩展预测时间是一个关键需求。此论文研究了时间序列的长期预测问题。以前基于Transformer的模型采用各种自注意力机制来发现长期依赖关系。然而,长期未来的复杂时间模式阻碍了模型发现可靠的依赖关系。此外,Transformer必须采用稀疏版本的点对点自注意力来提高长序列的效率,这导致了信息利用瓶颈。Autoformer通过一种新颖的分解架构和自相关机制突破了传统Transformer的限制。该设计将系列分解从预处理常规转变为深度模型的基本内部模块,使Autoformer具备了处理复杂时间序列的渐进式分解能力。进一步地,受随机过程理论的启发,我们基于序列周期性设计了自相关机制,这一机制在子序列级别进行依赖性发现和表示聚合。自相关机制在效率和准确性上都优于自注意力。在长期预测中,Autoformer实现了最先进的准确性,在六个基准测试中取得了38%的相对改进,涵盖了五个实际应用领域:能源、交通、经济、天气和疾病。

这个模型由elisim和kashif贡献,原始代码可以在GitHub上找到。

AutoformerConfig

AutoformerConfig 是用于存储 AutoformerModel 配置的类,它根据指定的参数实例化一个Autoformer模型,定义了模型的架构。使用默认配置实例化将产生一个与Autoformer huggingface/autoformer-tourism-monthly架构相似的配置。

参数详解

  • prediction_length (int) — 解码器的预测长度,即模型的预测范围。
  • context_length (int, 可选) — 编码器的上下文长度。如果未设置,则上下文长度将与prediction_length相同。
  • distribution_output (string, 可选, 默认为 "student_t") — 模型的分布发射头。可以是"student_t"、"normal"或"negative_binomial"。
  • loss (string, 可选, 默认为 "nll") — 对应于distribution_output头的模型损失函数。目前只支持负对数似然(nll)。
  • input_size (int, 可选, 默认为 1) — 目标变量的大小,默认为1,对于单变量目标。对于多变量目标,这个值大于1。
  • lags_sequence (list[int], 可选, 默认为 [1, 2, 3, 4, 5, 6, 7]) — 输入时间序列的滞后作为协变量,通常由频率决定。
  • scaling (bool, 可选, 默认为 True) — 是否对输入目标进行缩放。
  • num_time_features (int, 可选, 默认为 0) — 输入时间序列中的时间特征数量。
  • num_dynamic_real_features (int, 可选, 默认为 0) — 动态实值特征的数量。
  • num_static_categorical_features (int, 可选, 默认为 0) — 静态分类特征的数量。
  • num_static_real_features (int, 可选, 默认为 0) — 静态实值特征的数量。
  • cardinality (list[int], 可选) — 每个静态分类特征的基数(不同值的数量)。如果num_static_categorical_features> 0,则此项不能为None。
  • embedding_dimension (list[int], 可选) — 每个静态分类特征的嵌入维度。
  • d_model (int, 可选, 默认为 64) — Transformer层的维度。
  • encoder_layers (int, 可选, 默认为 2) — 编码器层数。
  • decoder_layers (int, 可选, 默认为 2) — 解码器层数。
  • encoder_attention_heads (int, 可选, 默认为 2) — Trans
  • 23
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

E寻数据

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值