当前位置: 首页 > news >正文

【返璞归真】score检验:似然比的得分检验(Likelihood Ratio Score Test)

Score检验(Score Test)是一种用于假设检验的方法,特别是在统计建模中,常用于估计模型参数时检验某个假设是否成立。它的全名是“似然比的得分检验”(Likelihood Ratio Score Test),通常用于大样本条件下对参数进行检验。

Score检验的基本思路是基于得分函数(score function),即似然函数对参数的偏导数。得分函数反映了在某个参数值下,似然函数的变化率,表示了该点附近模型拟合优度的敏感性。

主要步骤:

  1. 选择假设

    • 原假设(H0):某些参数等于特定值,通常是零。
    • 备择假设(H1):参数不等于这个特定值。
  2. 得分函数(Score Function)
    得分函数是似然函数对参数的导数。假设我们有似然函数 L ( θ ) L(\theta) L(θ),得分函数就是它的导数:
    U ( θ ) = ∂ ∂ θ log ⁡ L ( θ ) U(\theta) = \frac{\partial}{\partial \theta} \log L(\theta) U(θ)=θlogL(θ)

  3. 计算Score检验统计量
    得分检验的检验统计量通常为:
    S = U ( θ ^ 0 ) T I ( θ ^ 0 ) − 1 U ( θ ^ 0 ) n S = \frac{U(\hat{\theta}_0)^T I(\hat{\theta}_0)^{-1} U(\hat{\theta}_0)}{n} S=nU(θ^0)TI(θ^0)1U(θ^0)
    其中, U ( θ ^ 0 ) U(\hat{\theta}_0) U(θ^0) 是在原假设下估计的得分函数, I ( θ ^ 0 ) I(\hat{\theta}_0) I(θ^0) 是Fisher信息矩阵(即得分函数的二阶导数的期望), n n n 是样本大小。

  4. 比较临界值
    该统计量的分布在原假设成立的条件下通常近似于卡方分布。因此,可以将统计量与卡方分布的临界值进行比较,从而决定是否拒绝原假设。

优点:

  • 大样本性质:Score检验在大样本下非常有效,尤其适用于似然函数没有显式解的情况。
  • 无需完整拟合模型:与其他检验方法(如似然比检验)不同,score检验只需要估计原假设下的得分函数,而不需要拟合完全模型。

应用:

  • 参数检验:用于检验某些参数是否等于零或者其他特定值。
  • 模型拟合:常用于检验复杂模型中某些参数的显著性,尤其是在无法直接计算似然比时。

例子:

假设我们想检验某个回归模型中的某个参数是否为零。我们可以计算这个参数的得分函数,构造Score检验统计量,并与卡方分布的临界值进行比较,从而决定是否拒绝原假设(即该参数为零)。


下面我会通过详细的公式推导来解释Score检验的过程,直接进入数学推导。

1. 假设模型与似然函数

假设我们有一个包含参数 θ \theta θ 的统计模型,样本 X 1 , X 2 , … , X n X_1, X_2, \dots, X_n X1,X2,,Xn 来自这个模型的概率分布,似然函数为 L ( θ ) = P ( X 1 , X 2 , … , X n ∣ θ ) L(\theta) = P(X_1, X_2, \dots, X_n \mid \theta) L(θ)=P(X1,X2,,Xnθ)

通常我们取似然函数的对数,称之为对数似然函数:
ℓ ( θ ) = log ⁡ L ( θ ) \ell(\theta) = \log L(\theta) (θ)=logL(θ)

2. 得分函数

得分函数是对数似然函数对参数 θ \theta θ 的一阶导数:
U ( θ ) = ∂ ∂ θ ℓ ( θ ) U(\theta) = \frac{\partial}{\partial \theta} \ell(\theta) U(θ)=θ(θ)
即:
U ( θ ) = ∂ ∂ θ log ⁡ L ( θ ) U(\theta) = \frac{\partial}{\partial \theta} \log L(\theta) U(θ)=θlogL(θ)

3. Fisher 信息矩阵

Fisher信息矩阵是得分函数的二阶导数的期望:
I ( θ ) = − E [ ∂ 2 ∂ θ 2 ℓ ( θ ) ] I(\theta) = - \mathbb{E} \left[ \frac{\partial^2}{\partial \theta^2} \ell(\theta) \right] I(θ)=E[θ22(θ)]
这描述了参数估计的不确定性。它是一个关于参数 θ \theta θ 的矩阵(如果参数有多个)。

4. 在原假设下的得分

在进行Score检验时,我们通常有一个原假设 H 0 : θ = θ 0 H_0: \theta = \theta_0 H0:θ=θ0,我们需要检验原假设下的得分统计量。

θ ^ \hat{\theta} θ^ 是最大似然估计(MLE),我们构造原假设下的得分为:
U ( θ 0 ) = ∂ ∂ θ ℓ ( θ ) ∣ θ = θ 0 U(\theta_0) = \frac{\partial}{\partial \theta} \ell(\theta) \Big|_{\theta = \theta_0} U(θ0)=θ(θ) θ=θ0

5. Score检验统计量

