线性回归误差项方差的估计

2023-11-19

摘要

之前在文章线性回归系数的几个性质 中,我们证明了线性回归系数项的几个性质。在这篇短文中,我们介绍线性回归模型中误差项方差的估计。

线性回归误差项概念的回顾

我们先来回忆一下什么是线性回归的误差项。在文章线性回归系数的几个性质 中,我们指出,对于单变量的线性回归模型, y i = β 1 x i + β 0 + ϵ i ,   i = 1 ,   2 ,   ⋯   , n y_i = \beta_1 x_i + \beta_0 + \epsilon_i, \, i = 1, \, 2, \, \cdots, n yi=β1xi+β0+ϵi,i=1,2,,n
其中 ϵ i \epsilon_i ϵi 为误差项 (error),每个 ϵ i \epsilon_i ϵi 均是一个随机变量,独立且都服从 一个均值为0, 方差为 σ 2 \sigma^2 σ2 的概率分布。这篇短文介绍的就是对这个 σ 2 \sigma^2 σ2 的估计。

残差平方和 (residual sum of squares)

我们定义 S S R e s = ∑ i = 1 n e i 2 = ∑ i = 1 n ( y i − y i ^ ) 2 \displaystyle SS_{\mathrm{Res}} = \sum_{i = 1}^n e_i^2 = \sum_{i = 1}^n (y_i - \hat{y_i})^2 SSRes=i=1nei2=i=1n(yiyi^)2

首先,我们证明,
S S R e s = ∑ i = 1 n y i 2 − n y ˉ 2 − β 1 ^ S x y SS_{\mathrm{Res}} = \sum_{i = 1}^n y_i^2 -n \bar{y}^2 - \hat{\beta_1} S_{xy} SSRes=i=1nyi2nyˉ2β1^Sxy

我们把 y i ^ = β 0 ^ + β 1 ^ ⋅ x i \displaystyle \hat{y_i} = \hat{\beta_0} + \hat{\beta_1} \cdot x_i yi^=β0^+β1^xi 代入 S S R e s \displaystyle SS_{\mathrm{Res}} SSRes 的表达式。

我们有,

