当前位置: 首页 > 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;通常用于大样…...

三维重建(六)——3D Representation Methods: A Survey(北大总结三维表征--2024.10出版)

文章目录 一、摘要二、引言2.1 研究焦点和发展历程三、3D表征3.1 体素网格3.2 点云3.3 网格3.4 符号距离函数(SDF)3.5 神经辐射场(NeRF)3.6 三维高斯溅射(3D Gaussian Splatting, 3DGS)3.7 混合方法3.7.1 深度步进四面体(Deep Marching Tetrahedra, DMTet)3.7.2 三平面…...

html基础-认识html

1.什么是html html是浏览器可以识别的的标记语言&#xff0c;我们在浏览器浏览的网页就是一个个的html文档 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>认识html</title> </head> <body><h1…...

UE5 跟踪能力的简单小怪

A、思路 1、用素材的骨骼网格体创建小怪BP&#xff0c;绑定新的小怪控制器。 2、控制器的事件开始时&#xff0c;获取玩家状态&#xff0c;指定AI小怪自动向玩家移动。 复杂的AI需要用强大功能如黑板、行为树。 而简单的AI则可以用简单方法实现&#xff0c;杀鸡不用牛刀。视…...

Ubantu22系统安装Miniconda3

1、Anaconda和Miniconda异同 清华源镜像的Miniconda3和Anaconda都是用于管理Python环境和软件包的工具&#xff0c;但它们之间存在一些关键的不同之处。下面将分别介绍它们的特点以及使用清华源镜像的差异。 相同点&#xff1a; &#xff08;1&#xff09;功能相似&#xff1a…...

130、java中在使用new ArrayList<>(),在参数中传入一个集合的作用

在Java中&#xff0c;当你使用new ArrayList<>()时&#xff0c;你正在创建一个新的ArrayList实例。如果你在其后跟一对尖括号&#xff0c;并在内部传入一个集合&#xff0c;那么这实际上是一个"初始容量"的概念。 例如&#xff0c;如果你有一个集合otherList&…...

Mybatis-plus-Join--分页查询

数据表四张&#xff1a; user&#xff1a; id,username,create_time,update_time product&#xff1a; id,name,price,number(库存),create_time,update_times order&#xff1a; id,quantity,order_time(下单时间),update_time order_detail:id,product_id,order_id,quant…...

对BG兼并点的理解-不断刷新版

常想常新&#xff0c;每次接触都有新理解&#xff0c;不确定想的是否正确&#xff0c;拿出来讨论&#xff0c;以最新结论为准 2024-9-19 1、仿真简并点时需要断开启动电路&#xff1a;启动电路会干扰DC结果的计算&#xff0c;可能看到加启动电路后简并点减少&#xff0c;但在…...

python的游标是什么

CURSOR&#xff08;私有SQL 区&#xff09;就是一个句柄&#xff0c;即指针或引用&#xff0c;指向sql私有区&#xff08;一个用户的能打开的cursor数由参数open_cursors决定&#xff09;【确切说&#xff0c;指向sql私有区里的固定部分&#xff08;The persistentarea&#xf…...

硬件---14---PCB学习:PCB封装库及布局操作

一PCB封装元素的组成与介绍 二实例-贴片0603封装的创建 1封装命名 找不到封装库创建页面&#xff0c;可以配合右下角的Panels去找。 找到0603电阻或者电容的PCB封装&#xff0c;根据提供尺寸去设计PCB的封装。 <1>双击PCB器件封装 <2>命名 2放置焊盘&#xff…...

什么是MyBatis

MyBatis 简介 MyBatis 是一个流行的 Java 持久层框架&#xff08;Persistence Framework&#xff09;&#xff0c;它主要用于简化数据库操作&#xff0c;提供了对数据库的映射支持&#xff0c;使得开发人员能够通过简单的配置和映射文件来执行数据库操作&#xff08;如增、删、…...

开发技术-Java改变图片格式

图片上传页未做控制&#xff0c;导致上传的是GIF格式&#xff0c;导致图片识别失败。需要将GIF格式转为JPEG格式。 代码&#xff0c;是找AI写的&#xff0c;记录一下&#xff1a; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; im…...

基于DockerCompose搭建Redis主从哨兵模式

linux目录结构 内网配置 哨兵配置文件如下&#xff0c;创建3个哨兵配置文件 # sentinel26379.conf sentinel26380.conf sentinel26381.conf 内容如下 protected-mode no sentinel monitor mymaster redis-master 6379 2 sentinel down-after-milliseconds mymaster 60000 s…...

aioice里面candidate固定UDP端口测试

环境&#xff1a; aioice0.9.0 问题描述&#xff1a; aioice里面candidate固定UDP端口测试 解决方案&#xff1a; /miniconda3/envs/nerfstream/lib/python3.10/site-packages/aioice import hashlib import ipaddress import random from typing import Optional import…...

Git使用教程-分支使用/合并分支提交

Git使用教程-分支使用 文章目录 Git使用教程-分支使用一、分支&#xff08;branch&#xff09;的基本操作&#xff1a;二、查看分支&#xff1a;参考 一、分支&#xff08;branch&#xff09;的基本操作&#xff1a; git clone https://.git git status …...

单元测试使用记录

什么是单元测试 简单来说就是对一个类中的方法进行测试&#xff0c;对输出的结果检查判断是否符合预期结果 但是在多年的工作中&#xff0c;从来没有哪个项目中真正系统的用到了单元测试&#xff0c;因此对它还是很陌生的&#xff0c;也就造成更加不会在项目中区使用它。 如何…...

LabVIEW实时信号采集与频谱分析