Score检验的统计量 S S S 通过以下公式定义:
S = U ( θ ^ 0 ) T [ I ( θ ^ 0 ) ] − 1 U ( θ ^ 0 ) S = U(\hat{\theta}_0)^T \left[ I(\hat{\theta}_0) \right]^{-1} U(\hat{\theta}_0) S=U(θ^0)T[I(θ^0)]1U(θ^0)
其中:

  • θ ^ 0 \hat{\theta}_0 θ^0 是在原假设下的估计值;
  • I ( θ ^ 0 ) I(\hat{\theta}_0) I(θ^0) 是Fisher信息矩阵在 θ 0 \theta_0 θ0 下的值。

6. 统计量的分布

在原假设 H 0 H_0 H0 成立时,Score检验的统计量 S S S 近似服从卡方分布:
S ∼ χ k 2 S \sim \chi^2_k Sχk2
其中 k k k 是参数空间的维度,即 θ \theta θ 的维度。

7. 决策规则

我们根据检验统计量与卡方分布的临界值 χ k 2 ( α ) \chi^2_k(\alpha) χk2(α) 进行比较:

  • 如果 S > χ k 2 ( α ) S > \chi^2_k(\alpha) S>χk2(α),拒绝原假设 H 0 H_0 H0
  • 如果 S ≤ χ k 2 ( α ) S \leq \chi^2_k(\alpha) Sχk2(α),不拒绝原假设。

8. 结论

通过这些步骤,Score检验给出了一个基于得分函数的检验统计量,该统计量的分布特性(卡方分布)使得它在大样本条件下非常有效,且不需要完全估计整个模型的参数。


通过一个具体的案例来详细展示Score检验的使用过程。

案例:检验正态分布的均值

假设我们有一组样本数据,来自于一个正态分布 N ( μ , σ 2 ) N(\mu, \sigma^2) N(μ,σ2),其中 μ \mu μ 是均值, σ 2 \sigma^2 σ2 是方差。我们想要检验正态分布的均值 μ \mu μ 是否等于某个特定值 μ 0 \mu_0 μ0

步骤 1:设定假设

我们设定原假设和备择假设:

  • 原假设 H 0 : μ = μ 0 H_0: \mu = \mu_0 H0:μ=μ0
  • 备择假设 H 1 : μ ≠ μ 0 H_1: \mu \neq \mu_0 H1:μ=μ0
步骤 2:似然函数和对数似然函数

正态分布的概率密度函数为:
f ( x i ∣ μ , σ 2 ) = 1 2 π σ 2 exp ⁡ ( − ( x i − μ ) 2 2 σ 2 ) f(x_i \mid \mu, \sigma^2) = \frac{1}{\sqrt{2\pi \sigma^2}} \exp\left( - \frac{(x_i - \mu)^2}{2\sigma^2} \right) f(xiμ,σ2)=2πσ2 1exp(2σ2(xiμ)2)

对于一个样本 X 1 , X 2 , … , X n X_1, X_2, \dots, X_n X1,X2,,Xn,似然函数为:
L ( μ , σ 2 ) = ∏ i = 1 n f ( x i ∣ μ , σ 2 ) L(\mu, \sigma^2) = \prod_{i=1}^n f(x_i \mid \mu, \sigma^2) L(μ,σ2)=i=1nf(xiμ,σ2)

对数似然函数是:
ℓ ( μ , σ 2 ) = log ⁡ L ( μ , σ 2 ) = − n 2 log ⁡ ( 2 π σ 2 ) − 1 2 σ 2 ∑ i = 1 n ( x i − μ ) 2 \ell(\mu, \sigma^2) = \log L(\mu, \sigma^2) = - \frac{n}{2} \log(2\pi \sigma^2) - \frac{1}{2\sigma^2} \sum_{i=1}^n (x_i - \mu)^2 (μ,σ2)=logL(μ,σ2)=2nlog(2πσ2)2σ21i=1n(xiμ)2

步骤 3:得分函数

得分函数是对数似然函数对 μ \mu μ 的一阶导数:
U ( μ ) = ∂ ∂ μ ℓ ( μ , σ 2 ) U(\mu) = \frac{\partial}{\partial \mu} \ell(\mu, \sigma^2) U(μ)=μ(μ,σ2)

我们计算该导数:
U ( μ ) = 1 σ 2 ∑ i = 1 n ( x i − μ ) U(\mu) = \frac{1}{\sigma^2} \sum_{i=1}^n (x_i - \mu) U(μ)=σ21i=1n(xiμ)

步骤 4:Fisher信息矩阵

Fisher信息矩阵是得分函数的二阶导数的期望。我们首先对得分函数进行二阶导数:
I ( μ ) = − E [ ∂ 2 ∂ μ 2 ℓ ( μ , σ 2 ) ] I(\mu) = - \mathbb{E} \left[ \frac{\partial^2}{\partial \mu^2} \ell(\mu, \sigma^2) \right] I(μ)=E[μ22(μ,σ2)]

计算该二阶导数:
I ( μ ) = n σ 2 I(\mu) = \frac{n}{\sigma^2} I(μ)=σ2n

步骤 5:Score检验统计量

我们现在来计算Score检验的统计量。首先,我们在原假设下(即 μ = μ 0 \mu = \mu_0 μ=μ0)计算得分函数:
U ( μ 0 ) = 1 σ 2 ∑ i = 1 n ( x i − μ 0 ) U(\mu_0) = \frac{1}{\sigma^2} \sum_{i=1}^n (x_i - \mu_0) U(μ0)=σ21i=1n(xiμ0)

