paddlets.models.dl.paddlepaddle.nbeats
基于论文:N-BEATS: Neural basis expansion analysis for interpretable time series forecasting 实现,<https://arxiv.org/pdf/1905.10437.pdf>
- 原模型特性
基础架构:多层堆栈,双向残差连接,并具有可解释性生成器的网络结构。
多层堆栈:多栈与多模块循环堆叠,各栈用来提取不同的可解释特性,比如趋势性与季节性。
双向残差串联结构:向后残差连接用来计算历史残差信号,并传递至下一层网络;向前差残连接累加计算得到最终模型预测。
- 升级模型特性
多目标变量:支持多目标建模。
协变量:支持可预知协变量特征与观测协变量特征。
- class NBEATSModel(in_chunk_len: int, out_chunk_len: int, generic_architecture: bool = False, num_stacks: int = 2, num_blocks: int = 3, num_layers: int = 4, layer_widths: ~typing.Union[int, ~typing.List[int]] = 128, expansion_coefficient_dim: int = 128, trend_polynomial_degree: int = 4, skip_chunk_len: int = 0, sampling_stride: int = 1, loss_fn: ~typing.Callable[[...], ~paddle.Tensor] = <function mse_loss>, optimizer_fn: ~typing.Callable[[...], ~paddle.optimizer.optimizer.Optimizer] = <class 'paddle.optimizer.adam.Adam'>, optimizer_params: ~typing.Dict[str, ~typing.Any] = {'learning_rate': 0.0001}, eval_metrics: ~typing.List[str] = [], callbacks: ~typing.List[~paddlets.models.dl.paddlepaddle.callbacks.callbacks.Callback] = [], batch_size: int = 256, max_epochs: int = 10, verbose: int = 1, patience: int = 4, seed: int = 0)[源代码]
基类:
PaddleBaseModelImplNBeats模型实现。
- 参数
in_chunk_len (int) – 模型输入的时间序列长度。
out_chunk_len (int) – 模型输出的序列长度。
generic_architecture (bool, Optional) – 布尔类型变量,指示是否使用普通网络结构,如不使用则使用可解释性网络结构。
num_stacks (int, Optional) – stack数量,当generic_architecture为True时生效。
num_blocks (int, Optional) – 构成每个stack的block数量。
num_layers (int, Optional) – 每个block中分叉结构前的全连接层数量,仅当generic_architecture为True时生效。
layer_widths (Union[int, List[int]], Optional) – 每个block中全连接层的神经元数量,如果传入list,则list长度必须等于num_stacks,且list中每个元素对应于当前层的神经元数量。如果传入整数,则每个stack中的block中具有相同的神经元数量。
expansion_coefficient_dim (int, Optional) – 波形生成器参数个数,仅当generic_architecture为True时生效。
trend_polynomial_degree (int, Optional) – 季节性波形生成器的多项式次数,仅当generic_architecture为False时生效。
skip_chunk_len (int, Optional) – 可选变量, 输入序列与输出序列之间跳过的序列长度,既不作为特征也不作为预测目标使用,默认值为0。
sampling_stride (int, optional) – 相邻两个样本的采样间隔。
loss_fn (Callable, Optional) – 损失函数。
optimizer_fn (Callable, Optional) – 优化器算法。
optimizer_params (Dict, Optional) – 优化器参数。
eval_metrics (List[str], Optional) – 模型评估指标。
callbacks (List[Callback], Optional) – 自定义的callback函数。
batch_size (int, Optional) – 每个batch中的样本数量。
max_epochs (int, Optional) – 训练过程中最大迭代轮数。
verbose (int, Optional) – 模型日志模式。
patience (int, Optional) – 训练过程中学习率降低所需的效果不再提升的轮数。
seed (int, Optional) – 全局随机种子。