S S R e s = ∑ i = 1 n ( y i − y i ^ ) 2 = ∑ i = 1 n ( y i − ( β 0 ^ + β 1 ^ ⋅ x i ) ) 2 = ∑ i = 1 n y i 2 − 2 ∑ i = 1 n y i ( β 0 ^ + β 1 ^ ⋅ x i ) + ∑ i = 1 n ( β 0 ^ + β 1 ^ ⋅ x i ) 2 = ∑ i = 1 n y i 2 − 2 β 0 ^ ⋅ n y ˉ − 2 β 1 ^ ∑ i = 1 n x i y i + n β 0 ^ 2 + 2 β 0 ^ β 1 ^ ∑ i = 1 n x i + β 1 ^ 2 ∑ i = 1 n x i 2 = ∑ i = 1 n y i 2 − 2 ( y ˉ − β 1 ^ x ˉ ) n y ˉ − 2 β 1 ^ ∑ i = 1 n x i y i + n ( y ˉ − β 1 ^ x ˉ ) 2 + 2 ( y ˉ − β 1 ^ x ˉ ) β 1 ^ ∑ i = 1 n x i + β 1 ^ 2 ∑ i = 1 n x i 2 = ∑ i = 1 n y i 2 − 2 n y ˉ 2 + 2 n β 1 ^ x ˉ y ˉ − 2 β 1 ^ ∑ i = 1 n x i y i + n y ˉ 2 − 2 n β 1 ^ x ˉ y ˉ + n β 1 ^ 2 x ˉ 2 + 2 y ˉ β 1 ^ ∑ i = 1 n x i − 2 β 1 ^ 2 x ˉ ∑ i = 1 n x i + β 1 ^ 2 ∑ i = 1 n x i 2 = ∑ i = 1 n y i 2 − n y ˉ 2 − n β 1 ^ 2 x ˉ 2 + β 1 ^ 2 ∑ i = 1 n x i 2 − 2 β 1 ^ ∑ i = 1 n x i y i + 2 n β 1 ^ x ˉ y ˉ = ∑ i = 1 n y i 2 − n y ˉ 2 + β 1 ^ 2 ( ∑ i = 1 n x i 2 − n x ˉ 2 ) − 2 β 1 ^ ( ∑ i = 1 n x i y i − n x ˉ y ˉ ) = ∑ i = 1 n y i 2 − n y ˉ 2 + β 1 ^ 2 S x x − 2 β 1 ^ S x y = ∑ i = 1 n y i 2 − n y ˉ 2 + β 1 ^ ( S x y S x x ) S x x − 2 β 1 ^ S x y = ∑ i = 1 n y i 2 − n y ˉ 2 − β 1 ^ S x y \begin{aligned} \displaystyle SS_{\mathrm{Res}} &= \sum_{i = 1}^n (y_i - \hat{y_i})^2 = \sum_{i = 1}^n \big(y_i - (\hat{\beta_0} + \hat{\beta_1} \cdot x_i) \big)^2 \\ &= \sum_{i = 1}^n y_i^2 - 2 \sum_{i = 1}^n y_i (\hat{\beta_0} + \hat{\beta_1} \cdot x_i) + \sum_{i = 1}^n (\hat{\beta_0} + \hat{\beta_1} \cdot x_i)^2 \\ &= \sum_{i = 1}^n y_i^2 - 2 \hat{\beta_0} \cdot n \bar{y} - 2 \hat{\beta_1} \sum_{i = 1}^n x_i y_i + n \hat{\beta_0}^2 + 2 \hat{\beta_0} \hat{\beta_1} \sum_{i = 1}^n x_i + \hat{\beta_1}^2 \sum_{i = 1}^n x_i^2 \\ &= \sum_{i = 1}^n y_i^2 - 2 (\bar{y} - \hat{\beta_1} \bar{x}) n \bar{y} - 2 \hat{\beta_1} \sum_{i = 1}^n x_i y_i + n (\bar{y} - \hat{\beta_1} \bar{x})^2 + 2 (\bar{y} - \hat{\beta_1} \bar{x}) \hat{\beta_1} \sum_{i = 1}^n x_i + \hat{\beta_1}^2 \sum_{i = 1}^n x_i^2 \\ &= \sum_{i = 1}^n y_i^2 - 2 n \bar{y}^2 + 2n \hat{\beta_1} \bar{x} \bar{y} - 2 \hat{\beta_1} \sum_{i = 1}^n x_i y_i + n \bar{y}^2 - 2n \hat{\beta_1} \bar{x} \bar{y} + \\ & \hspace{5mm} n \hat{\beta_1}^2 \bar{x}^2 + 2 \bar{y} \hat{\beta_1} \sum_{i = 1}^n x_i - 2 \hat{\beta_1}^2 \bar{x} \sum_{i = 1}^n x_i + \hat{\beta_1}^2 \sum_{i = 1}^n x_i^2 \\ &= \sum_{i = 1}^n y_i^2 - n \bar{y}^2 - n \hat{\beta_1}^2 \bar{x}^2 + \hat{\beta_1}^2 \sum_{i = 1}^n x_i^2 - 2 \hat{\beta_1} \sum_{i = 1}^n x_i y_i + 2n \hat{\beta_1} \bar{x} \bar{y} \\ &= \sum_{i = 1}^n y_i^2 - n \bar{y}^2 + \hat{\beta_1}^2 \big( \sum_{i = 1}^n x_i^2 - n \bar{x}^2 \big) - 2 \hat{\beta_1} \big( \sum_{i = 1}^n x_i y_i - n \bar{x} \bar{y} \big) \\ &= \sum_{i = 1}^n y_i^2 - n \bar{y}^2 + \hat{\beta_1}^2 S_{xx} - 2 \hat{\beta_1} S_{xy} \\ &= \sum_{i = 1}^n y_i^2 - n \bar{y}^2 + \hat{\beta_1} \left( \frac{S_{xy} }{ S_{xx} } \right) S_{xx} - 2 \hat{\beta_1} S_{xy} \\ &= \sum_{i = 1}^n y_i^2 -n \bar{y}^2 - \hat{\beta_1} S_{xy} \end{aligned} SSRes=i=1n(yiyi^)2=i=1n(yi(β0^+β1^xi))2=i=1nyi22i=1nyi(β0^+β1^xi)+i=1n(β0^+β1^xi)2=i=1nyi22β0^nyˉ2β1^i=1nxiyi+nβ0^2+2β0^β1^i=1nxi+β1^2i=1nxi2=i=1nyi22(yˉβ1^xˉ)nyˉ2β1^i=1nxiyi+n(yˉβ1^xˉ)2+2(yˉβ1^xˉ)β1^i=1nxi+β1^2i=1nxi2=i=1nyi22nyˉ2+2nβ1^xˉyˉ2β1^i=1nxiyi+nyˉ22nβ1^xˉyˉ+nβ1^2xˉ2+2yˉβ1^i=1nxi2β1^2xˉi=1nxi+β1^2i=1nxi2=i=1nyi2nyˉ2nβ1^2xˉ2+β1^2i=1nxi22β1^i=1nxiyi+2nβ1^xˉyˉ=i=1nyi2nyˉ2+β1^2(i=1nxi2nxˉ2)2β1^(i=1nxiyinxˉyˉ)=i=1nyi2nyˉ2+β1^2Sxx2β1^Sxy=i=1nyi2nyˉ2+β1^(SxxSxy)Sxx2β1^Sxy=i=1nyi2nyˉ2β1^Sxy