然后计算Score检验的统计量:
S = U ( μ 0 ) 2 ⋅ 1 I ( μ 0 ) = ( 1 σ 2 ∑ i = 1 n ( x i − μ 0 ) ) 2 ⋅ σ 2 n S = U(\mu_0)^2 \cdot \frac{1}{I(\mu_0)} = \left( \frac{1}{\sigma^2} \sum_{i=1}^n (x_i - \mu_0) \right)^2 \cdot \frac{\sigma^2}{n} S=U(μ0)2I(μ0)1=(σ21i=1n(xiμ0))2nσ2
S = 1 n ( ∑ i = 1 n ( x i − μ 0 ) ) 2 S = \frac{1}{n} \left( \sum_{i=1}^n (x_i - \mu_0) \right)^2 S=n1(i=1n(xiμ0))2

步骤 6:检验统计量的分布

在原假设 H 0 : μ = μ 0 H_0: \mu = \mu_0 H0:μ=μ0 下,Score检验的统计量 S S S 服从卡方分布 χ 1 2 \chi^2_1 χ12,因为 μ \mu μ 只有一个参数。

步骤 7:进行假设检验
  1. 计算样本数据 X 1 , X 2 , … , X n X_1, X_2, \dots, X_n X1,X2,,Xn 中的 S S S 值。
  2. 比较该统计量 S S S 与卡方分布的临界值 χ 1 2 ( α ) \chi^2_1(\alpha) χ12(α),通常 α = 0.05 \alpha = 0.05 α=0.05
  • 如果 S > χ 1 2 ( α ) S > \chi^2_1(\alpha) S>χ12(α),我们拒绝原假设,认为 μ ≠ μ 0 \mu \neq \mu_0 μ=μ0
  • 如果 S ≤ χ 1 2 ( α ) S \leq \chi^2_1(\alpha) Sχ12(α),我们不拒绝原假设,认为没有足够证据表明 μ ≠ μ 0 \mu \neq \mu_0 μ=μ0

例子:具体计算

假设我们有以下样本数据:
x 1 = 2.3 , x 2 = 2.5 , x 3 = 2.7 , x 4 = 2.9 , x 5 = 3.1 x_1 = 2.3, \, x_2 = 2.5, \, x_3 = 2.7, \, x_4 = 2.9, \, x_5 = 3.1 x1=2.3,x2=2.5,x3=2.7,x4=2.9,x5=3.1
并且我们想要检验均值是否为 μ 0 = 2.5 \mu_0 = 2.5 μ0=2.5,且已知样本方差 σ 2 = 0.1 \sigma^2 = 0.1 σ2=0.1

  1. 计算得分函数:
    U ( 2.5 ) = 1 0.1 ( ( 2.3 − 2.5 ) + ( 2.5 − 2.5 ) + ( 2.7 − 2.5 ) + ( 2.9 − 2.5 ) + ( 3.1 − 2.5 ) ) = 1 0.1 ( − 0.2 + 0 + 0.2 + 0.4 + 0.6 ) = 1 0.1 × 1 = 10 U(2.5) = \frac{1}{0.1} \left( (2.3 - 2.5) + (2.5 - 2.5) + (2.7 - 2.5) + (2.9 - 2.5) + (3.1 - 2.5) \right) = \frac{1}{0.1} \left( -0.2 + 0 + 0.2 + 0.4 + 0.6 \right) = \frac{1}{0.1} \times 1 = 10 U(2.5)=0.11((2.32.5)+(2.52.5)+(2.72.5)+(2.92.5)+(3.12.5))=0.11(0.2+0+0.2+0.4+0.6)=0.11×1=10

  2. 计算Fisher信息矩阵:
    I ( 2.5 ) = 5 0.1 = 50 I(2.5) = \frac{5}{0.1} = 50 I(2.5)=0.15=50

  3. 计算Score检验统计量:
    S = U ( 2.5 ) 2 I ( 2.5 ) = 1 0 2 50 = 100 50 = 2 S = \frac{U(2.5)^2}{I(2.5)} = \frac{10^2}{50} = \frac{100}{50} = 2 S=I(2.5)U(2.5)2=50102=50100=2

  4. 查找卡方分布的临界值:

    • 对于 α = 0.05 \alpha = 0.05 α=0.05 和自由度 k = 1 k = 1 k=1,卡方分布的临界值 χ 1 2 ( 0.05 ) = 3.841 \chi^2_1(0.05) = 3.841 χ12(0.05)=3.841
  5. 比较统计量与临界值:
    S = 2 < 3.841 S = 2 < 3.841 S=2<3.841
    因此,我们不能拒绝原假设,认为均值 μ = 2.5 \mu = 2.5 μ=2.5 是合理的。

总结

通过这个案例,我们展示了如何应用Score检验来检验正态分布的均值。我们通过计算得分函数、Fisher信息矩阵,得到检验统计量,并根据卡方分布进行假设检验。


Score检验的依据

Score检验的依据主要来源于大样本统计理论中的得分函数渐近分布的性质。要理解为什么Score得分能够用来进行假设检验,我们需要从以下几个核心的概念和推导来详细解释:

1. 得分函数与似然函数

假设我们有一个模型,包含未知的参数 θ \theta θ,而我们从该模型中获取了样本数据 X 1 , X 2 , … , X n X_1, X_2, \dots, X_n X1,X2,,Xn。似然函数 L ( θ ) L(\theta) L(θ) 描述了参数 θ \theta θ 给定数据的可能性,具体是:
L ( θ ) = P ( X 1 , X 2 , … , X n ∣ θ ) L(\theta) = P(X_1, X_2, \dots, X_n \mid \theta) L(θ)=P(X1,X2,,Xnθ)
而我们对似然函数取对数,得到对数似然函数:
ℓ ( θ ) = log ⁡ L ( θ ) \ell(\theta) = \log L(\theta) (θ)=logL(θ)

得分函数是对数似然函数关于参数 θ \theta θ 的一阶导数:
U ( θ ) = ∂ ∂ θ ℓ ( θ ) U(\theta) = \frac{\partial}{\partial \theta} \ell(\theta) U(θ)=θ(θ)
得分函数的直观意义是:它反映了似然函数相对于参数变化的灵敏度,即数据给定时,参数的变化方向和大小。得分函数为零的点通常是最大似然估计(MLE)的候选点。

2. 大样本渐近理论

在大样本条件下,似然估计 θ ^ \hat{\theta} θ^ 具有一致性和渐近正态性,也就是说,随着样本量 n → ∞ n \to \infty n θ ^ \hat{\theta} θ^ 会收敛到真实值 θ 0 \theta_0 θ0,并且其分布趋向于正态分布。

  • 似然函数在 θ 0 \theta_0 θ0 处取得最大值(即最大似然估计 θ ^ \hat{\theta} θ^),得分函数在 θ 0 \theta_0 θ0 处趋于零。
  • 得分函数的期望 E [ U ( θ 0 ) ] = 0 \mathbb{E}[U(\theta_0)] = 0 E[U(θ0)]=0,并且在 θ 0 \theta_0 θ0 处的方差由Fisher信息矩阵表示,即:
    I ( θ 0 ) = − E [ ∂ 2 ℓ ( θ 0 ) ∂ θ 2 ] I(\theta_0) = - \mathbb{E}\left[\frac{\partial^2 \ell(\theta_0)}{\partial \theta^2}\right] I(θ0)=E[θ22(θ0)]
    Fisher信息矩阵刻画了估计量的精度。

3. 渐近正态性与得分检验

在大样本条件下,得分函数 U ( θ ) U(\theta) U(θ) 和最大似然估计 θ ^ \hat{\theta} θ^ 之间有一种近似关系。具体地,得分函数可以用来检验原假设 H 0 : θ = θ 0 H_0: \theta = \theta_0 H0:θ=θ0 是否成立。

通过大样本的渐近理论,如果我们假设参数 θ \theta θ 在原假设 H 0 H_0 H0 下等于某个特定值 θ 0 \theta_0 θ0,则得分函数 U ( θ 0 ) U(\theta_0) U(θ0) 的分布近似为:
U ( θ 0 ) ∼ N ( 0 , I ( θ 0 ) ) U(\theta_0) \sim \mathcal{N}(0, I(\theta_0)) U(θ0)N(0,I(θ0))
换句话说,在原假设 H 0 H_0 H0 下,得分函数趋近于正态分布,均值为零,方差为Fisher信息矩阵的逆。

4. Score检验的构造与依据

Score检验的核心思想就是利用得分函数的这一渐近性质来进行假设检验。具体地,我们检验某个参数是否为特定值(如 θ 0 \theta_0 θ0)。在原假设 H 0 : θ = θ 0 H_0: \theta = \theta_0 H0:θ=θ0 下,得分函数的期望为零,且其方差由Fisher信息矩阵给出。因此,我们可以构造如下的检验统计量:
S = U ( θ ^ 0 ) T I ( θ ^ 0 ) − 1 U ( θ ^ 0 ) S = U(\hat{\theta}_0)^T I(\hat{\theta}_0)^{-1} U(\hat{\theta}_0) S=U(θ^0)TI(θ^0)1U(θ^0)
在原假设 H 0 H_0 H0 下,统计量 S S S 服从卡方分布 χ k 2 \chi^2_k χk2(其中 k k k 是参数的维度),因此可以根据卡方分布进行假设检验。

为什么得分函数能用来判断?
  1. 得分函数的渐近零性:在原假设 H 0 H_0 H0 下,得分函数趋于零。通过计算得分函数的值,我们实际上在测试是否存在显著的偏离原假设。如果得分函数不接近零,那么原假设就可能被拒绝。

  2. 大样本近似正态性:得分函数在大样本下服从正态分布,均值为零,方差由Fisher信息矩阵控制。因此,得分函数的平方和标准化后(通过 Fisher信息矩阵)可以构成检验统计量,这个统计量在大样本下呈现卡方分布,从而可以用来做假设检验。

5. 总结

Score检验的依据是基于得分函数在大样本下的渐近分布特性:

  • 得分函数反映了似然函数对参数变化的灵敏度。
  • 在原假设下,得分函数的期望为零,并且其分布近似正态,标准化后服从卡方分布。
  • 因此,Score检验通过得分函数与Fisher信息矩阵的组合,构造检验统计量,利用卡方分布来进行假设检验。

