重新审视长时间序列预测:关于线性映射的调查

news2024/12/25 12:36:46

摘要

近年来,长时间序列预测得到了极大的关注。虽然有各种专门的设计来捕捉时间依耐性,但以前的研究表明,与其他复杂的架构相比,单一的线性层可以实现有竞争力的预测性能。在本文中,我们彻底调查了最近提出的方法内在的有效性,并提出了3个关键意见:1)线性映射对于之前的长期时间序列预测工作至关重要;2)RevIN(可逆归一化)和CI(通道独立)在提高整体预测性能方面发挥了重要作用;3)线性映射能够有效捕捉时间序列中的周期特征,并且在增加输入时间序列长度时对不同通道的不同周期具有鲁棒性。我们提供了理论和实验的解释来支持我们的发现,也讨论了局限性和未来的工作。

引言

近年来,时间序列预测由于其在各个领域的适用性而变得越来越流行,如电力预测、天气预报和交流流量估计。随着计算资源、数据量和模型架构的进步,深度学习技术,如基于RNN的模型和基于CNN的模型,在精度和稳健性方面已经超过了传统的统计方法。

最近,人们对使用基于变换器的方法来捕捉时间序列预测中的长期时间相关性越来越感兴趣。这些方法通过各种注意力机制和非回归生成技术表现出了很好的效果。然而,最近的一项工作(DLinear)表明,这些基于Transformer的方法可能并不像以前认为的那样有效,并发现他们报告的预测结果与自回归生成相比可能主要依赖于单通道预测。相反,只使用单一线性层的DLinear出人意料地以很大的优势超过了现有的复制架构。在这项工作的基础上,随后的方法摒弃了编码-解码器架构,专注与开发时间特征提取器,并对历史输入和预测之间的映射进行建模。虽然这些方法取得了更好的预测性能,但它们仍然没有明显优于线性模型。此外,它们往往需要大量可调整的超参数和特定的训练技巧,如归一化和特定的通道处理,这可能会潜在地影响比较的公平性。基于这些观察,我们提出以下问题:(1)时间特征提取器对长时间序列预测是否有效?(2)解释线性映射在时间序列预测中的有效性的基本机制是什么?(3)线性模型的局限性是什么,我们怎样才能改进它们?

在下面的章节中,介绍了问题的定义和实验设置之后,我们对最近的时间序列预测模型的内部工作机制进行了深入的实验和分析,目的是通过大量的时间和理论分析来回答上述问题。本文的主要贡献在于:

  • 我们研究了近期时间序列预测模型中不同成分的功效,返现线性映射对其预测性能至关重要,如第3节所示
  • 我们用理论和实验证据证明了线性映射在长期时间序列预测任务中学习周期性的有效性,并提出了简单而有效的基线,以便在未来进行更公平的比较(如表3所示)
  • 我们研究了在处理具有不同通道的多变量时间序列时线性映射的局限性,并分析了输入水平和一种称为通道独立的补救技术的影响,如图10和11所示。

问题定义和实验设置

问题的定义。给定一个历史时间序列 X = [ x 1 , x 2 , ⋯   , x n ] ∈ R c × n X = [x_1,x_2,\cdots,x_n] \in R^{c \times n} X=[x1,x2,,xn]Rc×n,有 c c c个通道和 n n n个时间步骤,预测任务旨在预测未来 m m m个时间步骤 Y = [ x n + 1 , x n + 2 , . . . , x n + m ] ∈ R c × m Y = [x_{n+1}, x_{n+2},...,x_{n+m}] \in R^{c \times m} Y=[xn+1,xn+2,...,xn+m]Rc×m其中m表示预测范围。我们需要学习一个映射 F : X c × n ↦ Y c × n F:X^{c \times n} \mapsto Y^{c \times n} F:Xc×nYc×n,其中X和Y在原始时间序列数据中是连续的。