于是,我们就证明了 S S R e s = ∑ i = 1 n y i 2 − n y ˉ 2 − β 1 ^ S x y SS_{\mathrm{Res}} = \sum_{i = 1}^n y_i^2 -n \bar{y}^2 - \hat{\beta_1} S_{xy} SSRes=i=1nyi2nyˉ2β1^Sxy

残差平方和的期望

下面我们来看残差平方和的期望,即 E [ S S R e s ] \displaystyle \mathbb{E} [ SS_{\mathrm{Res}} ] E[SSRes]

E [ S S R e s ] = E [ ∑ i = 1 n y i 2 ] − n E [ y ˉ 2 ] − E [ β 1 ^ S x y ] \displaystyle \mathbb{E} [ SS_{\mathrm{Res}} ] = \mathbb{E} \big[ \sum_{i = 1}^n y_i^2 \big] - n \mathbb{E} \big[ \bar{y}^2 \big] - \mathbb{E} \big[ \hat{\beta_1} S_{xy} \big] E[SSRes]=E[i=1nyi2]nE[yˉ2]E[β1^Sxy]

我们分项来求。

我们先来求 E [ ∑ i = 1 n y i 2 ] \displaystyle \mathbb{E} \big[ \sum_{i = 1}^n y_i^2 \big] E[i=1nyi2]。我们知道,
E [ y i ] = E [ β 1 x i + β 0 + ϵ i ] = β 1 x i + β 0 \displaystyle \mathbb{E} \big[ y_i \big] = \mathbb{E} \big[ \beta_1 x_i + \beta_0 + \epsilon_i \big] = \beta_1 x_i + \beta_0 E[yi]=E[β1xi+β0+ϵi]=β1xi+β0。注意这里我们用到了 E [ ϵ i ] = 0 \displaystyle \mathbb{E} \big[ \epsilon_i \big] = 0 E[ϵi]=0
V a r [ ϵ i ] = σ 2 \displaystyle \mathrm{Var} \big[ \epsilon_i \big] = \sigma^2 Var[ϵi]=σ2。于是,我们知道 V a r [ y i ] = σ 2 \displaystyle \mathrm{Var} \big[ y_i \big] = \sigma^2 Var[yi]=σ2。从而, E [ y i 2 ] = V a r [ y i ] + ( E [ y i ] ) 2 = ( β 1 x i + β 0 ) 2 + σ 2 \displaystyle \mathbb{E} \big[ y_i^2 \big] = \mathrm{Var} \big[ y_i \big] + (\mathbb{E} \big[ y_i \big])^2 = (\beta_1 x_i + \beta_0)^2 + \sigma^2 E[yi2]=Var[yi]+(E[yi])2=(β1xi+β0)2+σ2 E [ ∑ i = 1 n y i 2 ] = ∑ i = 1 n ( ( β 1 x i + β 0 ) 2 + σ 2 ) = ∑ i = 1 n ( β 1 x i + β 0 ) 2 + n σ 2 \displaystyle \mathbb{E} \big[ \sum_{i = 1}^n y_i^2 \big] = \sum_{i = 1}^n \big( (\beta_1 x_i + \beta_0)^2 + \sigma^2 \big) = \sum_{i = 1}^n (\beta_1 x_i + \beta_0)^2 + n \sigma^2 E[i=1nyi2]=i=1n((β1xi+β0)2+σ2)=i=1n(β1xi+β0)2+nσ2