通过这一过程,Score检验能够有效地判断原假设是否成立,尤其适用于大样本的情形。

相关文章:

【返璞归真】score检验:似然比的得分检验(Likelihood Ratio Score Test)

Score检验&#xff08;Score Test&#xff09;是一种用于假设检验的方法&#xff0c;特别是在统计建模中&#xff0c;常用于估计模型参数时检验某个假设是否成立。它的全名是“似然比的得分检验”&#xff08;Likelihood Ratio Score Test&#xff09;&#xff0c;通常用于大样…...

使用skywalking,grafana实现从请求跟踪、 指标收集和日志记录的完整信息记录

Skywalking是由国内开源爱好者吴晟开源并提交到Apache孵化器的开源项目&#xff0c; 2017年12月SkyWalking成为Apache国内首个个人孵化项目&#xff0c; 2019年4月17日SkyWalking从Apache基金会的孵化器毕业成为顶级项目&#xff0c; 目前SkyWalking支持Java、 .Net、 Node.js、…...

蓝桥杯刷题——day1

蓝桥杯刷题——day1 题目一题干题目解析代码 题目二题干题目解析代码 题目一 题干 给定一个字符串 s &#xff0c;验证 s 是否是 回文串 &#xff0c;只考虑字母和数字字符&#xff0c;可以忽略字母的大小写。本题中&#xff0c;将空字符串定义为有效的 回文串 。 题目链接&a…...

ORACLE RAC ADG备库报错ORA-04021: timeout occurred while waiting to lock object

问题&#xff1a;核心的灾备 RAC ADG 备库&#xff0c;这两天频繁重启&#xff0c;并且报如下错误&#xff0c;通过查看MOS&#xff0c;发现是个BUG ADG备库的ALERT错误日志如下&#xff1a; Errors in file /u01/app/oracle/diag/rdbms/hxxxsz/hxxxsz1/trace/hxxxsz1_lgwr_69…...

虚拟机Ubuntu以及pwn的工具安装

之前pwn入门在kali上装了&#xff0c;师兄说用Ubuntu会比kali好得多&#xff0c;更有利于pwn的学习&#xff0c;本着少走弯路的想法我就决定装一个&#xff0c;再把工具什么的配了 一、Ubuntu的安装 参考博客及镜像来源&#xff1a;VMware虚拟机安装Ubuntu教程(超详细)_vmwar…...

MeiliSearch:一款轻量级开源搜索引擎

Meilisearch 是由 Meili &#xff08;一家总部位于法国的软件开发公司&#xff09;创建的搜索引擎&#xff0c;目前在 Github 上有 47.9k stars。 Meillisearch 具备以下特色功能&#xff08;ChatGPT-4o 翻译&#xff09;&#xff1a; 混合搜索&#xff1a;结合语义搜索和全文…...

数据库入门

基本概念 数据库&#xff1a;DataBase简称DB&#xff0c;是一个用于存储和管理数据的仓库。 就像我们每天访问的网站Bilibili&#xff0c;OA、ERP和CRM等内部管理系统&#xff0c;以及我们每天使用的腾讯新闻和Tiktok应用程序一样&#xff0c;我们看到的数据实际上存储在数据库…...

WebGIS城市停水及影响范围可视化实践

目录 前言 一、相关信息介绍 1、停水信息的来源 2、停水包含的相关信息 二、功能简介 1、基础小区的整理 2、停水计划的管理 三、WebGIS空间可视化 1、使用到的组件 2、停水计划的展示 3、影响小区的展示 4、实际效果 四、总结 前言 城市停水&#xff0c;一个看似…...

【Syncfusion系列】Diagram 杂谈 第三篇 序列化和反序列化

目录 序列化保存C# 代码示例&#xff0c; 方式1 &#xff1a;C# 代码示例&#xff0c; 方式2 &#xff1a; 反序列化加载C# 代码示例, 方式1&#xff1a;C# 代码示例, 方式2&#xff1a; **如何序列化自定义属性**序列化和反序列化都存在的一个问题解决方式 图表是否已修改&…...

#思科模拟器通过服务配置保障无线网络安全Radius

演示拓扑图&#xff1a; 搭建拓扑时要注意&#xff1a; 只能连接它的Ethernet接口&#xff0c;不然会不通 MAC地址绑定 要求 &#xff1a;通过配置MAC地址过滤禁止非内部员工连接WiFi 打开无线路由器GUI界面&#xff0c;点开下图页面&#xff0c;配置路由器无线网络MAC地址过…...

Repo管理

文章目录 前言Repo介绍清单仓库清单仓库的组成 初始化Repo同步远程仓库Repo实际应用 前言 我们知道&#xff0c;Git是用来管理某一个仓库&#xff0c;那当一个项目用到了多个仓库时&#xff0c;怎么来同步管理这些仓库呢&#xff1f;这个时候就可以引入Repo管理。 Repo介绍 …...

代码随想录算法训练营第四十八/九天 | 图 | 深度搜索 | 广度搜索