实验设置。我们的实验是在模拟时间序列和六个公开的真实数据集上进行的:(1)ETTH,有4个不同粒度的数据集,记录了6个电力负荷特征和电力变压器的油温;(2)Weather包含2020年美国近1600个地点的21个气象指标;(3)ECL记录了2012年至2014年321个客户的每小时用电量。为了进行公平的比较,我们遵循相同的评估协议,将所有数据集分为训练集、验证集和测试集。我们提出的基线使用L2损失和Adam优化器进行训练。训练过程在20个epochs内提前停止。MSE和MAE被作为评价指标进行比较。R-squared得分被用于实证研究,因为它可以消除数据规模的影响。所有的模型都在Pytorch中实现,并在单个Nvidia V100 32GB GPU上进行了三次测试。

时间特征提取器是否有效?

一般框架。图1说明了最近的工作对时间序列预测的一般框架,包括3个核心部分:RevIN,一个可逆的归一化层;一个周期敏感的特征提取器,如注意力、MLP或卷积层;以及一个预测最终结果的线性投影层。鉴于超参数调整和各种训练技巧对比较公平性的潜在影响,我们首先考察了不同时间特征提取器的有效性。在不丧失一般性的前提下,我们精心挑选了四个值得注意的最优模型:PatchTST(Attend)、MTS-Mixers(MLP)、TimesNet和SCINet(Conv)。所有这些方法都遵循这个共同的框架和正如他们所宣称的那样,已经取得了最先进的预测性能,考虑到他们报告的预测精度并不明显优于单一的线性层,我们使用ETT基准进行了新的实验,以检查每个部分在他们中的贡献。
在这里插入图片描述
图二显示了不同模型在ETTh1不同预测长度上的预测性能。基线“RLinear”指的是带有RevIN的线性投影层。固定随机提取器(fixed random extractor)是指我们只随机初始化时间特征提取器,在训练阶段不更新其参数。值得注意的是,RevIN明显提高了这些方法的预测精度。因此,将一种方法与其他不使用RevIN的方法进行比较,可能会因为其优势而导致不公平的结果。在RevIN的帮助下,即使是一个简单的线性层也能超过目前最先进的基线PatchTST。
在这里插入图片描述
值得注意的是,我们的发现表明,即使使用随机初始化的时间特征提取器,并使用未经训练的参数,也能引起有竞争力的、甚至更好的预测结果。有必要考虑这些特征提取器从时间序列数据中学到了什么。图3说明了最后的线性投影层和不同的时间特征提取器的权重。有趣的是,当时间特征提取器是MLP时,MLP和投影层都学到了混乱的权重,而两者的乘积与从单一线性层学到的权重保持一致。另一方面,当时间特征提取器是Attention时。它也会学到混乱的权重,但投影层学到的权重与单一线性层的权重相似,意味着线性投影在时间序列中的重要性。
在这里插入图片描述
为了减轻任何潜在的特定数据集偏差,我们在完整的ETT基准上进行了更多的实验,使用相同的比较协议。表1展示了RLinear和选定模型的预测结果。有趣的是,与精心设计的方法相比,简单的基线RLinear在大多数情况下具有可比性甚至更好的性能。有时,这些使用时间特征提取器的精致模型甚至比未经训练的原型表现更差。值得注意的是,使用固定的随机时间特征提取器的模型通常表现出类似的预测性能,并接近单一线性层。这些耐人寻味的观察促使我们质疑时间特征提取器是否有必要,以及为什么线性映射在长期时间序列预测中如此有效。

关于线性映射的理论和实证研究

预测中线性映射的作用

线性映射学习周期性。考虑一个单一的线性层为:
Y = X W + b Y = XW + b Y=XW+b
其中 W ∈ R n × m W \in R^{n \times m} WRn×m是权重,也被称为过渡矩阵, b ∈ R 1 × m b \in R^{1 \times m} bR1×m是偏置。
在这里插入图片描述
**假设1.**一般的时间序列 x ( t ) x(t) x(t)可以被分解为季节性部分 s ( t ) s(t) s(t)和趋势部分 f ( t ) f(t) f(t),并带有可容忍的噪声,表示为 x ( t ) = s ( t ) + f ( t ) + ϵ x(t) = s(t) + f(t) + \epsilon x(t)=s(t)+f(t)+ϵ

许多方法已经被开发出来,将时间序列分解为季节性和趋势项,利用神经网络来捕捉周期性和补充趋势预测。然而,值得注意的是,单个线性层也可以有效地学习周期性模式。