对于 E [ y ˉ 2 ] \displaystyle \mathbb{E} \big[ \bar{y}^2 \big] E[yˉ2],我们采用一样的方法。因为 E [ y ˉ ] = 1 n ∑ i = 1 n ( β 1 x i + β 0 ) = β 0 + β 1 x ˉ \displaystyle \mathbb{E} \big[ \bar{y} \big] = \frac{1}{n} \sum_{i = 1}^n (\beta_1 x_i + \beta_0) = \beta_0 + \beta_1 \bar{x} E[yˉ]=n1i=1n(β1xi+β0)=β0+β1xˉ V a r [ y ˉ ] = 1 n 2 ∑ i = 1 n V a r [ y i ] = 1 n 2 ⋅ n σ 2 = σ 2 n \displaystyle \mathrm{Var} \big[ \bar{y} \big] = \frac{1}{n^2} \sum_{i = 1}^n \mathrm{Var} \big[ y_i \big] = \frac{1}{n^2} \cdot n \sigma^2 = \frac{\sigma^2}{n} Var[yˉ]=n21i=1nVar[yi]=n21nσ2=nσ2
于是, E [ y ˉ 2 ] = V a r [ y ˉ ] + ( E [ y ˉ ] ) 2 = σ 2 n + ( β 0 + β 1 x ˉ ) 2 \displaystyle \mathbb{E} \big[ \bar{y}^2 \big] = \mathrm{Var} \big[ \bar{y} \big] + \big( \mathbb{E} \big[ \bar{y} \big] \big)^2 =\frac{\sigma^2}{n} + ( \beta_0 + \beta_1 \bar{x} )^2 E[yˉ2]=Var[yˉ]+(E[yˉ])2=nσ2+(β0+β1xˉ)2

对于最后一项, E [ β 1 ^ S x y ] \mathbb{E} \big[ \hat{\beta_1} S_{xy} \big] E[β1^Sxy],因为 β 1 ^ = S x y S x x \displaystyle \hat{\beta_1} = \frac{S_{xy} }{ S_{xx} } β1^=SxxSxy,而 S x x S_{xx} Sxx 是常数,所以我们须要求 E [ S x y 2 ] \displaystyle \mathbb{E} \big[ S_{xy}^2 \big] E[Sxy2]
注意到, S x y = ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) = ∑ i = 1 n ( x i − x ˉ ) y i \displaystyle S_{xy} = \sum_{i = 1}^n (x_i - \bar{x}) (y_i - \bar{y}) =\sum_{i = 1}^n (x_i - \bar{x}) y_i Sxy=i=1n(xixˉ)(yiyˉ)=i=1n(xixˉ)yi