Day 48 49 总结 自己实现中遇到哪些困难今日收获&#xff0c;记录一下自己的学习时间 11:40 - 14:3012:30 - 13:30, 14:45 - 17:10 图论 深度收缩 & 广度搜索 并查集 最小生成树 拓扑排序 最短路径算法 图论基础 图 二维空间里&#xff0c;多个点之间相互连接图的…...

JavaEE初阶——多线程(线程安全-锁)

复习上节内容&#xff08;部分-掌握程度不够的&#xff09; 加锁&#xff0c;解决线程安全问题。 synchronized关键字&#xff0c;对锁对象进行加锁。 锁对象&#xff0c;可以是随便一个Object对象&#xff08;或者其子类的对象&#xff09;&#xff0c;需要关注的是&#xff…...

搭建大语言模型

安装和配置Ollama 首先在官网上下载Ollama&#xff0c;同时支持window&#xff0c;linux&#xff0c;macos系统。 下载下来是一个压缩包&#xff0c;直接解压缩即可&#xff0c;然后点击安装程序开始安装。 linux下载 执行以下命令&#xff0c;即可自动下载安装&#xff0c…...

QT6 Socket通讯封装(TCP/UDP)

为大家分享一下最近封装的以太网socket通讯接口 效果演示 如图&#xff0c;界面还没优化&#xff0c;后续更新 废话不多说直接上教程 添加库 如果为qmake项目中&#xff0c;在.pro文件添加 QT network QT core gui QT networkgreaterThan(QT_MAJOR_VERS…...

Linux中 vim 常用命令大全详细讲解

文章目录 前言一、Vim 基本操作 &#x1f579;️1.1 打开或创建1.2 退出编辑1.3 模式切换 二、Vim 光标移动命令 ↕️2.1 基本移动2.2 行内移动2.3. 单词移动2.4. 页面移动2.5. 行跳转 三、Vim 文本编辑命令 &#x1f4cb;3.1 插入和删除3.2 复制、剪切与粘贴3.3 替换与修改 四…...

vs 调试

常用&#xff1a; 调试->窗口-> 断点 监视 自动窗口 局部变量 调用堆栈 内存 反汇编&#xff08;也可以右键&#xff0c;转到反汇编&#xff09; 寄存器 快捷键&#xff1a; F5:启用调试&#xff0c;经常用来跳到下一个断点处 F9创建断点和取消断点。断点的重要作用&…...

使用 Kubernetes 部署 Redis 主从及 Sentinel 高可用架构(未做共享存储版)

文章目录 使用 Kubernetes 部署 Redis 主从及 Sentinel 高可用架构Redis 主从架构部署 (1.yaml)Redis Sentinel 部署 (2.yaml)Sentinel 服务暴露 (3.yaml)部署步骤总结 使用 Kubernetes 部署 Redis 主从及 Sentinel 高可用架构 本文将详细介绍如何在 Kubernetes 中部署 Redis …...

PLC网关,plc远程通信 —— 跨越距离远程控制运维升级

在日新月异的工业4.0时代&#xff0c;智能化、网络化已成为制造业转型升级的关键词。其中&#xff0c;PLC&#xff08;可编程逻辑控制器&#xff09;作为工业自动化控制的核心设备&#xff0c;其远程通信技术的突破&#xff0c;正引领着一场前所未有的工业变革。今天&#xff0…...

MySQL的历史和地位

秋招之后&#xff0c;开始深入学习后端开发知识啦。把学到的东西分享给大家最开心啦。就从MySQL开始吧。 首先说一下MySQL的历史和地位。主要是看一下我们为什么要学习&#xff0c;而不是说让我们学什么我们就学什么。 地位 这张图是我从DB-Engines截取的2024年12月最新的数据…...

Day12 洛谷 1320+1152+1615

零基础洛谷刷题记录 Day01 2024.11.18 Day02 2024.11.25 Day03 2024.11.26 Day04 2024.11.28 Day05 2024.11.29 Day06 2024 12.02 Day07 2024.12.03 Day08 2024 12 05 Day09 2024.12.07 Day10 2024.12.09 Day11 2024.12.10 Day12 2024.12.14 文章目录 零基础洛谷刷题记录1320&…...

四十六:如何使用Wireshark解密TLS/SSL报文?

TLS/SSL是保护网络通信的重要协议&#xff0c;其加密机制可以有效地防止敏感信息被窃取。然而&#xff0c;在调试网络应用或分析安全问题时&#xff0c;解密TLS/SSL流量是不可避免的需求。本文将介绍如何使用Wireshark解密TLS/SSL报文。 前提条件 在解密TLS/SSL报文之前&…...

【网络安全设备系列】7、流量监控设备

0x00 定义: 网络流量控制是一种利用软件或硬件方式来实现对电脑网络流量的控制。它的最主要方法&#xff0c;是引入QoS的概念&#xff0c;从通过为不同类型的 网络数据包标记&#xff0c;从而决定数据包通行的优先次序。 0x01 类型: 流控技术分为两种&#xff1a; 一种是…...

SpringCloud无介绍快使用,sentinel注解@SentinelResource的基本使用(二十三)

TOC 问题背景 从零开始学springcloud微服务项目 注意事项&#xff1a; 约定 > 配置 > 编码IDEA版本2021.1这个项目&#xff0c;我分了很多篇章&#xff0c;每篇文章一个操作步骤&#xff0c;目的是显得更简单明了controller调service&#xff0c;service调dao默认安装ngi…...

