现有的时间序列预测方法大致可以分为两类。第一类是经典的时间序列模型,如Box等人(2015年)、Ray(1990年)、Seeger等人(2017年)和Seeger、Salinas和Flunkert(2016年)所描述的模型,它们为时间序列预测提供了可靠的基础。第二类是基于深度学习技术的方法,主要采用RNN及其变体来开发编码器-解码器预测范式(Hochreiter和Schmidhuber,1997年;Li等人,2018年;Yu等人,2017年)。
PaddleTS简介
PaddleTS是基于飞桨深度学习框架PaddlePaddle开发的时序模型库。它提供了丰富的时序分析模型,包括预测、表征、异常检测和分类模型,适用于多种时序数据的分析和应用。
1. paddlets.models.forecasting
- 时序预测模型模块
功能
-
提供多种用于时序预测的模型。
-
支持单变量和多变量时序预测。
-
常用模型包括
DeepAR
Informer
LSTNet(Long Short-term Time-series Network)
MLP(Multilayer Perceptron)
NBEATS
NHiTS
RNN
SCINet(Sample Convolution Interaction Network)
TCN(Temporal Convolution Net)
TFT(Temporal Fusion Transformer)
Transformer 等。
当然,请参考以下各个时序模型的论文链接:
1. DeepAR (Deep Autoregressive Networks)
- 论文链接 : DeepAR: Probabilistic Forecasting with Autoregressive Recurrent Networks 当涉及到时间序列预测时,DeepAR的目标是对未来的时间序列值进行预测,这是建立在其过去观测数据和已知的协变量基础上的。在这个过程中,DeepAR使用了一种称为自回归递归神经网络的模型架构来实现预测。这个模型被设计成能够从过去的数据中学习,并利用这些学习来预测未来的数据。
具体地说,DeepAR的模型将整个时间序列分为两个部分:条件范围和预测范围。在训练过程中,这两个范围都位于过去,以确保所有时间点的观测值都是已知的。但是在预测时,只有条件范围内的数据是已知的,而预测范围内的数据需要通过模型来预测。
DeepAR使用的模型是基于自回归原理的,意味着每个时间步的预测依赖于前一个时间步的预测值,并且是递归的,即网络在每个时间步使用前一步的输出作为下一步的输入。这种模型结构利用了长短期记忆(LSTM)单元,这些单元有助于捕捉长期的依赖关系,从而提高了模型的预测性能。
关于预测的具体操作,DeepAR使用了一种称为祖先采样的技术来获得模型的样本。这意味着DeepAR首先通过计算模型的初始状态来获得第一个时间步的预测值,然后逐步生成未来时间步的预测值。这些样本可以用来计算未来时间范围内各种感兴趣的量,比如分析其分布的分位数等。
2. Informer
Informer模型采用了编码器-解码器架构,并针对长序列时间序列预测问题进行了优化。为了提高预测能力,Informer模型引入了高效的注意力机制。
标准的注意力机制(Vaswani等人,2017年)基于三元组输入(查询、键和值)进行定义,执行缩放点积运算:[ A(Q,K,V) = \text{Softmax}(\frac{QK^T}{\sqrt{d_k}}) V ] 其中,Q、K和V分别是维度为 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( L Q × d k ) ( L_Q \times d_k ) </math>(LQ×dk)、 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( L K × d k ) ( L_K \times d_k ) </math>(LK×dk)和 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( L V × d v ) ( L_V \times d_v ) </math>(LV×dv) 的矩阵, <math xmlns="http://www.w3.org/1998/Math/MathML"> ( d k ) ( d_k ) </math>(dk) 是输入维度。为进一步讨论注意力机制,Informer设 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( q i ) ( q_i ) </math>(qi)、 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( k i ) ( k_i ) </math>(ki) 和 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( v i ) ( v_i ) </math>(vi) 分别为 Q、K 和 V 的第 i 行。
Informer发现,标准的注意力机制在提高预测能力时存在一些缺点。例如,它需要进行 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( O ( L Q L K ) ) ( O(L_Q L_K) ) </math>(O(LQLK)) 的点积运算和 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( O ( L K L Q ) ) ( O(L_K L_Q) ) </math>(O(LKLQ)) 的内存使用,这在处理长序列时效率较低。此外,Informer还发现,注意力概率分布存在潜在的稀疏性。
为了克服这些缺点,Informer提出了一个称为ProbSparse的注意力机制。在这个机制中,每个键只关注前 u 个最不重要的查询。通过这种方式,Informer只需要为每个查询-键对计算 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( O ( ln L Q ) ) ( O(\ln L_Q) ) </math>(O(lnLQ)) 的点积,并且每层的内存使用保持为 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( O ( L K ln L Q ) ) ( O(L_K \ln L_Q) ) </math>(O(LKlnLQ))。
为了高效地获取查询稀疏度测量,Informer提出了一种经验近似方法。在长尾分布下,Informer只需随机采样 U = L_K \ln L_Q 个点积对来计算 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( M ( q i , K ) ) ( M(q_i, K) ) </math>(M(qi,K)),即填充其他对为零。然后,Informer从中选择稀疏的 Top-u。在实践中,查询和键的输入长度通常在自注意力计算中相等,即 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( L Q = L K = L ) ( L_Q = L_K = L ) </math>(LQ=LK=L),因此ProbSparse自注意力的总时间复杂度和空间复杂度为 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( O ( L ln L ) ) ( O(L \ln L) ) </math>(O(LlnL))。
编码器被设计用于提取长序列输入的稳健长程依赖关系。在输入表示之后,第 t 个序列输入 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( X t ) ( X_t ) </math>(Xt) 被转换成一个矩阵 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( X t e n ∈ R L x × d model ) ( X_{t_{en}} \in \mathbb{R}^{L_x \times d_{\text{model}}} ) </math>(Xten∈RLx×dmodel)。为了清晰起见,Informer在图3中给出了编码器的草图。
自注意力蒸馏作为ProbSparse自注意力机制的自然结果,编码器的特征图存在冗余的值V组合。Informer使用蒸馏操作来优先考虑具有主导特征的更优组合,并在下一层中生成一个聚焦的自注意力特征图。它通过设置Attention块中的 n-heads 权重矩阵(重叠的红色正方形)来急剧减少输入的时间维度。受到膨胀卷积(Yu、Koltun和Funkhouser,2017年;Gupta和Rush,2017年)的启发,Informer的"蒸馏"过程从第 j 层传递到第 (j+1) 层。
解码器通过一次前向过程生成长序列输出。Informer使用了标准的解码器结构(Vaswani等人,2017年),它由两个相同的multi-head注意力层的堆栈组成。生成性推理被用来减轻长预测中的速度下降。Informer通过以下向量作为解码器的输入:
[ X_{t_{token}} \in \mathbb{R}^{L_{\text{token}} \times d_{\text{model}}} ] 是起始标记,[ X_{t_0} \in \mathbb{R}^{L_y \times d_{\text{model}}} ) <math xmlns="http://www.w3.org/1998/Math/MathML"> 是目标序列的占位符(设置为 0 )。在 P r o b S p a r s e 自注意力计算中应用了遮蔽 m u l t i − h e a d 注意力,通过将遮蔽点积设置为 0 来防止每个位置关注后续位置,从而避免了自回归。一个全连接层获得最终输出,其输出大小 是目标序列的占位符(设置为0)。在ProbSparse自注意力计算中应用了遮蔽multi-head注意力,通过将遮蔽点积设置为0来防止每个位置关注后续位置,从而避免了自回归。一个全连接层获得最终输出,其输出大小 </math>是目标序列的占位符(设置为0)。在ProbSparse自注意力计算中应用了遮蔽multi−head注意力,通过将遮蔽点积设置为0来防止每个位置关注后续位置,从而避免了自回归。一个全连接层获得最终输出,其输出大小( d_y )$ 取决于Informer是否执行单变量预测或多变量预测。
生成性推理在NLP的"动态解码"(Devlin等人,2018年)中高效应用,Informer将其扩展为生成方式。Informer不选择特定的标志作为标记,而是从输入序列中采样一个长为 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( L token ) ( L_{\text{token}} ) </math>(Ltoken) 的序列,例如在预测168个点(实验部分中的7天温度预测)时,Informer会将目标序列之前的5天作为"起始标记",并使用 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( X de = X 5 d X 0 ) ( X_{\text{de}} = X_{5d} X_0 ) </math>(Xde=X5dX0) 作为生成风格推理解码器的输入。 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( X 0 ) ( X_0 ) </math>(X0) 包含目标序列的时间戳,即目标周期的上下文。然后,Informer的解码器通过一次前向过程而不是传统编码器-解码器架构中的耗时的"动态解码"来预测输出。
为了增强蒸馏操作的稳健性,Informer构建了主堆栈的副本,并逐渐减少自注意力蒸馏层的数量,每次减少一层,如图2中的金字塔所示,从而使它们的输出维度对齐。因此,Informer连接所有堆栈的输出,并得到编码器的最终隐藏表示。
Informer选择在预测目标序列时使用均方误差(MSE)损失函数,并将损失从解码器的输出传播回整个模型。
3. LSTNet (Long Short-term Time-series Network)
- 论文链接 : LSTNet: Learning Long-Short Term Relationships for Time Series Forecasting
- 时间 2018年 这篇论文专注于多元时间序列预测,使用了一种名为LSTNet的深度学习框架,旨在同时捕捉长期和短期模式。让我们逐节来理解一下:
3.1 问题阐述
论文的目标是进行多元时间序列的预测。具体而言,给定一个完全观察到的时间序列信号集合 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( Y = { y 1 , y 2 , ... , y T } ) ( Y = \{y_1, y_2, \ldots, y_T\} ) </math>(Y={y1,y2,...,yT}),其中 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( y t ∈ R n ) ( y_t \in \mathbb{R}^n ) </math>(yt∈Rn), <math xmlns="http://www.w3.org/1998/Math/MathML"> ( n ) ( n ) </math>(n) 是每个信号的维度,任务是以滚动预测的方式预测未来的信号。例如,要预测 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( y T + h ) ( y_{T+h} ) </math>(yT+h)(其中 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( h ) ( h ) </math>(h) 是预测的时间跨度),模型使用的数据是直到时间 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( T ) ( T ) </math>(T),即 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( { y 1 , y 2 , ... , y T } ) ( \{y_1, y_2, \ldots, y_T\} ) </math>({y1,y2,...,yT})。类似地,要预测 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( y T + h + 1 ) ( y_{T+h+1} ) </math>(yT+h+1),则使用的数据是直到 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( T + 1 ) ( T+1 ) </math>(T+1),即 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( { y 1 , y 2 , ... , y T + 1 } ) ( \{y_1, y_2, \ldots, y_{T+1}\} ) </math>({y1,y2,...,yT+1})。
3.2 卷积组件
LSTNet的第一层是一个无池化的卷积网络。其目的是在时间维度上提取短期模式和变量之间的局部依赖关系。具体工作如下:
- 卷积层包含多个宽度为 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( ω ) ( \omega ) </math>(ω),高度为 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( n ) ( n ) </math>(n) 的滤波器(高度设置为变量数目)。
- 每个滤波器 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( W k ) ( W_k ) </math>(Wk) 扫过输入矩阵 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( X ) ( X ) </math>(X),并产生输出 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( h k = RELU ( W k ∗ X + b k ) ) ( h_k = \text{RELU}(W_k * X + b_k) ) </math>(hk=RELU(Wk∗X+bk)),这里 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( ∗ ) ( * ) </math>(∗) 表示卷积操作, <math xmlns="http://www.w3.org/1998/Math/MathML"> ( RELU ( x ) = max ( 0 , x ) ) ( \text{RELU}(x) = \max(0, x) ) </math>(RELU(x)=max(0,x)) 是激活函数。
- 通过在输入矩阵 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( X ) ( X ) </math>(X) 的左侧进行零填充,使得每个 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( h k ) ( h_k ) </math>(hk) 都是长度为 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( T ) ( T ) </math>(T) 的向量。
- 卷积层的输出矩阵大小为 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( d c × T ) ( d_c \times T ) </math>(dc×T),其中 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( d c ) ( d_c ) </math>(dc) 是滤波器的数量。
3.3 循环组件
卷积层的输出同时被馈送到循环组件和循环跳跃组件(在第 3.4 小节中描述)。循环组件采用门控循环单元(GRU)[6]作为循环层,并使用 RELU 函数作为隐藏状态的更新激活函数。时间 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( t ) ( t ) </math>(t) 时刻的循环单元的隐藏状态计算如下:
- 重置门 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( r t = σ ( x t W x r + h t − 1 W h r + b r ) ) ( r_t = \sigma(x_t W_{xr} + h_{t-1} W_{hr} + b_r) ) </math>(rt=σ(xtWxr+ht−1Whr+br))
- 更新门 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( u t = σ ( x t W x u + h t − 1 W h u + b u ) ) ( u_t = \sigma(x_t W_{xu} + h_{t-1} W_{hu} + b_u) ) </math>(ut=σ(xtWxu+ht−1Whu+bu))
- 计算单元 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( c t = RELU ( x t W x c + r t ⊙ ( h t − 1 W h c ) + b c ) ) ( c_t = \text{RELU}(x_t W_{xc} + r_t \odot (h_{t-1} W_{hc}) + b_c) ) </math>(ct=RELU(xtWxc+rt⊙(ht−1Whc)+bc))
- 最终隐藏状态 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( h t = ( 1 − u t ) ⊙ h t − 1 + u t ⊙ c t ) ( h_t = (1 - u_t) \odot h_{t-1} + u_t \odot c_t ) </math>(ht=(1−ut)⊙ht−1+ut⊙ct)
这些组件共同构成了LSTNet模型的核心部分,用于处理多元时间序列数据,并能有效地捕捉数据中的长期和短期模式。
4. MLP (Multilayer Perceptron)
- 论文链接: 通常,MLP作为基本的神经网络结构,并没有单独的特定论文,但相关应用和原理可以在深度学习教科书或基础论文中找到。
5. NBEATS (Neural Basis Expansion Analysis)
- 论文链接 : N-BEATS: Neural Basis Expansion Analysis for Time Series Forecasting N-BEATS(神经网络的B-样条分解)模型是一种用于时间序列预测的深度学习架构。它的设计遵循以下几个关键原则:
- 基础架构的简单性与深度性:基础架构应该简单而通用,同时能够表达复杂的关系。
- 不依赖于时间序列特定的特征工程或输入缩放:这允许探索纯深度学习架构在时间序列预测中的潜力。
- 可扩展性:为了探索可解释性,架构应可扩展以使其输出对人类可解释。 N-BEATS模型的基本构建块具有分叉架构,如图1(左)所示。每个块接受其相应的输入x并输出两个向量x和y。对于模型中的第一个块,其相应的x是整体模型的输入------一个历史回看窗口,长度为特定长度,以最后一个测量观测值为结束。我们设置回看窗口的长度为2H到7H的预测范围H的倍数。对于其余的块,它们的输入x是前一个块的残差输出。每个块有两个输出:y,块的前向预测长度H;和x,块的最佳估计x,也称为'backcast',给定块可以用来近似信号的函数空间约束。 内部,基本构建块包含两个部分。第一部分是一个全连接网络,用于预测扩展系数的向前和向后预测器。第二部分包含向后和向前基层,它们接受相应的向前和向后扩展系数,并在基函数集合上投影它们,产生向后cast x和向前预测输出y。 N-BEATS模型的核心创新之一是双层残差堆叠原理。它有两个残差分支:一个沿着每个层的backcast预测,另一个沿着每个层的forecast分支。这种结构使得网络在梯度传播上更加透明,并允许通过有意义的部分预测的聚合来实现可解释性。 为了提高模型的可解释性,提出了两种配置:一种是不依赖于时间序列特定知识的通用深度学习架构,另一种是增加某些归纳偏置以使其可解释。在可解释的架构中,通过在堆叠级别为基层添加结构来设计趋势和季节性分解,使得堆叠输出更容易解释。例如,趋势模型可以通过限制gbs和gf为小度数p的多项式来实现单调或缓慢变化的函数,而季节性模型则通过限制gbs和gf为周期性函数来实现周期性的季节性波动。 N-BEATS模型的整体可解释架构包含两个堆叠:趋势堆叠后是季节性堆叠。通过双层残差堆叠和forecast/backcast原理,趋势组件在输入窗口x被喂入季节性堆叠之前被移除,部分预测的趋势和季节性作为可解释的独立输出。每个堆叠由几个连接的块组成,并且每个堆叠共享其相应的非可学习的gb和gf。我们发现,除了共享gb和gf之外,在堆叠内共享所有块的权重可以获得更好的验证性能。 N-BEATS模型提供了两种架构配置,一种是不依赖于时间序列特定知识的通用深度学习架构,另一种是增加某些归纳偏置以使其可解释。在通用架构中,gb和gf被设置为前一层输出的线性投影。这种配置的输出可以表示为:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> y = V f f + b f y = V_f f + b_f </math>y=Vff+bf
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> x = V b b + b b x = V_b b + b_b </math>x=Vbb+bb
其中,Vf和Vb是预测和回溯的基向量,f和b是相应的扩展系数。在这种配置中,基本构建块中的全连接层(FC层)学习部分预测y的预测分解,该分解是基于网络学习到的基Vf。矩阵Vf的维度是H dim(f),其中H是预测步长,dim(f)是f的维度。因此,Vf的第一维度在预测域中表示离散时间索引,第二维度表示基函数的索引。Vf的列可以被视为时间域中的波形。由于没有对Vf的形式施加额外的约束,深度模型学习到的波形没有内在的结构(在我们的实验中没有表现出任何结构)。这导致y不可解释。 为了使模型可解释,我们建议在堆叠级别为基层添加结构,以设计趋势和季节性分解。例如,季节性模型可以通过限制gb和gf为周期性函数来实现,例如使用傅立叶级数作为基函数。这种配置的输出可以表示为:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> y s e a s = S f y_{seas} = S f </math>yseas=Sf
其中,S是基矩阵,包含周期性函数的基,f是预测的傅立叶系数。 整体可解释架构包含两个堆叠:趋势堆叠后是季节性堆叠。通过双层残差堆叠和forecast/backcast原则,趋势组件在输入窗口x被喂入季节性堆叠之前被移除,趋势和季节性的部分预测作为可解释的独立输出。每个堆叠由几个连接的块组成,如图1所示,并且每个堆叠共享其相应的非可学习的gb和gf。在趋势和季节性模型中,每个堆叠包含3个块。我们发现,除了共享gb和gf之外,在堆叠内共享所有块的权重可以获得更好的验证性能。
6. NHiTS (Neural Hierarchical Interpolation for Time Series)
- 论文链接 : arxiv.org/pdf/2201.12...
- 时间 2022年 多速率数据采样: 我们在全连接块前引入了子采样层,显著减少了内存占用和所需计算量,同时保持了模拟长期依赖关系的能力。
分层插值: 我们通过减少神经网络预测的维度,并通过多尺度分层插值将其时间尺度与最终输出匹配,以确保多步预测的平滑性。这一新颖技术并非仅适用于我们提出的模型,也可以融入到不同的架构中。
N-HiTS 架构: 这是一种新颖的方法,通过在各个块之间同步输入采样速率与输出插值尺度,使得每个块专注于预测时间序列信号的特定频率带。 在多变量长期预测领域,基于Transformer的方法近年来主导了这一领域。例如,Autoformer(Wu等,2021)是一种具有分解能力和基于傅里叶变换的注意力近似的编码器-解码器模型;Informer(Zhou等,2020)采用了基于MLP的多步预测策略,通过稀疏性逼近自注意力;Reformer(Kitaev, Łukasz Kaiser和Levskaya,2020)利用局部敏感哈希来逼近注意力;LogTrans(Li等,2019)则使用了局部/对数稀疏注意力。
关于多步预测策略的研究揭示了在偏差/方差权衡中的不同策略。直接策略为每个预测步骤分配一个不同的模型,降低了偏差但增加了方差,避免了经典递归策略中预测步骤之间的误差累积。相反,联合预测策略使用单一模型一次性生成所有步骤的预测,达到了方差和偏差之间的平衡,避免了误差累积,并利用了共享的模型参数(Bao, Xiong和Hu,2014;Atiya和Taieb,2016;Wen等,2017)。
多速率输入采样是应对极长预测时段挑战的另一重要方法。之前的预测文献意识到这一问题,并提出了混合数据采样回归(MIDAS;Ghysels, Sinko和Valkanov,2007;Armesto, Engemann和Owyang,2010),以缓解参数过多的问题,同时保留高频时间信息。MIDAS回归保持了线性自回归模型的经典递归预测策略,但定义了一种简洁的输入馈送方式。
插值在许多领域广泛应用于增强建模信号的分辨率,例如信号和图像处理(Meijering,2002)。在时间序列预测中,插值的应用包括完成不均匀采样数据和噪声滤波器(Chow和Loh Lin,1971;Fernandez,1981)。当介绍N-HiTS方法时,可以强调其与N-BEATS相似和创新之处,以及其在长期预测中的优势。
N-HiTS方法扩展了Neural Basis Expansion Analysis方法(N-BEATS),在多个关键方面进行了优化,特别是在长期预测的背景下,提高了准确性和计算效率。该方法利用了输入信号的多速率采样和多尺度合成预测,从而构建了预测的分层结构,显著减少了计算需求并改善了预测的准确性。
与N-BEATS类似,N-HiTS通过多个块上的本地非线性投影来实现其预测能力。每个块包含一个多层感知器(MLP),用于学习生成其基础的回溯和预测输出的系数。回溯输出用于清洁后续块的输入,而预测输出则通过求和来组成最终的预测。
N-HiTS的架构由多个堆栈(stacks)组成,每个堆栈中有多个块(blocks)。每个块包含一个MLP,用于预测前向和后向的基础系数。这种结构允许N-HiTS在不同层次上学习和合成信号特征,通过控制不同堆栈和块之间的表达能力比率,进一步提升了预测的精度和泛化能力。
7. RNN (Recurrent Neural Network)
- 论文链接: RNN作为基础的循环神经网络结构,在深度学习文献中有大量相关文献和应用。
8. SCINet (SCINet: Time Series Modeling and Forecasting with Sample Convolution and Interaction)
这些论文链接将帮助你进一步了解每个模型的技术细节和应用背景。
ini
### 2. `paddlets.models.representation` - 时序表征模型模块
#### 功能
- 提供时序数据的表征学习模型。
- 支持将时序数据转化为低维表示。
- 常用模型包括Autoencoder、VAE等。
#### 示例
```python
from paddlets.models.representation import TSEncoder
# 假设已经准备好训练数据train_data
model = TSEncoder(in_chunk_len=24, out_chunk_len=24)
model.fit(train_data)
representations = model.transform(test_data)
3. paddlets.models.anomaly
- 时序异常检测模型模块
功能
- 提供多种用于时序数据异常检测的模型。
- 支持无监督和有监督的异常检测。
- 常用模型包括Isolation Forest、Autoencoder、LSTM-VAE等。
示例
python
from paddlets.models.anomaly import LSTMAutoEncoder
# 假设已经准备好训练数据train_data
model = LSTMAutoEncoder(in_chunk_len=24)
model.fit(train_data)
anomalies = model.predict(test_data)
4. paddlets.models.classify
- 时序分类模型模块
功能
- 提供多种用于时序数据分类的模型。
- 支持多类别分类任务。
- 常用模型包括LSTMClassifier、CNNClassifier等。
示例
python
from paddlets.models.classify import LSTMClassifier
# 假设已经准备好训练数据train_data和标签train_labels
model = LSTMClassifier(in_chunk_len=24, n_classes=3)
model.fit(train_data, train_labels)
predictions = model.predict(test_data)
结语
通过这些模块,PaddleTS为用户提供了一个完整的时序数据分析解决方案。学生们可以根据不同的应用需求选择相应的模型模块,快速构建并部署时序预测、表征、异常检测和分类模型。