我们有 E [ ∑ i = 1 n ( x i − x ˉ ) y i ] = ∑ i = 1 n ( x i − x ˉ ) ⋅ E [ y i ] = ∑ i = 1 n ( x i − x ˉ ) ( β 0 + β 1 x i ) \displaystyle \mathbb{E} \big[ \sum_{i = 1}^n (x_i - \bar{x}) y_i \big] = \sum_{i = 1}^n (x_i - \bar{x}) \cdot \mathbb{E} \big[ y_i \big] = \sum_{i = 1}^n (x_i - \bar{x}) (\beta_0 + \beta_1 x_i) E[i=1n(xixˉ)yi]=i=1n(xixˉ)E[yi]=i=1n(xixˉ)(β0+β1xi)
另外, V a r [ ∑ i = 1 n ( x i − x ˉ ) y i ] = ∑ i = 1 n ( x i − x ˉ ) 2 ⋅ V a r [ y i ] = ∑ i = 1 n ( x i − x ˉ ) 2 σ 2 \displaystyle \mathrm{Var} \big[ \sum_{i = 1}^n (x_i - \bar{x}) y_i \big] = \sum_{i = 1}^n (x_i - \bar{x})^2 \cdot \mathrm{Var} \big[ y_i \big] = \sum_{i = 1}^n (x_i - \bar{x})^2 \sigma^2 Var[i=1n(xixˉ)yi]=i=1n(xixˉ)2Var[yi]=i=1n(xixˉ)2σ2。这里我们用到了 y i ,   i = 1 ,   2 ,   ⋯ n y_i, \, i = 1, \, 2, \, \cdots n yi,i=1,2,n 是非相关的 (uncorrelated)。
从而,
E [ S x y 2 ] = E [ ( ∑ i = 1 n ( x i − x ˉ ) y i ) 2 ] = V a r [ ∑ i = 1 n ( x i − x ˉ ) y i ] + ( E [ ∑ i = 1 n ( x i − x ˉ ) y i ] ) 2 = ∑ i = 1 n ( x i − x ˉ ) 2 σ 2 + ( ∑ i = 1 n ( x i − x ˉ ) ( β 0 + β 1 x i ) ) 2 = S x x σ 2 + ( ∑ i = 1 n β 1 x i ( x i − x ˉ ) ) 2 = S x x σ 2 + β 1 2 S x x 2 \begin{aligned} \displaystyle \mathbb{E} \big[ S_{xy}^2 \big] &= \mathbb{E} \big[ \big( \sum_{i = 1}^n (x_i - \bar{x}) y_i \big)^2 \big] \\ &= \mathrm{Var} \big[ \sum_{i = 1}^n (x_i - \bar{x}) y_i \big] + \left( \mathbb{E} \big[ \sum_{i = 1}^n (x_i - \bar{x}) y_i \big] \right)^2 \\ &= \sum_{i = 1}^n (x_i - \bar{x})^2 \sigma^2 + \left( \sum_{i = 1}^n (x_i - \bar{x}) (\beta_0 + \beta_1 x_i) \right)^2 \\ &= S_{xx} \sigma^2 + \left( \sum_{i = 1}^n \beta_1 x_i (x_i - \bar{x}) \right)^2 \\ &= S_{xx} \sigma^2 + \beta_1^2 S_{xx}^2 \end{aligned} E[Sxy2]=E[(i=1n(xixˉ)yi)2]=Var[i=1n(xixˉ)yi]+(E[i=1n(xixˉ)yi])2=i=1n(xixˉ)2σ2+(i=1n(xixˉ)(β0+β1xi))2=Sxxσ2+(i=1nβ1xi(xixˉ))2=Sxxσ2+β12Sxx2