vue3 父组件调用子组件 el-drawer 抽屉

之前 Vue3 只停留在理论&#xff0c;现在项目重构&#xff0c;刚好可以系统的实战一下&#xff0c;下面是封装了一个抽屉表单组件&#xff0c;直接在父组件中通过调用子组件的方法打开抽屉&#xff1a; 父组件&#xff1a; <template><div id"app"><…...

JVM运行时数据区内部结构

VM内部结构 对于jvm来说他的内部结构主要分成三个部分&#xff0c;分别是类加载阶段&#xff0c;运行时数据区&#xff0c;以及垃圾回收区域&#xff0c;类加载我们放到之后来总结&#xff0c;今天先复习一下类运行区域 首先这个区域主要是分成如下几个部分 下面举个例子来解释…...

luckysheet与superslide冲突解决

[现象]控制台报错、界面无法操作 $是jquery。查看源码&#xff0c;发现mousewheel方法来自插件mousewheel&#xff0c;luckysheet初始应该会将mousewheel挂载在jquery上。 在控制台打印jquery取dom及其方法&#xff0c;结果如下&#xff1a; 不存在mousewheel方法&#xff0c…...

ubuntu环境调用onnxruntime找不到GPU的问题

问题&#xff1a; python安装好onnxruntime无法调用gpu。 通过如下代码测试&#xff0c;均为False。 import onnxruntime as ort# 检查ONNX Runtime是否支持CUDA def is_onnxruntime_cuda_supported():return ort.get_device() GPU# 检查ONNX Runtime是否使用CUDA def is_onn…...

【iOS】《Effective Objective-C 2.0》阅读笔记(一)

文章目录 前言了解OC语言的起源在类的头文件中尽量少引入其他头文件多用字面量语法&#xff0c;少用与之等价的方法字面量数值字面量数组字面量字典 多用类型常量&#xff0c;少用#define预处理指令用枚举法表示状态、选项、状态码 总结 前言 最近开始阅读一些iOS开发的相关书籍…...

linux在没网的情况下如何校验时间 超详细拿来即用

一、没有校时服务器的话 1、手动修改 sudo date --set"2024-06-17 13:44:00"二、有校时服务器的话 1、手动校时 ntpdate 14.193.73.22、自动校时 写一个校时服务脚本 14.193.73.2 是校验时间服务器 #!/bin/sh while true dontpdate 14.193.73.2sleep 5;hwclock…...

springBoot项目框架创建后缺少iml文件

springBoot项目创建好之后缺少iml文件 解决方案&#xff1a; 按两下ctrl出现一下内容 在右上角project的下拉框中选中缺少文件的项目 输入 mvn idea:module 回车执行重构...

【OJ题解】最长回文子串

个人主页: 起名字真南的CSDN博客 个人专栏: 【数据结构初阶】 &#x1f4d8; 基础数据结构【C语言】 &#x1f4bb; C语言编程技巧【C】 &#x1f680; 进阶C【OJ题解】 &#x1f4dd; 题解精讲 目录 **题目链接****解题思路****1. 初步判断****2. 回文子串性质****3. 判断是…...

kubeadm安装K8s高可用集群之集群初始化及master/node节点加入calico网络插件安装

系列文章目录 1.kubeadm安装K8s高可用集群之基础环境配置 2.kubeadm安装K8s集群之高可用组件keepalivednginx及kubeadm部署 3.kubeadm安装K8s高可用集群之集群初始化及master/node节点加入集群calico网络插件安装 kubeadm安装K8s高可用集群之集群初始化及master/node节点加入ca…...

动态设置路由标题title;动态设置路由配置meta;独享的守卫beforeEnter

案例&#xff1a;同一个页面即使新增&#xff0c;又是编辑、详情页。导致路由配置里的title无法固定 通过路由的独享的守卫beforeEnter解决配置&#xff1b;同时beforeEnter一定程度上可以帮助处理vue3缓存问题 {path: "methodApplicationFormOperate",name: "M…...

探秘UI自动化测试工具Playwright工作原理

相关文章&#xff1a;playwright系列教程 Playwright简介 微软出品的强大工具 Playwright是由微软推出的一款开源自动化测试工具&#xff0c;专门为Web测试和自动化场景而设计。在现代Web开发的快节奏环境下&#xff0c;其凭借出色的性能和丰富的功能&#xff0c;成为众多开…...

111.【C语言】数据结构之二叉树的销毁函数

目录 1.知识回顾 2.分析 3.代码 后序遍历销毁(最简洁) 前序遍历销毁(不推荐) 中序遍历销毁(不推荐) 4.将函数嵌入main函数中执行 1.知识回顾 106.【C语言】数据结构之二叉树的三种递归遍历方式 2.分析 销毁二叉树需要按照一定的顺序去销毁,例如:先销毁根还是先销毁根…...

WPF xaml 文件详解

<div id"content_views" class"htmledit_views"><h2><a name"t0"></a>1.总述</h2> 创建好了WPF项目后&#xff0c;最重要的是对 App和MainWindow的理解&#xff0c;在一开始的时候&#xff0c;极容易就直接在Main…...

win10配置免密ssh登录远程的ubuntu