**定义1.**给定一个满足 x ( t ) = s ( t ) = s ( t − p ) x(t) = s(t) = s(t-p) x(t)=s(t)=s(tp)的季节性时间序列,其中 p ≤ n p \leq n pn为周期,线性模型总是存在一个分析解为:
[ x 1 , x 2 , ⋯   , x n ] ⋅ W + b = [ x n + 1 , x n + 2 , ⋯   , x n + m ] ,   W i j ( k ) = { 1 ,     i f i = n − k p + ( j   m o d   p )                                                     1 ≤ k ∈ Z ≤ ⌊ n / p ⌋ , b i = ∑ l = 0 k − 1 a l ⋅ c . 0 ,     o t h e r w i s e [x_1,x_2,\cdots,x_n] \cdot W + b = [x_{n+1},x_{n+2},\cdots,x_{n+ m}],\\ \ \\ W_{ij}^{(k)}= \begin{cases} 1,\ \ \ if i = n - kp + (j \ mod\ p)\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 1 \leq k \in Z \leq \lfloor n/p \rfloor,b_i = \sum^{k-1}_{l = 0}a^l \cdot c.\\ 0, \ \ \ otherwise\\ \end{cases} [x1,x2,,xn]W+b=[xn+1,xn+2,,xn+m], Wij(k)= 1,   ifi=nkp+(j mod p)                                                   1kZn/p,bi=l=0k1alc.0,   otherwise
上述方程表明,当输入历史序列的长度不小于周期时,线性映射可以预测周期性信号,当这并不是唯一的解。由于 s ( t ) s(t) s(t)中的每个时间戳对应的值几乎不可能是线性独立的,所以w的参数解空间很广泛。特别是,当 n ≫ p n \gg p np时,有可能对 W ( k ) W^{(k)} W(k)的更多潜在值以不同的系数 k k k获得闭式解。带有适当比例系数的 [ W ( 1 ) , ⋯   , W ( k ) ] [W^{(1)},\cdots,W^{(k)}] [W(1),,W(k)]的线性组合也满足上述方程的解。

推论1.1当给定的时间序列满足 x ( t ) = a x ( t − p ) + c x(t) = ax(t-p)+c x(t)=ax(tp)+c其中 a , c a,c a,c是缩放和平移因子,线性模型对方程2仍有一个闭式解,即:
W i j ( k ) = { a k ,     i f i = n − k p + ( j   m o d   p )                                                     1 ≤ k ∈ Z ≤ ⌊ n / p ⌋ , b i = ∑ l = 0 k − 1 a l ⋅ c . 0 ,     o t h e r w i s e W_{ij}^{(k)}= \begin{cases} a^k,\ \ \ if i = n - kp + (j \ mod\ p)\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 1 \leq k \in Z \leq \lfloor n/p \rfloor,b_i = \sum^{k-1}_{l = 0}a^l \cdot c.\\ 0, \ \ \ otherwise\\ \end{cases} Wij(k)= ak,   ifi=nkp+(j mod p)                                                   1kZn/p,bi=l=0k1alc.0,   otherwise
现在我们知道,一个单一的线性层可以有效地捕捉时间序列中的周期性。图3中可视化的权重也支持我们的观点,从输入到输出的过渡矩阵显示出明显的周期性(每期24个时间步长)。然而,在实践中,时间序列通常遵循假设1,所以趋势项可能会影响线性模型的学习。图4说明了线性层对模拟的季节性和趋势性信号的预测结果,包括正弦波、线性函数和它们的总和。正如预期的那样,线性模型对季节性的拟合很好,但对趋势的表现很差,不管它算法有偏置项。Chen等人也研究了类似的问题,并提供了线性模型在预测具有季节性和趋势成分的时间序列时的性能上限。在他们的工作基础上,我们调整了他们的结论,并得出了以下定理。

**定理2.**设 x ( t ) = s ( t ) + f ( t ) x(t) = s(t) + f(t) x(t)=s(t)+f(t),其中 s ( t ) s(t) s(t)是一个周期为 p p p的季节性信号, f ( t ) f(t) f(t)满足K-Lipschitz连续。那么,存在一个如方程2的线性模型,输入长度 n = p + τ , τ ≥ 0 n = p + \tau,\tau \geq 0 n=p+τ,τ0这样 ∣ x ( x + j ) − x ^ ( n + j ) ∣ ≤ K ( p + j ) , j = 1 , . . . , m |x(x + j) - \hat{x}(n + j)| \leq K(p + j),j = 1,...,m x(x+j)x^(n+j)K(p+j),j=1,...,m

**证明.**为了简化证明过程,我们假设历史数据的时间戳是1到 n n n,那么对于要预测的第 j j j个真实值 x ( n + j ) x(n + j) x(n+j),我们有:
x ( n + j ) = x ( p + τ + j ) = s ( τ + j ) + f ( p + τ + j ) x(n + j) = x(p + \tau + j) = s(\tau + j) + f(p + \tau + j) x(n+j)=x(p+τ+j)=s(τ+j)+f(p+τ+j)

假设线性模型只能学习周期性模式,我们可以直接使用方程3作为近似解,其中我们选择 k = 1 k = 1 k=1。因此,对 x ( n + j ) x(n + j) x(n+j)的预测是:
x ^ ( n + j ) = X W + b = x ( n − p + ( j   m o d   p ) ) = s ( τ + j ) + f ( τ + ( j   m o d   p ) ) \hat{x}(n + j) = XW+b =x(n - p + (j\ mod\ p)) = s(\tau + j) + f(\tau + (j\ mod\ p)) x^(n+j)=XW+b=x(np+(j mod p))=s(τ+j)+f(τ+(j mod p))

利用K-Lipschitz连续的特性,我们可以得到
∣ x ( n + j ) − x ^ ( n + j ) ∣ = ∣ f ( p + τ + j ) − f ( τ + ( j   m o d   p ) ) ∣ ≤ K ∣ p + j − ( j   m o d   p ) ∣ ≤ K ( p + j ) \begin{align*} |x(n + j) - \hat{x}(n + j)| &= |f(p + \tau + j) - f(\tau + (j \ mod \ p))|\\ & \leq K|p + j - (j\ mod\ p)|\\ & \leq K(p + j) \end{align*} x(n+j)x^(n+j)=f(p+τ+j)f(τ+(j mod p))Kp+j(j mod p)K(p+j)

虽然线性模型对趋势项的预测误差是有限制的,但随着时间戳的积累或趋势项变得更加显著,它仍然会影响预测结果。这有可能是线性模型在趋势预测中容易表现不佳的原因。

在这里插入图片描述

解除纠缠和归一化

分离中的问题。如果趋势项可以被消除或季节项分离,预测性能可以得到改善。以前的工作着重于将时间序列分解为季节性和趋势性部分,以单独预测它们。一般来说,他们利用由平均池层实现的移动平均,通过适当大小的滑动窗口,从输入的时间序列中获得趋势信息。然后,他们从原始数据中减去趋势项得到的周期性信号中识别季节性特征。然而,正如文献中所说,这些方法有一些问题。首先,滑动窗口的大小应大于季节性部分的最大周期,否则解耦将是不充分的。其次,由于使用了平均池化层,对齐需要在输入时间序列的两端进行填充,这不可避免地会使序列的头部和尾部发生扭曲。此外,即使信号被完全分解,或者它们只有趋势项,趋势项的欠拟合问题仍然存在。因此,虽然解耦可能会提高预测性能,但他与最近的一些先进模型仍有差距。
在这里插入图片描述

**把趋势变成季节性。**脱离的关键是将移动平均数从原始时间序列中减去,这与归一化有关。Kim等人认识到,由于分布偏移问题,时间序列的一些统计信息,如均值和方差,会随着时间的推移而不断变化。为了解决这一难题,他们开发了RevIN,这种方法首先对输入的历史时间序列进行归一化,并将其送入预测模块,然后再对预测结果进行去归一化。以前的工作证实RevIN在关节分布偏移方面的效果比归一化更有效。然而,时间序列中的数值范围和大小在现实世界的场景中也是有意义的。直接对输入数据进行归一化可能会抹去这些统计信息,导致预测结果不佳。图5说明了使用不同归一化方法对具有两个通道的模拟趋势信号的预测结果。仅仅使用线性层来拟合趋势变化是具有挑战性的。应用批量归一化甚至会诱发更差的结果,而层归一化会导致接近零的无意义预测。解除模拟时间序列的束缚也不起作用。然而,在RevIN的帮助下,单个线性层可以准确预测趋势项。
在这里插入图片描述
可逆归一化的核心在于可逆性。它消除了由时刻统计引起的趋势变化,同时保留了可用于恢复最终预测结果的统计信息。图6说明了RevIN是如何影响季节性和趋势项的。对于季节性信号,RevIN缩放了范围,但不改变周期性。对于趋势信号来说,RevIN将每个区段扩展到相同的范围,并表现出周期性模式。RevIN能够将一些趋势变成季节性,使模型更好地学习或记忆趋势条款。图7展示了带有RevIN的线性模型对带有季节性和趋势项的模拟时间序列的预测结果。RevIN将连续变化的趋势转换为具有固定和类似趋势的多个分段,显示出周期性特征。因此,由过去累积的时间段引起的趋势预测误差可以得到缓解,导致更准确的预测结果。
在这里插入图片描述

实验评估

在这一节中,我们首先评估了不同模型在真实世界数据集上的表现,然后考察了各种渠道之间的多时段情景。

在真实数据集上的比较

表2提供了这六个真实数据集的统计信息。我们使用三个最新的竞争基线进行实验:PatchTST、TimesNet和DLinear。鉴于RevIN极大地提高了预测性能,我们增加两个简单的极限,即RLinear和具有两个线性层和ReLU激活的RMLP,以进行更公平的比较。表3提供了所有基准的预测结果概览。
在这里插入图片描述
请添加图片描述
然而,这些精心设计的模型并不比我们提出的两个简单的基线更好。这些模型的成功可能是由于通过线性映射学习周期性和可逆归一化的效率。有趣的是,我们注意到,在具有大量通道的数据集上,如天气和ECL,RLinear的表现并不明显优于复杂的模型,这一点将在下一节研究。
在这里插入图片描述

当线性遇到通道间多周期时

尽管线性映射能够学习时间序列中的周期性,但在处理多通道数据集时,它面临挑战。为了解决这个问题,一个可能的解决方案是使用通道独立(CI)建模,它独立处理时间序列中的每个通道。虽然这种方法可以提高预测精度,但它也大大增加了计算开销。图8显示了不同模型应用于具有3个不同周期通道的模拟时间序列的预测结果。可以看出RLinear-CI和RMLP能够拟合曲线,而RLenar则失败。这表明,单一的线性层可能难以学习通道内的不同周期。非线性单元或CI建模可能有助于提高具有不同周期通道的多变量时间序列模型的稳健性。表4提供了对使用CI的RLinear的天气和ECL的预测结果,它取得了与RMLP相当的性能,证实了单一线性层可能容易受到渠道中不同时期的影响。

在这里插入图片描述
在这里插入图片描述
为了进一步研究线性映射对多变量时间序列的影响,我们使用一系列角频率在1/30到1/3之间、长度为3000的正弦波进行模拟。图10展示了不同设置下的预测结果。我们的发现表明,线性模型在具有两个通道的时间序列上始终表现良好,无论周期性的差异是小是大。然而,随着不同周期的通道数量增加,线性模型的表现逐渐变差,而非线性单元的模型或CI继续表现良好。此外,增加输入范围可以有效缓解线性模型在多渠道数据集上的预测性能。这些观察结果表明,现有模型可能侧重于学习季节性,而多变量时间序列中不同渠道之间的周期性差异是制约预测性能的关键因素。定理3对线性模型在预测多变量时间序列中的作用做了解释。
在这里插入图片描述
定理3. X = [ s 1 , s 2 , ⋯   , s c ] T ∈ R c × n X = [s_1,s_2,\cdots,s_c]^T \in R^{c \times n} X=[s1,s2,,sc]TRc×n是输入的历史多变量时间序列,有c个通道,长度为n。如果每个信号 s i s_i si有相应的周期 p i p_i pi,一定有一个线性模型 Y = X W + b Y = XW + b Y=XW+b,当 n ≫ l c m ( p 1 , p 2 , . . . , p c ) n \gg lcm(p_1,p_2,...,p_c) nlcm(p1,p2,...,pc)

在这里插入图片描述
如图11所示,增加输入跨度可以使预测性能得到明显改善。这是因为较长的输入跨度覆盖了更多的潜在时期,使线性模型和非线性单元的模型之间的性能差距最小化。然而,值得注意的是,当输入水平线较长时,RLinear-CI和RMLP在ETTh1数据集上的表现较差,这可能是由于这个特定数据集的容量较小。此外,应该注意的是,通过增加输入窗口实现的性能改善有一个上限。这个限制可能高度依赖于数据集中存在的周期性模式。

总结

本文系统地研究了线性映射在长期时间序列预测中的作用,有以下重要启示:(1)线性映射对周期的长期时间序列预测方法至关重要,它们通常容易学习类似的仿射变换,即从输入历史观测到输出预测中对应特定的周期模式;(2)RevIN(可逆归一化)和CI(独立通道)通过简化对周期性的学习来提高整体预测性能;(3)当输入范围增加时,线性映射对具有不同周期通道的多变量时间序列具有鲁棒性,而它可能引起短周期特征的欠拟合。我们提供了理论上的解释,并在模拟和现实世界的数据集上进行了广泛的实验,以支持我们的发现

限制和未来的工作。长期的时间序列基准往往显示出一致的季节性模式。为了提高模型的概况能力,值得研究它在季节性变化时的表现。探索我们的理论对其他任务的适用性也很有价值,比如短期时间序列预测。我们承认,这些探索将留给未来的工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/663741.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序开发21__Echarts的应用

Echarts 是一个使用JS实现的开源可视化库, 其官网是 https://echarts.apache.org . 它提供了常规的折线图、柱状图、散点图、饼图、K线图等, 还支持图与图之间的混搭。 Echarts 的微信小程序版本的Github为 https://github.com/ecomfe/echarts-for-…

MySQL数据库日志管理、备份与恢复

目录 一、MySQL 日志管理 二、数据备份的重要性 造成数据丢失的原因 三、数据库备份的分类 1 、从物理与逻辑的角度 (1)备份划分 (2) 物理备份方法 2、 从数据库的备份策略角度 四、常见的备份方法 1、物理冷备 2、专用备…

天气热了,三叔请你吃瓜

目录 前言预备知识画一个完整的西瓜加些纹路切西瓜参考资料前言 六月份转眼就过去一半了,气温逐渐走高,每次经过小区门口的时候都会被那家水果店铺的吆喝声吸引住,“正宗南汇8424西瓜只要3元一斤啦”,每每都想冲进店里抱一个回来,可碍于囊中羞涩,只好作罢,晚餐过后闲暇…

Postman | 一分钟掌握Pre-request Script | 外部库的使用

简介 Postman内部提供了13种外部库,可以直接在前置请求脚本和后置请求脚本中使用,如果需要其他外部库,只需要使用如下方式引入即可: require(moduleName:String):function → * 一些内部库使用的例子 postman可用的外部库官网列…

[第一章 web入门]afr

afr_1 题目开头已经提示说是任意文件读取漏洞 所以这里还需要复习一下php伪协议php://filter 的作用 读取源代码并进行base64编码输出,不然传入的参数会直接当做php代码执行就看不到源代码内容了。php://filter即使在allow_url_fopen和allow_url_include双off情况下…

Day21 实战篇——Jmeter接口测试之案例实战——添加线程组、添加HTTP请求、获取所有学生接口

Day21 实战篇——Jmeter接口测试之案例实战——添加线程组、添加HTTP请求、获取所有学生接口 文章目录 Day21 实战篇——Jmeter接口测试之案例实战——添加线程组、添加HTTP请求、获取所有学生接口1、添加线程组2、添加HTTP请求3、获取所有学生接口3.1 Jmeter察看结果树中乱码:…

03_运行时数据区

目录 一、概述二、线程1、JVM系统线程 一、概述 二、线程 1、JVM系统线程

调用万维易源API实现天气预测

目录 1. 作者介绍2. 关于理论方面的知识介绍2.1 天气预测简介2.2 预测方法 3. 代码实现3.1 需要安装的包3.2 部分代码3.3 实验结果 1. 作者介绍 房庚晨,男,西安工程大学电子信息学院,22级研究生 研究方向:机器视觉与人工智能 电子…

【数据库四】MySQL备份与恢复

MySQL备份与恢复 1.数据库备份的分类1.1 数据备份的重要性1.2 数据库备份的分类1.3 常见的备份方法 2.MySQL完全备份与恢复2.1 MySQL完全备份2.2 数据库完全备份分类2.3 MySQL物理冷备份及恢复2.4 数据迁移DST2.5 mysqldump进行逻辑备份2.5.1 mysqldump备份数据库2.5.2 mysqldu…

基于卡尔曼滤波进行四旋翼动力学建模(SimulinkMatlab)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

下载routeview网站上的BGP更新数据

需求 给出起始时间和终止时间,从routeview网站上,下载在这两者之间的所有数据到本机,以便于进行后续的分析工作。 例如:2022.2.23 - 2022.2.26 主要流程 主流程在遍历每个月中实现 当月份小于10时,前面加‘0’&am…

算力军备竞赛白热化 “卖铲人”联想集团竞争力如何?

继微软通过OpenAI推出GPT系列、谷歌推出Bard和PaLM-E2之后,国内AI大模型也呈百家争鸣态势,年初至今,国内科技巨头几乎都发布了自研AI大模型产品,AI竞赛全面升级的背后,是全球科技巨头们对算力的争夺,作为算…

【kali学习笔记】利用第三方服务对目标进行被动信息收集

一、被动信息收集 1、概念: 信息收集的方式分为两种:被动收集和主动收集。被动信息收集方式是指利用第三方的服务对目标进行访问了解,比如Google搜索。主动信息收集方式:通过直接访问、扫描网站,这种流量流经网站的行…

Qt 中动态加载窗口(C++)

在编程中,我经常会遇见要根据用户触发按钮,动态生成窗口的情况。在此有两种方法可以动态生成窗口:一:直接在槽函数中调用窗口类。二:将 **.ui 添加到资源文件,通过 QUiLoader 加载。 现将两种方法介绍如下…

redhat 6.4安装oracle11g RAC (二)

创建一个asm Disk Group Name 组,并给一个名称ORC,并选择下面的三块盘,然后 Next错误的原因是由于磁盘数和冗余层级不匹配: 如果创建用来存放OCR和VOTEDISK的ASM磁盘组,那么External、Normal、High三种冗余级别对应的…

企业文件安全必知!掌握低代码平台的应用,事半功倍保障文件安全

在数字时代的今天,企业档案的安全变得比以往任何时候都更加重要。这些文件可能包含有关客户的敏感信息或必须始终保护的专有业务数据。但是,保护这些文件可能是一个复杂且耗时的过程,对于没有专门IT团队的公司来说尤其如此。这就是低代码平台…

组合式API【Vue3】

Vue3组合式API体验 通过一个 Counter&#xff08;自增&#xff09;案例 体验Vue3新引入的组合式API Vue2的代码&#xff1a; <template><button click"addCount">{{count}}</button> </template> <script> export default {data(){r…

SynchronousQueue的TransferQueue源码分析

QNode的源码信息分析 一行一行的分析大概内容&#xff1b;下面会省略大量的CAS操作当前节点可以获取到的next节点item在生产者和消费者下有所不同。生产者是有数据。消费者为null。waiter为当前线程isData属性是用来区分消费者和生产者的属性。值得一提的是最终生产者需要将it…

2023年我国省市县的高新技术企业数量(Excel/Shp格式)

企业是经济活动的参与主体。一个城市的企业数量决定了这个城市的经济发展水平&#xff01;比如一个城市的金融企业较多&#xff0c;那这个城市的金融产业肯定比较发达&#xff1b;一个城市的制造业企业较多&#xff0c;那这个城市的制造业肯定比较发达。 目前&#xff0c;在城…

Android 13(T) - Media框架 - 异步消息机制

由于网上已经有许多优秀的博文讲解了Android的异步消息机制&#xff08;ALooper/AHandler/AMessage那一套&#xff09;&#xff0c;而且流程也不是很复杂&#xff0c;所以这里将不会去讲代码流程。本篇将会记录学习过程中的疑问以及自己的解答&#xff0c;希望可以帮助有同样疑…