从而, E [ β 1 ^ S x y ] = S x x σ 2 + β 1 2 S x x 2 S x x = σ 2 + β 1 2 S x x \displaystyle \mathbb{E} \big[ \hat{\beta_1} S_{xy} \big] = \frac{ S_{xx} \sigma^2 + \beta_1^2 S_{xx}^2 }{ S_{xx}} = \sigma^2 + \beta_1^2 S_{xx} E[β1^Sxy]=SxxSxxσ2+β12Sxx2=σ2+β12Sxx

我们把, E [ ∑ i = 1 n y i 2 ] ,   E [ y ˉ 2 ] ,   [ S x y 2 ] \displaystyle \mathbb{E} \big[ \sum_{i = 1}^n y_i^2 \big], \, \mathbb{E} \big[ \bar{y}^2 \big], \, \big[ S_{xy}^2 \big] E[i=1nyi2],E[yˉ2],[Sxy2] 这三项代入 E [ S S R e s ] = E [ ∑ i = 1 n y i 2 ] − n E [ y ˉ 2 ] − E [ β 1 ^ S x y ] \displaystyle \mathbb{E} [ SS_{\mathrm{Res}} ] = \mathbb{E} \big[ \sum_{i = 1}^n y_i^2 \big] - n \mathbb{E} \big[ \bar{y}^2 \big] - \mathbb{E} \big[ \hat{\beta_1} S_{xy} \big] E[SSRes]=E[i=1nyi2]nE[yˉ2]E[β1^Sxy]
我们有
E [ S S R e s ] = E [ ∑ i = 1 n y i 2 ] − n E [ y ˉ 2 ] − E [ β 1 ^ S x y ] = ∑ i = 1 n ( β 1 x i + β 0 ) 2 + n σ 2 − n ( σ 2 n + ( β 0 + β 1 x ˉ ) 2 ) − ( σ 2 + β 1 2 S x x ) = ( n − 2 ) σ 2 \begin{aligned} \displaystyle \mathbb{E} [ SS_{\mathrm{Res}} ] &= \mathbb{E} \big[ \sum_{i = 1}^n y_i^2 \big] - n \mathbb{E} \big[ \bar{y}^2 \big] - \mathbb{E} \big[ \hat{\beta_1} S_{xy} \big] \\ &= \sum_{i = 1}^n (\beta_1 x_i + \beta_0)^2 + n \sigma^2 - n \left( \frac{\sigma^2}{n} + ( \beta_0 + \beta_1 \bar{x} )^2 \right) - ( \sigma^2 + \beta_1^2 S_{xx} ) \\ &= (n - 2) \sigma^2 \end{aligned} E[SSRes]=E[i=1nyi2]nE[yˉ2]E[β1^Sxy]=i=1n(β1xi+β0)2+nσ2n(nσ2+(β0+β1xˉ)2)(σ2+β12Sxx)=(n2)σ2

也就是说, S S R e s n − 2 \displaystyle \frac{ SS_{\mathrm{Res}} }{n - 2} n2SSRes σ 2 \sigma^2 σ2 的一个无偏估计。

实验验证

class sigmasqu_estimation:
    
    def __init__(self, arr_x: np.array, beta1: float, beta0: float, epsilon: float):
        #self.N = N
        self.X = arr_x
        self.beta1 = beta1
        self.beta0 = beta0
        self.epsilon = epsilon
        
        self.Sxx = ((self.X - self.X.mean()) ** 2).sum()
        self.X_bar = self.X.mean()
        
    def estimate_sigmasqu(self, N: int) -> tuple:
        res_sigmasqu_esti = []
        for i in range(N):
            #print(i)
            cur_error = np.random.normal(0, self.epsilon, arr_x.shape)
            cur_y = self.beta0 + self.beta1 * self.X + cur_error
            cur_y_bar = cur_y.mean()
            Sxy = ((self.X - self.X.mean()) * (cur_y - cur_y_bar)).sum()
            cur_beta1 = Sxy / self.Sxx
            cur_beta0 = cur_y_bar - cur_beta1 * self.X_bar
            cur_y_hat = cur_beta1 * self.X + cur_beta0 
            SS_res = ((cur_y - cur_y_hat) ** 2).sum()
            res_sigmasqu_esti.append(SS_res / (self.X.shape[0] - 2))
        return np.array(res_sigmasqu_esti)
