自回归模型(AR )
最近看到一些模型使用了自回归方法,这里就学习一下整理一下相关内容方便以后查阅。
自回归模型(AR )
- 自回归模型(AR )
- AR 模型的引入
- AR 模型的定义
- 参数的估计方法
- 模型阶数选择
- 平稳性与因果性条件
- 自相关与偏自相关函数
- 优缺点总结
- 自相关(Autocorrelation)与偏自相关(Partial Autocorrelation)
- 基本概念与定义
- 自相关函数(ACF)
- 样本自相关系数
- 偏自相关函数(PACF)
- ACF与PACF图在模型识别中的作用
- 工具与代码实现
- 自回归移动平均模型(Autoregressive Moving Average Model,ARMA)
- 基本概念与定义
- 自回归(AR)模型
- 移动平均(MA)模型
- ARMA模型的定义
- ARMA(p, q)模型的数学公式
- 参考资料
自回归(Autoregression,简称AR)是一类广泛应用于时间序列分析和建模的统计模型。它的核心思想是将当前时刻的数据值表示为过去若干时刻数据值的线性组合,以及一个随机误差项。通过这种方式,自回归模型能够捕捉时间序列内部的自相关结构,从而实现对未来值的预测、对数据生成机制的理解,或对信号特征的建模。
自回归模型(AR )
AR 模型的引入
考虑如图所示的单摆系统。设 x t x_t xt 为第 t t t 次摆动过程中的摆幅。根据物理原理,第 t t t 次的摆幅 x t x_t xt 由前一次的摆幅 x t − 1 x_{t-1} xt−1 决定,即有 x t = a 1 x t − 1 x_t=a_1x_{t-1} xt=a1xt−1。考虑到空气振动的影响,我们往往假设
x t = a 1 x t − 1 + ε t , t ≥ 1 x_t=a_1x_{t-1}+\varepsilon_t,t\geq1 xt=a1xt−1+εt,t≥1
其中,随机干扰 ε t ∼ N ( 0 , σ 2 ) ε_t \sim N(0, σ^2) εt∼N(0,σ2)。
设初始时刻 x 0 = 1 x_0=1 x0=1,现在取不同的 a 1 a_1 a1 和 σ σ σ 值进行实验。实验结果如下图。
可以看出,参数 a 1 a_1 a1 对序列的稳定性起到决定性的作用,而噪声强度 σ 2 σ^2 σ2 决定了序列的波动程度。
在这里,我们称第一个公式为一阶自回归模型。更一般地,可以考虑序列值 x t x_t xt 可由前 p p p 个时刻的序列值及当前的噪声表出,即
x t = a 1 x t − 1 + a 2 x t − 2 + ⋯ + a p x t − p + ε t x_t=a_1x_{t-1}+a_2x_{t-2}+\cdots+a_px_{t-p}+\varepsilon_t xt=a1xt−1+a2xt−2+⋯+apxt−p+εt
其中, a j a_j aj 为参数, ε t {ε_t} εt 为白噪声。
AR 模型的定义
如果 ε t \varepsilon_\mathrm{t} εt为白噪声,服从 N ( 0 , σ 2 ) N(0,\sigma^2) N(0,σ2), a 0 , a 1 , . . . , a p ( a p ≠ o ) \mathrm{a_0,a_1,...,a_p(a_p\neq o)} a0,a1,...,ap(ap=o)为实数,就称 p p p 阶差分方程
X t = a 0 + a 1 X t − 1 + a 2 X t − 2 + ⋯ + a p X t − p + ε t , t ∈ Z X_t=a_0+a_1X_{t-1}+a_2X_{t-2}+\cdots+a_pX_{t-p}+\varepsilon_t,t\in\mathbb{Z} Xt=a0+a1Xt−1+a2Xt−2+⋯+apXt−p+εt,t∈Z
是一个 p p p 阶自回归模型,简称 A R ( p ) AR(p) AR(p) 模型,称 a = ( a 0 , a 1 , . . . , a p ) T \mathbf{a=(a_{0},a_{1},...,a_{p})^{T}} a=(a0,a1,...,ap)T是 A R ( p ) AR(p) AR(p) 模型中的自回归系数。满足上述 模型的时间序列 X t {X_t} Xt 称为 A R ( p ) AR(p) AR(p) 序列。
当 a 0 = 0 a_0=0 a0=0 时,称为零均值 A R ( p ) AR(p) AR(p) 序列,即
X t = a 1 X t − 1 + a 2 X t − 2 + ⋯ + a p X t − p + ε t , t ∈ Z X_t=a_1X_{t-1}+a_2X_{t-2}+\cdots+a_pX_{t-p}+\varepsilon_t,t\in\mathbb{Z} Xt=a1Xt−1+a2Xt−2+⋯+apXt−p+εt,t∈Z
需要指出的是,对于 a 0 ≠ 0 a_0≠0 a0=0 的情况,我们可以通过零均值化的手段把一般的 A R ( p ) AR(p) AR(p) 序列变为零均值 A R ( p ) AR(p) AR(p) 序列。
参数的估计方法
要使用AR模型进行预测或分析,我们需要根据实际数据估计参数 ϕ 1 , ϕ 2 , … , ϕ p \phi_1, \phi_2, \dots, \phi_p ϕ1,ϕ2,…,ϕp 和噪声项的方差 σ 2 \sigma^2 σ2。参数估计方法包括:
-
最小二乘法(OLS):将 AR 模型视为线性回归模型,用 OLS 来估计参数。对于 AR§ 模型,可将 ( x t − 1 , x t − 2 , … , x t − p ) (x_{t-1}, x_{t-2}, \dots, x_{t-p}) (xt−1,xt−2,…,xt−p) 作为自变量, x t x_t xt 为因变量,构建线性方程组,求解参数。
-
极大似然估计(MLE):在高斯噪声假设下,可采用MLE方法,通过最大化似然函数来得到参数估计。
-
Yule-Walker方程:Yule-Walker方程是基于自相关函数推导出的方程组,可以直接求解AR模型参数。这在理论研究和快速估计中非常有用。
模型阶数选择
确定 AR 模型的阶数 p p p 是实际应用中的一个关键步骤。过低的阶数可能无法充分捕捉序列的特征,过高的阶数又会导致过拟合和模型复杂度增加。常用的阶数选择标准包括:
-
赤池信息准则(AIC): AIC = 2 k − 2 ln ( L ) \text{AIC} = 2k - 2\ln(L) AIC=2k−2ln(L),其中 k k k 是参数个数, L L L 为似然函数值。AIC倾向较复杂模型,但不宜过于简单。
-
贝叶斯信息准则(BIC): BIC = ln ( N ) k − 2 ln ( L ) \text{BIC} = \ln(N)k - 2\ln(L) BIC=ln(N)k−2ln(L),其中 N N N 为样本量。BIC惩罚项更大,倾向更简单的模型。
-
HQ准则(Hannan-Quinn):介于 AIC 和 BIC 之间的准则。
一般来说,通过对不同阶数的模型拟合并计算AIC、BIC、HQ等指标,选择使这些准则达到最低值的阶数作为最终模型的阶数。
平稳性与因果性条件
AR模型适用于平稳时间序列,因此研究 AR 模型时需要确保模型的平稳性。一个 A R ( p ) AR(p) AR(p) 模型的平稳性条件可以通过其特征方程来判断:
1 − ϕ 1 z − ϕ 2 z 2 − ⋯ − ϕ p z p = 0. 1 - \phi_1 z - \phi_2 z^2 - \cdots - \phi_p z^p = 0. 1−ϕ1z−ϕ2z2−⋯−ϕpzp=0.
如果该特征方程的根都落在单位圆之外(即绝对值大于1),那么该 A R ( p ) AR(p) AR(p) 模型是平稳的。平稳性保证了模型参数的统计性质和预测稳定性。如果时间序列不平稳,可对数据进行差分、去趋势或其他平稳化处理后再建模(这类模型可扩展为ARIMA模型)。
自相关与偏自相关函数
AR模型参数与时间序列的自相关特性密切相关。通过自相关函数(ACF)和偏自相关函数(PACF),我们可以获得有助于选择AR阶数的信息。
对于 A R ( p ) AR(p) AR(p) 模型,偏自相关函数在滞后阶数 p p p 处通常会出现截断,这为阶数选择提供了直观的参考。
优缺点总结
优点:
- 模型简单易懂,参数有明确的统计学含义。
- 算法成熟,估计方法(OLS、MLE、Yule-Walker)简单且高效。
- 对短期预测十分有效,在数据平稳且线性特征显著时表现良好。
缺点:
- 不适用于非线性序列,需要扩展方法或非线性模型来处理。
- 对非平稳序列需预处理,否则无法保证参数估计的有效性。
- 长期预测不如短期预测准确,对突发性、非线性、复杂行为的序列无能为力。
自相关(Autocorrelation)与偏自相关(Partial Autocorrelation)
自相关(Autocorrelation)与偏自相关(Partial Autocorrelation)是时间序列分析中的两个重要统计工具,用于刻画序列中不同时间点之间的相关关系结构。通过自相关和偏自相关函数(分别记为ACF与PACF),我们可以更清晰地了解序列的动态特性,并为模型阶数选择(如AR模型中的阶数 p p p)提供依据。
基本概念与定义
自相关函数(ACF)
自相关描述同一时间序列在不同时间滞后(lag)下的相关程度。对于一个离散时间序列 { x t } \{x_t\} {xt},其均值为 μ \mu μ,自相关可以定义为同一序列在时间间隔为 k k k (又称滞后数)的两个值之间的线性相关程度。
形式化定义:
设 γ ( k ) \gamma(k) γ(k) 为时间序列在滞后数为 k k k 时的协方差, γ ( 0 ) \gamma(0) γ(0) 为序列的方差,则自相关函数(Autocorrelation Function, ACF)为:
ρ ( k ) = γ ( k ) γ ( 0 ) = E [ ( x t − μ ) ( x t − k − μ ) ] E [ ( x t − μ ) 2 ] . \rho(k) = \frac{\gamma(k)}{\gamma(0)} = \frac{E[(x_t - \mu)(x_{t-k} - \mu)]}{E[(x_t-\mu)^2]}. ρ(k)=γ(0)γ(k)=E[(xt−μ)2]E[(xt−μ)(xt−k−μ)].
其中:
- ρ ( k ) \rho(k) ρ(k) 为滞后 k k k 的自相关系数,取值范围为[-1, 1]。
- 当 ρ ( k ) \rho(k) ρ(k) 接近1或-1时,表示序列在滞后 k k k 处具有较强的正相关或负相关。
- 当 ρ ( k ) \rho(k) ρ(k) 接近0时,表示在滞后 k k k 处序列的值与过去的值几乎没有线性关系。
通过计算序列在不同滞后下的自相关,可以构建一组自相关系数,并将其作为自相关函数ACF对滞后数k绘制得到ACF图。
样本自相关系数
在实际应用中,由于未知总体参数,我们通常使用样本自相关系数来估计ACF:
ρ ^ ( k ) = ∑ t = k + 1 N ( x t − x ˉ ) ( x t − k − x ˉ ) ∑ t = 1 N ( x t − x ˉ ) 2 \hat{\rho}(k)=\frac{\sum_{t=k+1}^N(x_t-\bar{x})(x_{t-k}-\bar{x})}{\sum_{t=1}^N(x_t-\bar{x})^2} ρ^(k)=∑t=1N(xt−xˉ)2∑t=k+1N(xt−xˉ)(xt−k−xˉ)
x ‾ \overline{x} x是样本均值, N N N 是样本大小。
偏自相关函数(PACF)
偏自相关(Partial Autocorrelation)描述的是在考虑中间滞后项的影响后,两个时间点之间的“净”相关度。
偏自相关函数衡量的是在控制了中间所有滞后项的影响后,时间序列在滞后k处的直接相关性。也就是说,PACF α ( k ) α(k) α(k) 是在考虑了滞后1到滞后 k − 1 k−1 k−1的影响后, x t x_t xt 与 x t − k x_{t−k} xt−k 之间的净相关性。
x t = β 0 + β 1 x t − 1 + β 2 x t − 2 + ⋯ + β k x t − k + ϵ t x_t=\beta_0+\beta_1x_{t-1}+\beta_2x_{t-2}+\cdots+\beta_kx_{t-k}+\epsilon_t xt=β0+β1xt−1+β2xt−2+⋯+βkxt−k+ϵt
偏自相关函数 α ( k ) \alpha(k) α(k) 就是回归系数 β k \beta_{k} βk。
ACF与PACF图在模型识别中的作用
在AR模型中,ACF与PACF图是选择模型阶数的重要视觉和理论依据。
-
纯AR模型中的特征:
对于一个 A R ( p ) AR(p) AR(p) 模型:
x t = ϕ 1 x t − 1 + ϕ 2 x t − 2 + ⋯ + ϕ p x t − p + ϵ t , x_t = \phi_1 x_{t-1} + \phi_2 x_{t-2} + \cdots + \phi_p x_{t-p} + \epsilon_t, xt=ϕ1xt−1+ϕ2xt−2+⋯+ϕpxt−p+ϵt,- ACF图通常会表现为在前几个滞后可能较大(可能逐渐衰减)的自相关,然后在高阶滞后趋近于0。
- PACF图对于 A R ( p ) AR(p) AR(p)模型有一个明显特征:从滞后p之后,偏自相关系数会快速趋近于0,而且在p阶截断。也就是说,偏自相关函数在滞后数超过p时通常不显著。
-
纯MA模型中的特征:
若是一个 M A ( q ) MA(q) MA(q) 模型(非AR结构),则ACF在q阶后截断(即ACF在滞后q后接近0),而PACF表现为渐进衰减,不会像AR模型那样干净地截断。 -
ARMA模型中的特征:
对于混合模型 A R M A ( p , q ) ARMA(p,q) ARMA(p,q),ACF和PACF都不会出现干净的截断,而是呈现混合的渐进衰减特性。透过ACF和PACF的形态,可以尝试区分AR、MA及ARMA等模型结构。
通过观察ACF和PACF的截断与衰减模式,我们能够初步推断合适的模型类别与阶数。例如:
- 如果PACF在p阶截断,而ACF渐进衰减,那么这可能是AR§模型。
- 如果ACF在q阶截断,而PACF渐进衰减,那么这可能是MA(q)模型。
- 如果两者都渐进衰减,那么可能是ARMA模型,需要更进一步检验。
工具与代码实现
- 导入库并加载数据
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
from statsmodels.tsa.arima_process import ArmaProcess# 生成AR(1)模型的数据
np.random.seed(42)
phi = 0.6
ar = np.array([1, -phi]) # 注意符号
ma = np.array([1]) # MA部分
arma_process = ArmaProcess(ar, ma)
simulated_data = arma_process.generate_sample(nsample=100)
- 绘制ACF和PACF图
fig, ax = plt.subplots(2, 1, figsize=(12,8))# 绘制ACF图
plot_acf(simulated_data, lags=20, ax=ax[0])
ax[0].set_title('Autocorrelation Function (ACF)')# 绘制PACF图
plot_pacf(simulated_data, lags=20, ax=ax[1], method='ywm')
ax[1].set_title('Partial Autocorrelation Function (PACF)')plt.tight_layout()
plt.show()
自回归移动平均模型(Autoregressive Moving Average Model,ARMA)
自回归移动平均模型(Autoregressive Moving Average Model,简称ARMA) 是时间序列分析中一种经典且广泛应用的统计模型。它结合了**自回归(Autoregressive, AR)和移动平均(Moving Average, MA)**两种模型的特点,用于描述和预测平稳时间序列数据。ARMA模型在经济学、金融学、气象学、工程学等多个领域都有着重要的应用。
基本概念与定义
自回归(AR)模型
自回归(Autoregressive, AR)模型 假设当前时间点的值是其前若干时间点值的线性组合,加上一个白噪声误差项。AR模型用于捕捉时间序列中的自相关性。
AR§模型 的数学表达式为:
x t = ϕ 1 x t − 1 + ϕ 2 x t − 2 + ⋯ + ϕ p x t − p + ϵ t x_t = \phi_1 x_{t-1} + \phi_2 x_{t-2} + \cdots + \phi_p x_{t-p} + \epsilon_t xt=ϕ1xt−1+ϕ2xt−2+⋯+ϕpxt−p+ϵt
其中:
- x t x_t xt 是时间序列在时刻 t t t 的值。
- ϕ 1 , ϕ 2 , … , ϕ p \phi_1, \phi_2, \dots, \phi_p ϕ1,ϕ2,…,ϕp 是自回归系数。
- ϵ t \epsilon_t ϵt 是白噪声误差项,满足 E [ ϵ t ] = 0 E[\epsilon_t] = 0 E[ϵt]=0 和 Var ( ϵ t ) = σ 2 \text{Var}(\epsilon_t) = \sigma^2 Var(ϵt)=σ2。
移动平均(MA)模型
移动平均(Moving Average, MA)模型 假设当前时间点的值是前若干时间点误差项的线性组合,加上一个当前的白噪声误差项。MA模型用于捕捉时间序列中的随机波动。
MA(q)模型 的数学表达式为:
x t = ϵ t + θ 1 ϵ t − 1 + θ 2 ϵ t − 2 + ⋯ + θ q ϵ t − q x_t = \epsilon_t + \theta_1 \epsilon_{t-1} + \theta_2 \epsilon_{t-2} + \cdots + \theta_q \epsilon_{t-q} xt=ϵt+θ1ϵt−1+θ2ϵt−2+⋯+θqϵt−q
其中:
- x t x_t xt 是时间序列在时刻 t t t 的值。
- θ 1 , θ 2 , … , θ q \theta_1, \theta_2, \dots, \theta_q θ1,θ2,…,θq 是移动平均系数。
- ϵ t \epsilon_t ϵt 是白噪声误差项,满足 E [ ϵ t ] = 0 E[\epsilon_t] = 0 E[ϵt]=0 和 Var ( ϵ t ) = σ 2 \text{Var}(\epsilon_t) = \sigma^2 Var(ϵt)=σ2。
ARMA模型的定义
自回归移动平均(Autoregressive Moving Average, ARMA)模型 结合了AR和MA模型的特点,用于描述具有自回归和移动平均特征的时间序列数据。
ARMA(p, q)模型 的数学表达式为:
x t = ϕ 1 x t − 1 + ϕ 2 x t − 2 + ⋯ + ϕ p x t − p + ϵ t + θ 1 ϵ t − 1 + θ 2 ϵ t − 2 + ⋯ + θ q ϵ t − q x_t = \phi_1 x_{t-1} + \phi_2 x_{t-2} + \cdots + \phi_p x_{t-p} + \epsilon_t + \theta_1 \epsilon_{t-1} + \theta_2 \epsilon_{t-2} + \cdots + \theta_q \epsilon_{t-q} xt=ϕ1xt−1+ϕ2xt−2+⋯+ϕpxt−p+ϵt+θ1ϵt−1+θ2ϵt−2+⋯+θqϵt−q
其中:
- p p p 是自回归部分的阶数。
- q q q 是移动平均部分的阶数。
- ϕ i \phi_i ϕi 和 θ j \theta_j θj 分别是AR和MA部分的系数。
- ϵ t \epsilon_t ϵt 是白噪声误差项。
ARMA模型 适用于平稳时间序列数据,能够捕捉序列中的长期依赖性(通过AR部分)和短期波动性(通过MA部分)。
ARMA(p, q)模型的数学公式
综合AR和MA模型,ARMA(p, q) 模型的数学公式如下:
x t = ϕ 1 x t − 1 + ϕ 2 x t − 2 + ⋯ + ϕ p x t − p + ϵ t + θ 1 ϵ t − 1 + θ 2 ϵ t − 2 + ⋯ + θ q ϵ t − q x_t = \phi_1 x_{t-1} + \phi_2 x_{t-2} + \cdots + \phi_p x_{t-p} + \epsilon_t + \theta_1 \epsilon_{t-1} + \theta_2 \epsilon_{t-2} + \cdots + \theta_q \epsilon_{t-q} xt=ϕ1xt−1+ϕ2xt−2+⋯+ϕpxt−p+ϵt+θ1ϵt−1+θ2ϵt−2+⋯+θqϵt−q
可以将其表示为:
ϕ ( B ) x t = θ ( B ) ϵ t \phi(B) x_t = \theta(B) \epsilon_t ϕ(B)xt=θ(B)ϵt
其中:
- ϕ ( B ) = 1 − ϕ 1 B − ϕ 2 B 2 − ⋯ − ϕ p B p \phi(B) = 1 - \phi_1 B - \phi_2 B^2 - \cdots - \phi_p B^p ϕ(B)=1−ϕ1B−ϕ2B2−⋯−ϕpBp 是AR多项式。
- θ ( B ) = 1 + θ 1 B + θ 2 B 2 + ⋯ + θ q B q \theta(B) = 1 + \theta_1 B + \theta_2 B^2 + \cdots + \theta_q B^q θ(B)=1+θ1B+θ2B2+⋯+θqBq 是MA多项式。
- B B B 是滞后算子, B x t = x t − 1 B x_t = x_{t-1} Bxt=xt−1。
参考资料
自回归模型(AR )
相关文章:
自回归模型(AR )
最近看到一些模型使用了自回归方法,这里就学习一下整理一下相关内容方便以后查阅。 自回归模型(AR ) 自回归模型(AR )AR 模型的引入AR 模型的定义参数的估计方法模型阶数选择平稳性与因果性条件自相关与偏自相关函数优…...
工具推荐-js爬取工具
现在测试方向都偏向于从js中的接口来入手找到可以进的点,关于快速扫描js文件来发现敏感接口的工具有很多,下面的jjjjs就是其一 项目地址: GitHub - ttstormxx/jjjjjjjjjjjjjs: 爬网站JS文件,自动fuzz api接口,指定api接口&#x…...
CSS学习记录05
CSS外边距 CSS margin属性用于在任何定义的边框之外,为元素周围创建空间。通过CSS,您可以完全控制外边距,一些属性可用于设置元素每侧(上、右、下和左)的外边距。 Margin - 单独的边 CSS拥有用于为元素的每一侧指定…...
差异基因富集分析(R语言——GOKEGGGSEA)
接着上次的内容,上篇内容给大家分享了基因表达量怎么做分组差异分析,从而获得差异基因集,想了解的可以去看一下,这篇主要给大家分享一下得到显著差异基因集后怎么做一下通路富集。 1.准备差异基因集 我就直接把上次分享的拿到这…...
ISO 45001 职业健康安全管理体系的实施具有多方面的重要意义
对企业的意义 提升企业形象:实施 ISO 45001 体系体现了企业对员工职业健康安全的重视和承诺,有助于树立良好的企业形象,增强企业在社会公众、客户、投资者等方面的认可度和美誉度,提升企业的市场竞争力。增强员工满意度和忠诚度&a…...
HarmonyOS-中级(三)
文章目录 合理使用动画和转场Web组件和WebView给应用添加通知和提醒 🏡作者主页:点击! 🤖HarmonyOS专栏:点击! ⏰️创作时间:2024年12月08日12点12分 合理使用动画和转场 动效场景设计&#x…...
报错:Invalid HTTP method: PATCH executing PATCH http://XXX.XXX
分析: 问题在于我使用feignclietn调用PatchMapping方法时,发送的 PATCH 请求方法出现了不匹配的情况。虽然说springboot自带了RESTful风格的方法(GET、POST、PUT、DELETE、PATCH,但是PATCH相较于前几个来说算是新的HTTP方法&#…...
Open WebUI项目源码学习记录(从0开始基于纯CPU环境部署一个网页Chat服务)
感谢您点开这篇文章:D,鼠鼠我是一个代码小白,下文是学习开源项目Open WebUI过程中的一点笔记记录,希望能帮助到你~ 本人菜鸟,持续成长,能力不足有疏漏的地方欢迎一起探讨指正,比心心~…...
WPF Prism 01-BootstrapperShell
Prism介绍 Prism 是一个用于在 WPF、.NET MAUI、Uno 平台和 Xamarin Forms 中构建松耦合、可维护和可测试的 XAML 应用程序的框架。每个平台都有单独的发布版本,并且这些版本将在独立的开发时间线上进行开发。Prism 提供了一组设计模式的实现,这些模式有…...
在Ubuntu22.04 jammy下用qemu模型riscv32环境装鸿蒙(未完成,待续)
在使用实体ESP32C3 安装鸿蒙失败后,就是这个:完全按照手册win10里装Ubuntu 虚拟机然后编译ESP32(主要是想针对ESP32C3和S3)开发板的鸿蒙系统(失败)-CSDN博客转向用qemu模拟环境装鸿蒙 学习手册riscv32_virt/README_zh.md OpenHar…...
第2章:CSS基本语法 --[CSS零基础入门]
CSS(层叠样式表,Cascading Style Sheets)是用来描述HTML或XML(包括各种XML:SVG, MathML 或 XHTML)等文档的外观和格式的语言。以下是CSS的基本语法: 1.选择器 1.元素选择器 元素选择器是基于HTML标签名称来选择元素的。当你使用元素选择器时,你是在告诉浏览器对页面…...
win11 恢复任务栏copilot图标, 亲测有效
1、修改C:\Windows\System32\IntegratedServicesRegionPolicySet.json,解除中国不能使用copilot的限制。 使用Notepad搜索copilot全文搜索,将下面两处的“CN,”删除,删除后如下: {"$comment": "Show Copilot on t…...
Python爬虫实战:抓取拼多多商品详情数据(基于pdd.item_get接口)
在当前的电商市场中,拼多多以其独特的拼团模式和优惠价格吸引了大量用户,成为继淘宝、京东之后的又一大电商平台。对于数据分析和市场研究者来说,获取拼多多的商品详情数据显得尤为重要。本文将介绍如何使用Python爬虫技术,通过调…...
如何在x86模拟器和鸿蒙API9如何使用MQTT模块ohos_mqtt
目录 引言 安装失败的原因 如何编译so文件的x86_64版本 下载源代码 安装NDK 代码编译 安装MQTT软件包 避免MQTT软件包自动升级 设置libs 客户端程序的编写 运行测试 结语 参考文献 引言 在上周的博客(如何在鸿蒙API9和x86模拟器中使用MQTT-CSDN博客&am…...
VB.NET 从入门到精通:开启编程进阶之路
摘要: 本文全面深入地阐述了 VB.NET 的学习路径,从基础的环境搭建与语法入门开始,逐步深入到面向对象编程、图形用户界面设计、数据访问、异常处理、多线程编程以及与其他技术的集成等核心领域,通过详细的代码示例与理论讲解&…...
芝法酱学习笔记(1.3)——SpringBoot+mybatis plus+atomikos实现多数据源事务
一、前言 1.1 业务需求 之前我们在讲解注册和登录的时候,有一个重要的技术点忽略了过去。那就是多数据源的事务问题。 按照我们的业务需求,monitor服务可能涉及同时对监控中心数据库和企业中心数据库进行操作,而我们希望这样的操作在一个事…...
图像处理插件:让小程序焕发视觉新生的秘密武器
在小程序开发中,图像处理是一个重要的环节,它涉及到图片的加载、显示、裁剪、压缩等多个方面。为了简化这一复杂过程,开发者通常会使用图像处理插件。这些插件不仅提供了丰富的图像处理功能,还封装了底层的图像操作逻辑࿰…...
力扣刷题TOP101: 27.BM34 判断是不是二叉搜索树
目录: 目的 思路 复杂度 记忆秘诀 python代码 目的: 给定一个二叉树根节点,请判断这棵树是不是二叉搜索树。 二叉搜索树满足每个节点的左子树上的所有节点均小于当前节点且右子树上的所有节点均大于当前节点。 思路 什么是二叉搜索树&am…...
Linux图形化工具推荐
1、MobaXterm MobaXterm Xserver with SSH, telnet, RDP, VNC and X11 - DownloadFree X server for Windows with tabbed SSH terminal, telnet, RDP, VNC and X11-forwarding - Downloadhttps://mobaxterm.mobatek.net/download.html 2、FinalShell FinalShell SSH工具,服…...
蓝队基础:企业网络安全架构与防御策略
声明 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,此文章为对视频内容稍加整理发布,文章所提到的网站以及内容,只做学习交流,其他…...
数据结构:栈
什么是栈: 栈是一种特殊的线性表,仅能在线性表的一端操作,栈顶允许操作,栈底不允许操作。 栈的特点是:先进后出,或者说是后进先出,从栈顶放入元素的操作叫入栈,取出元素叫出栈。 栈…...
tcp_recvmsg 函数
tcp_recvmsg 函数是 Linux 内核 TCP 栈的一部分,它主要用于处理从 TCP socket 接收数据的过程。这个函数的主要任务是从 TCP 接收队列中提取数据,并将这些数据拷贝到用户空间提供的缓冲区中。 以下是 tcp_recvmsg 函数的一般工作流程和功能解释: 函数签名和参数 int tcp_re…...
《数据结构》(应用题)
历年真题(09~24) 2009 最短路径(Dijkstra青春版) 【2009统考真题】带权图(权值非负,表示边连接的两顶点间的距离)的最短路径问题是找出从初始顶点到目标顶点之间的一条最短路径。假设从初始顶点…...
阿里内部正式开源“Spring Cloud Alibaba (全彩小册)”
年轻的毕业生们满怀希望与忐忑,去寻找、竞争一个工作机会。已经在职的开发同学,也想通过社会招聘或者内推的时机争取到更好的待遇、更大的平台。 然而,面试人群众多,技术市场却相对冷淡,面试的同学们不得不面临着 1 个…...
LeetCode题练习与总结:根据字符出现频率排序--451
一、题目描述 给定一个字符串 s ,根据字符出现的 频率 对其进行 降序排序 。一个字符出现的 频率 是它出现在字符串中的次数。 返回 已排序的字符串 。如果有多个答案,返回其中任何一个。 示例 1: 输入: s "tree" 输出: "eert" …...
Excel VBA学习系列汇总20241205
整理几年工作中,实用VBA代码,绝对干货! 方便自己查询,方便大家学习, 有缘人可复制使用,记得分享给大家免费学习哦! 序历史文章1新学期开始,如何新学期开始,如何按成绩名次…...
给el-table表头添加icon图标,以及鼠标移入icon时显示el-tooltip提示内容
在你的代码中,你已经正确地使用了 el-tooltip 组件来实现鼠标划过加号时显示提示信息。el-tooltip 组件的 content 属性设置了提示信息的内容,placement 属性设置了提示信息的位置。 你需要确保 el-tooltip 组件的 content 属性和 placement 属性设置正…...
基于LLM智能问答系统【阿里云:天池比赛】
流程: 1、分别识别问题及提供的资料文件中的公司名实体,有公司名的走语义检索,无公司名的走结构化召回 2、结构化召回:Qwen根据问题生成sql,执行sql获取结果数值,把结果数值与问题给到Qwen生成最终结果 …...
k8s-Informer概要解析(2)
Client-go 主要用在 k8s 控制器中 什么是 k8s Informer Informer 负责与 kubernetes APIServer 进行 Watch 操作,Watch 的资源,可以是 kubernetes 内置资源对象,也可以 CRD。 Informer 是一个带有本地缓存以及索引机制的核心工具包&#x…...
Leetcode 3376. Minimum Time to Break Locks I
Leetcode 3376. Minimum Time to Break Locks I 1. 解题思路2. 代码实现 题目链接:3376. Minimum Time to Break Locks I 1. 解题思路 这一题我最开始的思路走的是贪婪算法的路子,优先走X的增长,不过很不幸失败了,后面还是暴力…...
介绍8款开源网络安全产品
01 HFish蜜罐 HFish是一款开源的蜜罐系统,用于模拟各种网络服务和应用,以吸引潜在的黑客攻击。它能够记录攻击尝试并收集攻击者的信息,从而帮助网络管理员识别潜在的威胁。HFish支持多种协议和服务,包括HTTP、FTP、SSH等&#…...
vue2面试题|[2024-12-5]
开题答辩终于结束了,又要开始我的前端面试学习啦!!! 1.v-model双向绑定原理 class Vue{constructor(options){this.$options optionsthis.$watchEvent {}if(typeof options.beforeCreate function){options.beforeCreate.bind…...
共筑数字安全防线,2024开源和软件安全沙龙即将启幕
随着数字化转型进程的加快以及开源代码的广泛应用,开源凭借平等、开放、协作、共享的优秀创作模式,逐渐成为推动数字技术创新、加速传统行业转型升级的重要模式。但随着软件供应链日趋复杂多元,使得其安全风险不断加剧,针对软件供…...
目标跟踪领域经典论文解析
亲爱的小伙伴们😘,在求知的漫漫旅途中,若你对深度学习的奥秘、JAVA 、PYTHON与SAP 的奇妙世界,亦或是读研论文的撰写攻略有所探寻🧐,那不妨给我一个小小的关注吧🥰。我会精心筹备,在…...
SQL DQL数据查询语言(后续)
SQL DQL数据查询语言(后续) 1.子查询 在查询语句中的WHERE条件子句中,又嵌套了另外一个查询语句在返回列中嵌套一个查询 where条件中嵌套 要求:查询课程为《高等数学-2》且分数不小于80分的学生的学号和姓名select a.StudentNo,a…...
Gitee配置SSH公钥
采用SSH协议同步Git仓库代码的好处就是高效。在配置好SSH公钥后,不需要每次操作都要输入用户名和密码(主要针对命令行来说)。 以我个人项目为例。 生成 SSH 公钥 1. 通过命令 ssh-keygen 生成 SSH Key: ssh-keygen -t ed25519…...
机器学习——感知机模型
文章目录 前言1.感知机模型介绍1.1基本概念1.2数学表达1.3几何解释1.4优缺点 2.二分类应用2.1应用介绍2.2准备数据集2.2.1环境检查2.2.2数据集介绍2.2.3获取数据2.2.4划分数据集 2.3可视化训练集2.4训练过程2.4.1首轮梯度下降2.4.2多轮梯度下降 2.5可视化分类结果2.6在验证集验…...
如何选择安全、可验证的技术?
澳大利亚信号局的澳大利亚网络安全中心 (ASD 的 ACSC) 发布了一份指导文件,题为《选择安全和可验证的技术》,旨在帮助组织在采购软件(专有或开源)、硬件(例如物联网设备)和云服务(SaaS、MSP 服务…...
STL库中list的使用与迭代器的实现
STL库中list的使用与迭代器的实现 1.使用list中的部分函数assignspliceremoveuniquemeger 2.list的部分功能实现(重点)框架迭代器的实现 1.使用list中的部分函数 assign 功能一:当前链表的节点全部销毁,替换成迭代区间的值 功能二…...
android 常用三方框架
说实话, 我是比较讨厌三方框架的, 比如一个eventbus 底层逻辑就是个观察者模式,当然他的场景涵盖的比较丰富, 单从 单一原则来说, 还是一个简单的观察者模式就能解决问题, 何必要添加那么多文件到我们的项目…...
Browser.js断点续传上传
通过断点续传上传的方式将文件上传到OSS前,您可以指定断点记录点。上传过程中,如果出现网络异常或程序崩溃导致文件上传失败时,将从断点记录处继续上传未上传完成的部分。 attention: 1、 当您使用webpack或browserify等打包工具…...
Java项目实战II基于微信小程序的无中介租房系统(开发文档+数据库+源码)
目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着城市化进程的加速,租房市场日益繁荣&a…...
了解Cocoa Touch框架与主要组件
Cocoa Touch框架详解及其主要组件 一、Cocoa Touch框架概述 Cocoa Touch框架是苹果公司为iOS应用程序开发提供的一套完整的框架,它基于Cocoa框架,并专为触控设备如iPhone、iPad等设计。这套框架不仅包含了构建图形用户界面(GUI)…...
ISO45001职业健康安全管理体系涵盖了丰富的内容
范围与术语 适用范围:明确规定了该标准适用于任何有愿望建立、实施和保持职业健康安全管理体系的组织,旨在使组织能够通过管理体系的有效运行,预防和控制职业健康安全风险,持续改进职业健康安全绩效。术语定义:对职业…...
Spring Boot 整合 Druid 并开启监控
文章目录 1. 引言2. 添加依赖3. 配置数据源4. 开启监控功能5. 自定义 Druid 配置(可选)6. 访问监控页面7. 注意事项8. 总结 Druid 是一个由阿里巴巴开源的高性能数据库连接池,它不仅提供了高效的连接管理功能,还自带了强大的监控和…...
【JAVA高级篇教学】第一篇:Springboot对接通义千问大模型
博主今天打算讲解下Java如何对接阿里云的通义千问大模型,可以自己玩玩ai问答之类的! 目录 一、发展历程 二、API-KEY的获取与配置 三、引用SDK 四、文本模型 1.代码 2.返回数据 3.官方代码案例 五、通义千问VL 1.计量计费 六、查看API-KEY调用额…...
【Windows 同时安装 MySQL5 和 MySQL8 - 详细图文教程】
卸载 MySQL 参考文章: 完美解决Mysql彻底删除并重装_怎么找到mysql并卸载-CSDN博客使用命令卸载mysql_卸载mysql服务命令-CSDN博客 先管理员方式打开 cmd ,切换到 MySQL 安装目录的 bin 文件夹下,执行如下命令,删除 MySQL 服务 my…...
Next.js 系统性教学:深入理解缓存与数据优化策略
更多有关Next.js教程,请查阅: 【目录】Next.js 独立开发系列教程-CSDN博客 目录 前言 1. 缓存的基本概念 1.1 缓存的作用 1.2 Next.js 中的缓存策略 2. Next.js 的缓存机制 2.1 请求记忆化(Request Memoization) 2.1.1 什…...
JAVA数据结构
1.数组 (Array): 固定大小的容器,用于存储相同类型的元素,数组在内存中是连续存储的,支持通过索引快 速访问元素。 int[] numbers = new int[10]; numbers[0] = 1;2.Java Collections Framework (JCF) JCF提供了一组接口和类用于管理和操作集合(如列表,集合,…...
力扣第96题 不同的二叉搜索树
力扣第96题 - 不同的二叉搜索树 题目描述 给定一个整数 n,求以 1 到 n 为节点组成的所有 不同的二叉搜索树(BST) 的个数。 题目分析 二叉搜索树的性质 对于一个二叉搜索树,以 i 为根节点: 左子树的节点值来自 [1, i…...