为了在终端ssh远程和使用VScode远程我的VM上的ubuntu不需要设置密码&#xff0c;需要在win10配置免密ssh登录远程的ubuntu。 在win10打开cmd&#xff0c;执行下面的代码生成密钥对&#xff08;会提示进行设置&#xff0c;按照默认的配置就行&#xff0c;一直回车&#xff09;&…...

Android命令行工具--apksigner

使用 Android SDK Build Tools 修订版 24.0.3 及更高版本中提供的 apksigner 工具为 APK 签名&#xff0c;并确保 APK 的签名将在该 APK 支持的所有版本 Android 平台上成功通过验证。 注意&#xff1a;如果在使用 apksigner 为 APK 签名后又对 APK 做了更改&#xff0c;则 APK…...

Linux高性能服务器编程 | 读书笔记 |9.定时器

9. 定时器 网络程序需要处理定时事件&#xff0c;如定期检测一个客户连接的活动状态。服务器程序通常管理着众多定时事件&#xff0c;有效地组织这些定时事件&#xff0c;使其在预期的时间被触发且不影响服务器的主要逻辑&#xff0c;对于服务器的性能有至关重要的影响。为此&…...

UE5制作伤害浮动数字

效果演示&#xff1a; 首先创建一个控件UI 添加画布和文本 文本设置样式 添加伤害浮动动画&#xff0c;根据自己喜好调整&#xff0c;我设置了缩放和不透明度 添加绑定 转到事件图表&#xff0c;事件构造设置动画 创建actor蓝图类 添加widget 获取位置 设置位移 创建一个被击中…...

双亲委派机制是Java类加载器的一种工作模式

双亲委派机制是Java类加载器的一种工作模式&#xff0c;确保了类加载的一致性和安全性。以下是对双亲委派机制的详细解析&#xff1a; 一、定义与工作原理 双亲委派机制&#xff08;Parent Delegation Model&#xff09;要求除了顶层的启动类加载器外&#xff0c;其余的类加载…...

AI智算-k8s部署大语言模型管理工具Ollama

文章目录 简介k8s部署OllamaOpen WebUI访问Open-WebUI 简介 Github&#xff1a;https://github.com/ollama/ollama 官网&#xff1a;https://ollama.com/ API&#xff1a;https://github.com/ollama/ollama/blob/main/docs/api.md Ollama 是一个基于 Go 语言开发的可以本地运…...

百度23届秋招研发岗A卷

百度23届秋招研发岗A卷 2024/12/16 1.下面关于 SparkSQL 中 Catalyst 优化器的说法正确的是&#xff08;ABC&#xff09; A.Catalyst 优化器利用高级编程语言功能&#xff08;例如 Scala 的模式匹配&#xff09;来构建可扩展的查询优化器 B.Catalyst 包含树和操作树的规则集…...

米哈游大数据面试题及参考答案

怎么判断两个链表是否相交?怎么优化? 判断两个链表是否相交可以采用多种方法。 一种方法是使用双指针。首先分别遍历两个链表,得到两个链表的长度。然后让长链表的指针先走两个链表长度差的步数。之后,同时移动两个链表的指针,每次比较两个指针是否指向相同的节点。如果指…...

Android14 AOSP 允许system分区和vendor分区应用进行AIDL通信

在Android14上&#xff0c;出于种种原因&#xff0c;system分区的应用无法和vendor分区的应用直接通过AIDL的方法进行通信&#xff0c;但是项目的某个功能又需要如此。 好在Binder底层其实是支持的&#xff0c;只是在上层进行了屏蔽。 修改 frameworks/native/libs/binder/Bp…...

llm chat场景下的数据同步

背景 正常的chat/im通常是有单点登录或者利用类似广播的机制做多设备间内容同步的。而且由于长连接的存在&#xff0c;数据同步&#xff08;想起来&#xff09;相对简单。而llm的chat在缺失这两个机制的情况下&#xff0c;没见到特别好的做到了数据同步的产品。 llm chat主要两…...

视频去重原理及 Demo 示例

视频去重是一个常见的需求&#xff0c;主要用于视频库或平台管理中&#xff0c;通过判断视频是否相同&#xff08;或相似&#xff09;来移除冗余内容。实现视频去重可以通过多种方法&#xff0c;具体选择取决于业务场景和性能要求。 1. 视频去重的原理 1.1 基本原理 视频去重…...

【GIS教程】使用GDAL-Python将tif转为COG并在ArcGIS Js前端加载-附完整代码

目录 一、数据格式 二、COG特点 三、使用GDAL生成COG格式的数据 四、使用ArcGIS Maps SDK for JavaScript加载COG格式数据 一、数据格式 COG&#xff08;Cloud optimized GeoTIFF&#xff09;是一种GeoTiff格式的数据。托管在 HTTP 文件服务器上&#xff0c;可以代替geose…...

【ETCD】【源码阅读】深入解析 EtcdServer.applySnapshot方法

今天我们来一步步分析ETCD中applySnapshot函数 一、函数完整代码 函数的完整代码如下&#xff1a; func (s *EtcdServer) applySnapshot(ep *etcdProgress, apply *apply) {if raft.IsEmptySnap(apply.snapshot) {return}applySnapshotInProgress.Inc()lg : s.Logger()lg.In…...