arr_x = np.array(range(1, 11))
a = sigmasqu_estimation(arr_x, 2, 3, 1)
res = a.estimate_sigmasqu(10 ** 5)

res
np.mean(res)

1.0004110047596488

我们发现, S S R e s n − 2 \displaystyle \frac{ SS_{\mathrm{Res}} }{n - 2} n2SSRes 的均值非常接近 σ 2 \sigma^2 σ2

事实上, ( n − 2 ) S S R e s / σ 2 \displaystyle (n - 2) SS_{\mathrm{Res}} / \sigma^2 (n2)SSRes/σ2 服从的是 χ n − 2 2 \chi^2_{n - 2} χn22 的分布 [1]。

plt.figure(figsize=(8, 6), dpi=100)
plt.hist(res, bins=50, density=True);
line_vert = [[1, c] for c in np.linspace(0, 1, 100)]
plt.plot([c[0] for c in line_vert], [c[1] for c in line_vert], '-', linewidth=4)
plt.xlabel("estimated $\sigma^2$ value", fontsize=20)
plt.ylabel("count", fontsize=20)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20);

对 \sigma^2 的估计值的统计

参考文献

[1] Introduction to linear regression analysis, Douglas C. Montgomery, Elizabeth A. Peck, G. Geoffrey Vining, John Wiley & Sons (2021)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线性回归误差项方差的估计 的相关文章