系统通过LabVIEW与PXIe硬件结合&#xff0c;实现高精度模拟信号的实时采集、频谱分析与可视化显示。核心功能包括采样率配置、快速傅里叶变换&#xff08;FFT&#xff09;、功率谱图生成及动态缩放调整&#xff0c;同时支持信号平均与噪声抑制。系统设计灵活&#xff0c;适用于…...

OpenCV(python)从入门到精通——运算操作

加法减法操作 import cv2 as cv import numpy as npx np.uint8([250]) y np.uint8([10])x_1 np.uint8([10]) y_1 np.uint8([20])# 加法,相加最大只能为255 print(cv.add(x,y))# 减法&#xff0c;相互减最小值只能为0 print(cv.subtract(x_1,y_1))图像加法 import cv2 as…...

基础2:值类型与右值引用

1.函数返回 在讲解右值之前&#xff0c;要知道下面这个函数要进行几次拷贝以及为什么&#xff1f; int get_x() {int x 20;return x; }int aget_x(); 答案&#xff1a;两次 # 第一次 int tmpa; # 第二次 int xtmp;2.左值与右值 &#x1f34f;2.1 能取地址操作的就是左值 …...

GitHub年度报告发布!Python首次超越JavaScript

全球开发者数量激增&#xff0c;GenAI 项目呈爆炸式增长趋势&#xff0c;推动编程语言的应用格局也发生了巨大变化&#xff0c;最新的 GitHub Octoverse 报告来了&#xff01; 1、Python 首次超越 JavaScript&#xff0c;成为 GitHub 平台最顶级编程语言 不同于流传“AI 即将取…...

EdgeX Message Bus 消息总线

EdgeX Message Bus 消息总线 一、概述 EdgeX MessageBus 内部消息总线,用于 EdgeX 服务之间的内部通信。 EdgeX 服务是指来自 EdgeX 的任何核心/支持/应用程序/设备服务或使用 EdgeX SDK 构建的任何自定义应用程序或设备服务。 EdgeX MessageBus 用于内部 EdgeX 服务与服务之间…...

【JavaEE进阶】关于Maven

目录 &#x1f334;什么是Maven &#x1f332;为什么要学Maven &#x1f38d;创建一个Maven项目 &#x1f384;Maven核心功能 &#x1f6a9;项目构建 &#x1f6a9;依赖管理 &#x1f38b;Maven Help插件 &#x1f340;Maven 仓库 &#x1f6a9;本地仓库 &#x1f6a…...

YOLOv9-0.1部分代码阅读笔记-autoanchor.py

autoanchor.py utils\autoanchor.py 目录 autoanchor.py 1.所需的库和模块 2.def check_anchor_order(m): 3.def check_anchors(dataset, model, thr4.0, imgsz640): 4.def kmean_anchors(dataset./data/coco128.yaml, n9, img_size640, thr4.0, gen1000, verboseTrue…...

Electronjs+Vue如何开发PC桌面客户端(Windows,Mac,Linux)

electronjs官网 https://www.electronjs.org/zh/ Electron开发PC桌面客户端的技术选型非常适合已经有web前端开发人员的团队。能够很丝滑的过渡。 Electron是什么&#xff1f; Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.…...

谷歌浏览器 安装谷歌浏览器特定版本后禁止自动更新

问题描述 我们通过离线安装谷歌浏览器后&#xff0c;第一次打开浏览器时会默认下载最新版本&#xff0c;等到我们重启浏览器后它会自动更新。在项目中为了能固定浏览器版本&#xff0c;所以要禁止谷歌浏览器的更新&#xff0c;网上找了好多方法都没用&#xff0c;自己摸索出来…...

Linux计算时间差

Linux计算时间差 1、Linux计算时间差2、时间差的应用 1、Linux计算时间差 在Linux中&#xff0c;计算时间差通常是为了统计、监控或调试。时间差可以用来衡量任务执行的时间&#xff0c;或者两个事件之间的间隔。例如&#xff0c;响应时间、执行时间、定时任务与延时处理等 以…...

Python的3D可视化库【vedo】2-5 (plotter模块) 坐标转换、场景导出、添加控件

文章目录 4 Plotter类的方法4.7 屏幕和场景中的坐标点转换4.7.1 屏幕坐标转为世界坐标4.7.2 世界坐标转为屏幕坐标4.7.3 屏幕坐标取颜色 4.8 导出4.8.1 导出2D图片4.8.2 导出3D文件 4.9 添加控件4.9.1 添加内嵌子窗口4.9.2 添加选择区4.9.3 添加比例尺4.9.4 为对象添加弹出提示…...

【VUE】13、安装nrm管理多个npm源

nrm&#xff08;npm registry manager&#xff09;是一个 npm 源管理器&#xff0c;它允许用户快速地在不同的 npm 源之间进行切换&#xff0c;以提高包管理的速度和效率。以下是对 nrm 使用的详细介绍&#xff1a; 1、安装nrm 在使用 nrm 之前&#xff0c;需要先确保已经安装…...

【SQL/MySQL 如何使用三种触发器】SQL语句实例演示

触发器介绍 – 触发器是与表有关的数据库对象&#xff0c;指在insert/update/delete之前(BEFORE)或之后(AFTER)&#xff0c;触发并执行触发器中定义的SQL语句集合。 – 使用别名OLD和NEW来引用触发器中发生变化的记录内容&#xff0c;这与其他的数据库是相似的。现在触发器还只…...

Docker容器五种网络驱动模式详解

Docker 网络用于在容器之间以及容器与外部网络之间提供通信功能。它允许容器在隔离的网络环境中运行&#xff0c;同时也能根据需要与其他容器或外部网络进行交互。通过使用网络驱动&#xff0c;Docker 可以创建不同类型的网络&#xff0c;以满足各种应用场景的需求。 传统上&am…...