随机推荐

  • 宅男福利!程序员周末看片神器,关键还开源

    本文源自自公众号开源最前线 ID OpenSourceTop 猿妹整理 别人眼中的程序员一定是这样的 每天有接不完的需求 写不完的代码 改不完的Bug 但大多数程序员偶尔也是有周末的 你是否有出现这种情况 连续加了好几天的班 好不容易迎来一
  • Python查询MySQL数据库并输出相应信息

    场景描述 将fork的编号与ip信息存储在了MySQL中 数据库为forklift 数据表名为fork info 存储格式为id num ip 那么如何用python去查询这些信息呢 分析 根据提供的MySQL表结构 想从名为fork in
  • 【千律】C++基础:打开并下载网页 -- ShellExecuteEx 和 URLDownloadToFile 函数

    include
  • Elasticsearch 7 系列(3) —— 核心概念

    目录 集群 cluster 节点 node 索引 index 类型 type 要学好Elasticsearch 就得先对Elasticsearch中的概念有所了解 接下来我们就重点说说Elasticsearch中的集群 节点 索引 类型 文
  • 多个if语句并列_使用if-then 语句

    最基本的结构化命令就是if then语句 if then语句有如下格式 if command then commands fi 简单的例子 cat test1 sh bin bash testing the if statementif p
  • 开发工具链-DevOps_阿里云云效

    简介 阿里云效官网 DevOps Development和Operations的组合词 是一组过程 方法与系统的统称 用于促进开发 应用程序 软件工程 技术运营和质量保障 QA 部门之间的沟通 协作与整合 百度百科 快速开始 1 云效首页
  • 给导航网站新增了一些免费影视网站,欢迎体验

    使用时建议使用火狐浏览器 并安装广告屏蔽插件 这样就没有广告 视频内的广告千万不要相信 其余安心食用 地理导航 地理上网从这里开始
  • VS Code Remote Development

    配置VSCode Remote Development 1 Ubuntu 上启用 SSH 1 打开终端 并且安装openssh server软件包 sudo apt update sudo apt install openssh serve
  • 图像处理岗位面试题搜罗汇总

    传统图像处理部分 图像处理基础知识 彩色图像 灰度图像 二值图像和索引图像区别 彩色图像 RGB图像 灰度图像 0 255像素值 二值图像 0和1 用于掩膜图像 索引图像 在灰度图像中 自定义调色板 自定义输出256种颜色值 常用的图像空间
  • java 泛型 作用与定义

    1 泛型方法的定义和使用 public static void main String args throws ClassNotFoundException String str get 哈士奇 world System out print
  • Mac显示放大镜

    设置快捷键 系统默认是不开启热键的 如果需要设置 操作如下 设置 system preferences gt accessibility 在左侧找到room 进入配置窗口 按如上配置后 按住option键 然后两指向上就可以放大 两指向下就
  • 这座城市引领大模型浪潮!80余个AI大模型,一半集结在这里!

    刚刚结束的2023全球数字经济大会上 人工智能高峰论坛掀起了一股热潮 大型模型的发展和应用成为了会议的亮点 而作为这次盛会的主办方之一 北京市已经成为了这场人工智能革命的领先力量 作为人工智能产业的引领者 北京不负众望 国内已有80余个大型
  • Redis系列(七)Redis主从、哨兵、cluster集群方案解析

    文章目录 Redis主从 主从数据同步 同步 建立连接 完整重同步 全量同步 触发条件 部分重同步 增量同步 复制偏移量 offset 复制积压缓冲区 replication backlog buffer 部分重同步执行过程 命令传播 指令
  • 机器视觉最火应用领域

    1 图像和视频识别 人工神经网络领域最重要的进展之一出自 ImageNet ImageNet收集了 1400 万标签图像并于2009年发布 ImageNet挑战赛要求参赛者设计一个能够跟人类一样对照片进行分类的算法 但一直没有出现获胜者 直
  • Python图像处理 PIL中convert(mode)函数详解

    模式分类 PIL有九种不同模式 1 L P RGB RGBA CMYK YCbCr I F mode 1 代码示例 为二值图像 非黑即白 每个像素用8个bit表示 0表示黑 255表示白 from PIL import Image 读取一张
  • python快乐数字怎么表达_Python中的快乐数字

    在这里 我们将看到如何检测数字n是否为一个快乐数字 因此 快乐数字是一个数字 其中以任何正整数开头的数字均用其数字的平方和代替 该过程将重复进行直到其变为1 否则它将无休止地循环循环 这些数字 当找到1时 将成为快乐数字 假设数字为19 则
  • 类加载机制+双亲委派机制(通俗易懂版)

    1 类加载机制 一个类从加载到使用到卸载一共经过了5个步骤 加载 gt 连接 gt 初始化 其中连接分为验证 准备 解析三个阶段 1 加载 那么什么时候会将 class文件加载到jvm中 就是在你使用这个类的时候 验证 准备 解析 2 验证
  • 【计算机视觉】CLIP:语言-图像表示之间的桥梁

    文章目录 一 前言 二 架构 三 应用 3 1 图像分类 3 2 图像描述 3 3 文本到图像 四 总结 一 前言 最近GPT4的火爆覆盖了一个新闻 midjourney v5发布 DALLE2 midjourney都可以从文本中生成图像
  • 生成随机数

    目录 1 生成随机数sand 函数 2 srand 函数设置生成随机数 3 时间戳 4 如何生成规定位数的随机数呢 1 100 5 猜数字对生成随机数的应用 1 生成随机数sand 函数 这个函数会返回一个从0到RAND MAX的随机整数
  • 线性回归误差项方差的估计

    线性回归误差项方差的估计 摘要 线性回归误差项概念的回顾 残差平方和 residual sum of squares 残差平方和的期望 实验验证 参考文献 摘要 之前在文章线性回归系数的几个性质 中 我们证明了线性回归系数项的几个性质 在这