主成分分析法

news2024/10/1 1:35:31

主成分分析法

  • 1. 基础知识
    • 1.1 向量
      • 1.1.1 样本均值
      • 1.1.2 向量投影
    • 1.2 矩阵
      • 1.2.1 矩阵微分
      • 1.2.2 矩阵特征值和特征向量
        • 1.2.2.1 特征值和特征向量的几何意义
        • 1.2.2.2 特征向量与矩阵变换的关系
        • 1.2.2.3 特征值与矩阵的迹
    • 1.3 Lagrange乘子法
      • 1.3.1 等式约束优化问题
  • 2. 主成分分析法
    • 2.1 建模过程
    • 2.2 选择维数

1. 基础知识

1.1 向量

1.1.1 样本均值

        给定一组样本 x ⃗ 1 , x ⃗ 2 , ⋯ , x ⃗ m \vec{x}_1,\vec{x}_2,\cdots,\vec{x}_m x 1x 2x m,则样本均值为
x ⃗ ‾ = ∑ i = 1 m x ⃗ i m \overline{\vec{x}} = \frac{\sum_{i=1}^{m}\vec{x}_i}{m} x =mi=1mx i

1.1.2 向量投影

利用内积的定义,即 < a ⃗ , e ⃗ > = ∣ a ⃗ ∣ ∣ e ⃗ ∣ cos ⁡ α <\vec{a},\vec{e}> = |\vec{a}||\vec{e}|\cos{\alpha} <a e >=a ∣∣e cosα,计算向量的投影:
∣ a ⃗ ∣ cos ⁡ α = a ⃗ T e ⃗ ∣ e ⃗ ∣ |\vec{a}|\cos{\alpha} = \vec{a}^T\frac{\vec{e}}{|\vec{e}|} a cosα=a Te e

1.2 矩阵

1.2.1 矩阵微分

        给定一个向量 x ⃗ = [ x 1 x 2 ⋮ x d ] \vec{x} = \begin{bmatrix}x_1 \\ x_2 \\ \vdots\\ x_d\end{bmatrix} x = x1x2xd ,函数 f : R d → R f: \R^d \rightarrow \R f:RdR,那么
∇ x ⃗ f = ∂ f ∂ x ⃗ = [ ∂ f ∂ x 1 ∂ f ∂ x 2 ⋮ ∂ f ∂ x d ] \nabla_{\vec{x}}f = \frac{\partial f}{\partial \vec{x}} = \begin{bmatrix} \frac{\partial f}{\partial x_1} \\ \frac{\partial f}{\partial x_2} \\ \vdots \\ \frac{\partial f}{\partial x_d} \end{bmatrix} x f=x f= x1fx2fxdf
我们称 ∇ x ⃗ f \nabla_{\vec{x}}f x f f f f x ⃗ \vec{x} x 的微分。
        例 1.3.1 f ( e ⃗ ) = e ⃗ T e ⃗ f(\vec{e}) = \vec{e}^T\vec{e} f(e )=e Te 求微分。
解:
f ( e ⃗ ) = e ⃗ T e ⃗ = e 1 2 + e 2 2 + ⋯ + e d 2 f(\vec{e}) = \vec{e}^T\vec{e}=e_1^2 + e_2^2 + \cdots + e_d^2 f(e )=e Te =e12+e22++ed2
那么
∂ f ∂ e ⃗ = [ ∂ f ∂ e 1 ∂ f ∂ e 2 ⋮ ∂ f ∂ e d ] = 2 [ e 1 e 2 ⋮ e d ] = 2 e ⃗ \begin{align*} \frac{\partial f}{\partial \vec{e}} = \begin{bmatrix} \frac{\partial f}{\partial e_1} \\ \frac{\partial f}{\partial e_2} \\ \vdots \\ \frac{\partial f}{\partial e_d} \end{bmatrix} = 2 \begin{bmatrix} e_1 \\ e_2 \\ \vdots \\ e_d \end{bmatrix} = 2\vec{e} \end{align*} e f= e1fe2fedf =2 e1e2ed =2e
        例 1.3.2 A = [ a 11 a 12 a 21 a 22 ] A = \begin{bmatrix}a_{11} & a_{12} \\a_{21} & a_{22} \end{bmatrix} A=[a11a21a12a22],对 f ( e ⃗ ) = e ⃗ T A e ⃗ f(\vec{e}) = \vec{e}^TA\vec{e} f(e )=e TAe 求微分。
解:
e ⃗ T A e ⃗ = a 11 e 1 2 + a 12 e 2 e 1 + a 21 e 1 e 2 + a 22 e 2 2 \vec{e}^TA\vec{e} = a_{11}e_1^2 + a_{12}e_2e_1 + a_{21}e_1e_2 + a_{22}e_2^2 e TAe =a11e12+a12e2e1+a21e1e2+a22e22
那么
∂ f ∂ e ⃗ = [ ∂ f ∂ e 1 ∂ f ∂ e 2 ] = [ 2 a 11 e 1 + a 12 e 2 + a 21 e 2 a 12 e 1 + a 21 e 1 + 2 a 22 e 2 ] = [ 2 a 11 ( a 12 + a 21 ) ( a 21 + a 12 ) 2 a 22 ] [ e 1 e 2 ] = ( A + A T ) e ⃗ \begin{align*} \frac{\partial f}{\partial \vec{e}} = \begin{bmatrix} \frac{\partial f}{\partial e_1} \\ \frac{\partial f}{\partial e_2} \end{bmatrix} = \begin{bmatrix} 2a_{11}e_1 + a_{12}e_2 + a_{21}e_2 \\ a_{12}e_1 + a_{21}e_1 + 2a_{22}e_2 \end{bmatrix} = \begin{bmatrix} 2a_{11} & (a_{12} + a_{21}) \\ (a_{21} + a_{12}) & 2a_{22} \end{bmatrix} \begin{bmatrix} e_1 \\ e_2 \end{bmatrix} =(A + A^T)\vec{e} \end{align*} e f=[e1fe2f]=[2a11e1+a12e2+a21e2a12e1+a21e1+2a22e2]=[2a11(a21+a12)(a12+a21)2a22][e1e2]=(A+AT)e
注意:将矩阵 A 推广到 n × n n \times n n×n 仍然成立。

1.2.2 矩阵特征值和特征向量

         当 A A A 是一个方阵,一个向量 x x x A A A 相乘的结果和偶尔被一个数 λ \lambda λ 相乘的结果,恰好相等,即
A x ⃗ = λ x ⃗ A\vec{x} = \lambda\vec{x} Ax =λx
那么向量 x x x 就称为 A A A 的特征向量, λ \lambda λ 称为 A A A 的特征值。

1.2.2.1 特征值和特征向量的几何意义

         方阵乘以一个向量的结果仍是一个同维向量,矩阵乘法对应一个变换,把一个向量变成同维度的另一个向量。在这个变换过程中,向量只会发生旋转、伸缩或镜像的变化。矩阵不同,向量的变化结果不同。如果矩阵对某一个向量发生伸缩变换,不对这些向量产生旋转效果,那么这些向量就是这个矩阵的特征向量,伸缩比例就是特征值。如果伸缩的比例值是负值,原向量的方向改变为反方向,原向量仍然是这个矩阵的特征向量。
         例如,设矩阵 A A A 和两个向量 a ⃗ = [ − 1 1 ] \vec{a} = \begin{bmatrix}-1 \\ 1\end{bmatrix} a =[11] b ⃗ = [ 2 1 ] \vec{b} = \begin{bmatrix}2 \\ 1\end{bmatrix} b =[21],那么矩阵对两个向量的变换结果为 a ⃗ ′ = A a ⃗ = [ − 5 − 1 ] \vec{a}^{'}=A\vec{a} = \begin{bmatrix}-5 \\ -1\end{bmatrix} a =Aa =[51] b ⃗ ′ = A b ⃗ = [ 4 2 ] \vec{b}^{'}=A\vec{b} = \begin{bmatrix}4 \\ 2\end{bmatrix} b =Ab =[42],几何图形下图所示。

        显然,只有向量 b ⃗ \vec{b} b 被矩阵 A A A 同方向拉长了2倍,即 A b ⃗ = λ b ⃗ A\vec{b} = \lambda\vec{b} Ab =λb ,因此向量 b ⃗ \vec{b} b 是矩阵 A A A 的特征向量,特征值为2。
        对于矩阵 A A A ,大多数向量不满足方程 A a ⃗ = λ a ⃗ A\vec{a} = \lambda\vec{a} Aa =λa 。因为当向量 a ⃗ \vec{a} a 被矩阵相乘时几乎都将改变 a ⃗ \vec{a} a 的方向,因为 A a ⃗ A\vec{a} Aa a ⃗ \vec{a} a 常常不是倍数关系。

1.2.2.2 特征向量与矩阵变换的关系
1.2.2.3 特征值与矩阵的迹

1.3 Lagrange乘子法

        求解最优化问题的第一个一般性的分析方法是Fermat提出的,他给出了无约束优化问题的极值点应满足的必要条件。
        定理 1.1 (Fermat定理)  设 f ( x ) f(\pmb{x}) f(x) 为一个 n n n 元函数, x = ( x 1 , x 2 , ⋯ , x n ) T ∈ A ⊆ R n \pmb{x}=(x_1,x_2,\cdots,x_n)^T \in A \subseteq{\mathbb{R}^n} x=(x1x2xn)TARn,如果 x ∗ \pmb{x}^* x 是函数 f f f 的一个极值点,且函数在 x ∗ \pmb{x}^* x 处连续可微,则在 x ∗ \pmb{x}^* x 上有
f x ′ ( x ∗ ) = 0 (1-1) f_{\pmb{x}}^{'}(\pmb{x}^*) = 0 \tag{1-1} fx(x)=0(1-1)
分析:该定理证明可以使用反证法,首先假设 x ∗ \pmb{x}^* x 是局部极小值,但梯度 f x ′ ( x ∗ ) ≠ 0 f_{\pmb{x}}^{'}(\pmb{x}^*) \neq 0 fx(x)=0,如果能找到一个方向 d \pmb{d} d,使得在这个方向上,函数值是下降。很显然,函数在负梯度方向是下降的,那么我们就证明了 x ∗ \pmb{x}^* x 不是局部极小值。

证明:
        假定 f x ′ ( x ∗ ) ≠ 0 f_{\pmb{x}}^{'}(\pmb{x}^*) \neq 0 fx(x)=0,则 ∃ d ∈ R n \exists{\pmb{d}} \in \R^n dRn,使得 d T f x ′ ( x ∗ ) < 0 \pmb{d}^Tf_{\pmb{x}}^{'}(\pmb{x}^*) < 0 dTfx(x)<0,例如, d = − f x ′ ( x ∗ ) \pmb{d} = -f_{\pmb{x}}^{'}(\pmb{x}^*) d=fx(x)。由 f x ′ ( x ) f_{\pmb{x}}^{'}(\pmb{x}) fx(x)的连续性可知, ∃ δ > 0 \exists{\delta > 0} δ>0,使得
d T f x ′ ( x ∗ + α d ) < 0 , α ∈ ( 0 , δ ] \pmb{d}^Tf_{\pmb{x}}^{'}(\pmb{x^* + \alpha{\pmb{d}}}) < 0,\alpha \in (0,\delta] dTfx(x+αd)<0α(0δ]
由中值定理可知,对 ∀ α 1 ∈ ( 0 , δ ] \forall \alpha_1 \in (0,\delta] α1(0δ] ∃ α ∈ ( 0 , α 1 ) \exists \alpha \in (0,\alpha_1) α(0α1),使
f ( x ∗ + α 1 d ) = f ( x ∗ ) + α 1 d T f x ′ ( x ∗ + α d ) f(\pmb{x}^* + \alpha_1\pmb{d}) = f(x^*) + \alpha_1\pmb{d}^Tf_{\pmb{x}}^{'}(\pmb{x^* + \alpha{\pmb{d}}}) f(x+α1d)=f(x)+α1dTfx(x+αd)
因此, f ( x ∗ + α 1 d ) < f ( x ∗ ) f(\pmb{x}^* + \alpha_1\pmb{d}) < f(\pmb{x}^*) f(x+α1d)<f(x),即 x ∗ \pmb{x}^* x 不是 f ( x ) f(\pmb{x}) f(x)的局部极小值点,与原命题矛盾。
        这个定理给出了局部最优解的必要条件,运用这个定理须求解 n n n 个联立的方程:
∂ f ∂ x i = 0 , i = 1 , 2 , … , n \frac{\partial{f}}{\partial{x_i}} = 0,i=1,2,\dots,n xif=0i=1,2,,n
要求得全局最优解,应将所得的各极小值或极大值与函数奇异点及边界点的值进行比较,取其最小或最大值对应的 x \pmb{x} x 作为全局最优解。
        定理 1.2 (Lagrange中值定理)  若函数 f f f 满足如下条件:
        (i) f f f 在闭区间 [ a , b ] [a,b] [ab] 上连续;
        (ii) f f f 在开区间 ( a , b ) (a,b) (ab) 上可导,
则在 ( a , b ) (a,b) (ab) 上至少存在一点 ξ \xi ξ,使得
f ′ ( ξ ) = f ( b ) − f ( a ) b − a f^{'}(\xi) = \frac{f(b) - f(a)}{b - a} f(ξ)=baf(b)f(a)

1.3.1 等式约束优化问题

        Lagrange 给出了在等式约束下求解函数极值点的分析方法原理,它利用数学上的概念与技巧,将等式约束下的条件极值问题转化为无约束的极值问题。条件极值问题可以描述为:
{ f ( x ) s . t . h k ( x ) = 0 , k = 1 , 2 , … , l \begin{cases} f(\pmb{x}) \\ s.t.\quad h_k(\pmb{x}) = 0, \quad k=1,2,\dots,l \end{cases} {f(x)s.t.hk(x)=0,k=1,2,,l
上述条件极值问题可以归结为求下面的辅助函数的极值:
L ( x , λ 0 , λ ) = λ 0 f ( x ) + ∑ k = 1 l λ k h k ( x ) (1-2) L(\pmb{x}, \lambda_0, \pmb{\lambda}) = \lambda_0f(\pmb{x}) + \sum_{k=1}^l{\lambda_k}h_k(\pmb{x}) \tag{1-2} L(x,λ0,λ)=λ0f(x)+k=1lλkhk(x)(1-2)
式中, L ( ⋅ ) L(\cdot) L() 称为 Lagrange 函数, λ i ( i = 0 , 1 , ⋯   , l ) \lambda_i(i=0,1,\cdots,l) λi(i=0,1,,l) 称为 Lagrange 乘子。
        定理 1.3 (Lagrange定理)  对于上述优化问题 (1-2),令 x = ( x 1 , x 2 , ⋯   , x n ) T ∈ R n \pmb{x} = (x_1,x_2,\cdots,x_n)^T \in \mathbb{R}^n x=(x1,x2,,xn)TRn,设函数 f ( x ) f(\pmb{x}) f(x) h k ( x ) ( k = 1 , ⋯   , l ) h_k(\pmb{x})(k=1,\cdots,l) hk(x)k=1,,l 在点 x ∗ \pmb{x}^* x 处可微。若 x ∗ \pmb{x}^* x f ( x ) f(\pmb{x}) f(x) 的一个条件极值点,则存在不全为零的 Lagrange 乘子 λ 0 \lambda_0 λ0 λ ∗ = ( λ 1 ∗ , λ 2 ∗ , ⋯ , λ l ∗ ) \pmb{\lambda^*}=(\lambda_1^*,\lambda_2^*,\cdots,\lambda_l^*) λ=(λ1λ2λl),使得下列条件成立:
L x i ′ ( x ∗ , λ 0 ∗ , λ ∗ ) = 0 , i = 1 , 2 , ⋯ , n (1-3) L_{x_i}^{'}(\pmb{x}^*, \lambda_0^*, \pmb{\lambda}^*) = 0,i=1,2,\cdots,n \tag{1-3} Lxi(x,λ0,λ)=0i=12n(1-3)
L λ i ′ ( x ∗ , λ 0 ∗ , λ ∗ ) = 0 , i = 1 , 2 , ⋯ , l (1-4) L_{\lambda_i}^{'}(\pmb{x}^*, \lambda_0^*, \pmb{\lambda}^*) = 0,i=1,2,\cdots,l \tag{1-4} Lλi(x,λ0,λ)=0i=12l(1-4)
为了使 λ 0 ≠ 0 \lambda_0 \neq 0 λ0=0,充要条件是 l l l 个矢量
∂ h 1 x , ∂ h 2 x , ⋯ , ∂ h l x \frac{\partial{h_1}}{\pmb{x}},\frac{\partial{h_2}}{\pmb{x}},\cdots,\frac{\partial{h_l}}{\pmb{x}} xh1xh2xhl
在点 f ( x ) f(\pmb{x}) f(x) 上是线性无关的。
        由式(1-3)可以产生 n n n 个新方程,式(1-4)可以产生 l l l 个方程,显然运用上述定理,需要求解含 n + l + 1 n+l+1 n+l+1 个未知数的方程。
        在 λ 0 ≠ 0 \lambda_0 \neq 0 λ0=0 下,不妨取 λ 0 = 1 \lambda_0 = 1 λ0=1,这相当于其余的Lagrange乘子都要乘以一个银子,这不影响问题的解,在这种情况下,问题变为求解下面 n + l n + l n+l 个方程的方程组。
        例 1.4.1 假设有以下约束优化问题:
min ⁡ x , y f ( x , y ) = x 2 + y 2 s . t . g ( x , y ) = x + y − 1 = 0 \min_{x, y}{f(x, y) = x^2 + y^2} \\ s.t.\quad g(x, y) = x + y -1 = 0 x,yminf(x,y)=x2+y2s.t.g(x,y)=x+y1=0


图1-1 等式约束优化问题的几何表示

        从图1-2可以看出,目标函数和条件等式约束在极值点处梯度共线,即 ∇ f ( x ) = λ ∇ g ( x ) \nabla{f(x)} = \lambda{\nabla{g(x)}} f(x)=λg(x)
解:
        目标函数梯度为:
∇ f ( x , y ) = ( ∂ f ∂ x , ∂ f ∂ y ) = ( 2 x , 2 y ) \nabla{f(x, y)} = (\frac{\partial{f}}{\partial{x}},\frac{\partial{f}}{\partial{y}}) = (2x,2y) f(x,y)=(xfyf)=(2x2y)
        约束条件梯度为:
∇ g ( x , y ) = ( ∂ g ∂ x , ∂ g ∂ y ) = ( 1 , 1 ) \nabla{g(x, y)} = (\frac{\partial{g}}{\partial{x}},\frac{\partial{g}}{\partial{y}}) = (1,1) g(x,y)=(xgyg)=(11)
        由于目标函数梯度与约束条件梯度在极值点处共线,则
{ 2 x = λ 2 y = λ x + y − 1 = 0 \begin{cases} 2x = \lambda \\ 2y = \lambda \\ x + y -1 = 0 \\ \end{cases} 2x=λ2y=λx+y1=0
        通过代入法可得,该约束函数的极值点在(0.5,0.5)。

2. 主成分分析法

        在数据分析中,降维方法扮演着重要角色。我们对所有降维方法的期望是,将原始空间中的数据有效地转换为低维空间,同时实现两个主要目标:首先,降维后的样本点应尽量避免重叠,以确保最大可分性;其次,原始样本所包含的信息应尽量减少损失,以维持较好的重构性。
        在众多降维方法中,主成分分析(principal component analysis,PCA)是一种应用非常广泛的降维技术。该方法由英国数学家卡尔 ⋅ \cdot 在1901年创造,通过降低数据维度和相关性,来简化数据集。

2.1 建模过程

        假设样本集 D = { x 1 ⃗ , x 2 ⃗ , ⋯   , x n ⃗ } D = \{\vec{x_1}, \vec{x_2}, \cdots, \vec{x_n}\} D={x1 ,x2 ,,xn },每个样本 x i ⃗ \vec{x_i} xi 都是 d d d 维向量。若要将 d d d 维向量降维 r r r 向量,从矩阵的角度理解,就是将矩阵从 n × d n \times d n×d 转换为 n × r n \times r n×r 型,并且使转换后的矩阵尽可能保留原矩阵的信息。下面我们将使用主成分分析法对数据集进行降维,具体步骤如下:

  1. 数据中心化,就是将样本的中心移至坐标原点,以便后续计算;
    x ‾ = 1 n ∑ i = 1 n x i ⃗ z i ⃗ = x i ⃗ − x ‾ \overline{\pmb{x}} = \frac{1}{n}\sum_{i=1}^{n}\vec{x_i} \\ \vec{z_i} = \vec{x_i} - \overline{x} x=n1i=1nxi zi =xi x
    其中, x ‾ \overline{x} x 为样本均值; z i ⃗ \vec{z_i} zi 为中心化后的样本,中心化过后的样本均值为 0 ⃗ \vec{0} 0
  2. 计算样本 z i ⃗ \vec{z_i} zi 在某个单位向量 e ⃗ \vec{e} e 的投影,即
    y i ⃗ = z i ⃗ T e ⃗ \vec{y_i} = \vec{z_i}^T\vec{e} yi =zi Te
    其中, y i ⃗ \vec{y_i} yi 为投影后的样本。
  3. 为了避免向量 y i ⃗ \vec{y_i} yi 重叠,通常选择波动性最大的单位向量 e ⃗ \vec{e} e 投影。在统计学习中,一般使用方差衡量样本的波动性。
    max ⁡ e ⃗ D ( e ⃗ ) = 1 n ∑ i = 1 n ∣ ∣ z i ⃗ T e ⃗ − y ‾ ∣ ∣ 2 (2-1) \max_{\vec{e}} D(\vec{e}) = \frac{1}{n}\sum_{i=1}^{n}||\vec{z_i}^T\vec{e} - \overline{y}||^2 \tag{2-1} e maxD(e )=n1i=1n∣∣zi Te y2(2-1)
    其中, y ‾ \overline{y} y 投影后样本均值。
    又因为
    y ‾ = 1 n ∑ i = 1 n z i ⃗ T e ⃗ = ( 1 n ∑ i = 1 n z i ⃗ T ) e ⃗ = 0 ⃗ \overline{\pmb{y}} = \frac{1}{n}\sum_{i=1}^{n}\vec{z_i}^T\vec{e} = (\frac{1}{n}\sum_{i=1}^{n}\vec{z_i}^T)\vec{e} =\vec{0} y=n1i=1nzi Te =(n1i=1nzi T)e =0
    则式 2-1 可化简为
    D ( e ⃗ ) = 1 n ∑ i = 1 n ( z i ⃗ T e ⃗ ) T ( z i ⃗ T e ⃗ ) = e ⃗ T ( 1 n ∑ i = 1 n z i ⃗ z i ⃗ T ) e ⃗ (2-2) D(\vec{e}) = \frac{1}{n}\sum_{i=1}^{n}(\vec{z_i}^T\vec{e})^T(\vec{z_i}^T\vec{e}) = \vec{e}^T(\frac{1}{n}\sum_{i=1}^{n}\vec{z_i}\vec{z_i}^T)\vec{e} \tag{2-2} D(e )=n1i=1n(zi Te )T(zi Te )=e T(n1i=1nzi zi T)e (2-2)
    其中, 1 n ∑ i = 1 n z i ⃗ z i ⃗ T \frac{1}{n}\sum_{i=1}^{n}\vec{z_i}\vec{z_i}^T n1i=1nzi zi T 为协方差矩阵,所以问题就转化为:
    { max ⁡ e ⃗ D ( e ⃗ ) e ⃗ T e ⃗ = 1 (2-3) \begin{cases} \max_{\vec{e}} D(\vec{e}) \\ \vec{e}^T\vec{e} = 1 \end{cases} \tag{2-3} {maxe D(e )e Te =1(2-3)
  4. 利用Lagrange 乘子法,求解 2-3 优化问题。
    L = e ⃗ T ∑ e ⃗ + λ ( 1 − e ⃗ T e ⃗ ) (2-4) L = \vec{e}^T\sum\vec{e} + \lambda(1 - \vec{e}^T\vec{e}) \tag{2-4} L=e Te +λ(1e Te )(2-4)
    其中, ∑ \sum 为协方差矩阵,并且为对称矩阵,即 ∑ = ∑ T \sum = \sum^T =T

    ∂ L ∂ e = 2 ∑ e ⃗ − 2 λ e ⃗ = 0 ( ∑ − I ) e ⃗ = 0 (2-5) \frac{\partial{L}}{\partial{\pmb{e}}} = 2\sum\vec{e} - 2\lambda\vec{e} = 0 \\ (\sum - I)\vec{e} = \pmb{0} \tag{2-5} eL=2e 2λe =0(I)e =0(2-5)

2.2 选择维数

        PAC算法的主要思想是先识别距离数据点最近的超平面,然后将数据投影其上,使得投影后的数据方差最大。其中可以通过方差来筛选出正确维度。通常最简单的方法是将考前的主成分对整体数据的方差的贡献率依次相加,直至足够大比例方差值,这时的维度数量是最好的选择。那么设置多大方差比合适呢?我们可以将方差比绘制成关于维度数量的曲线图,曲线通常有拐点,说明方差停止快速增长,则可以把这个拐点对应的维度数量设置最终的需要降至的维度数量。

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

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

相关文章

【JavaScript】LeetCode:56-60

文章目录 56 路径总和Ⅲ57 二叉树的最近公共祖先58 二叉树中的最大路径59 岛屿数量60 腐烂的橘子 56 路径总和Ⅲ 递归遍历每个节点所有可能的路径。pathSum()&#xff1a;返回所有节点满足条件的路径数目&#xff0c;traversal()&#xff1a;返回当前遍历节点满足条件的路径数目…

鸿蒙开发(NEXT/API 12)【状态查询与订阅】手机侧应用开发

注意 该接口的调用需要在开发者联盟申请设备基础信息权限与穿戴用户状态权限&#xff0c;穿戴用户状态权限还需获得用户授权。 实时查询穿戴设备可用空间、电量状态。订阅穿戴设备连接状态、低电量告警、用户心率告警。查询和订阅穿戴设备充电状态、佩戴状态、设备模式。 使…

基于Apache和Tomcat的负载均衡实验报告

说明&#xff1a;本实验为浙江科技大学软件工程本科专业课程《软件体系结构》的实验报告。 五、总结 负载均衡的基础是集群&#xff0c;集群就是一组连在一起的计算机&#xff0c;从外部看它是一个系统&#xff0c;各节点可以是不同的操作系统或不同的硬件构成的计算机。负载…

【d56】【sql】完成sql 7题目

... 有一题感觉没意义&#xff0c;直接不刷

vue + echarts 快速入门

vue echarts 快速入门 本案例即有nodejs和vue的基础&#xff0c;又在vue的基础上整合了echarts Nodejs基础 1、Node简介 1.1、为什么学习Nodejs(了解) 轻量级、高性能、可伸缩web服务器前后端JavaScript同构开发简洁高效的前端工程化 1.2、Nodejs能做什么(了解) Node 打破了…

TCP-2;CSNSDWSSC;肿瘤血管及M1型巨噬细胞靶向肽

【TCP-2 简介】 TCP-2&#xff08;Tumor-conditioned medium-stimulated Clone-2&#xff09;是一种特定的靶向肽&#xff0c;主要针对肿瘤微环境中的肿瘤血管和M1型巨噬细胞。这种肽在肿瘤治疗领域显示出巨大的潜力&#xff0c;尤其是在提高药物递送的精确性、增强免疫介导的抗…

【网络安全】绕过 Etplorer 管理面板实现RCE

未经许可,不得转载。 文章目录 正文使用 ffuf 进行FUZZ查找漏洞漏洞复现目标网站:https://app.redacted.com 正文 使用 ffuf 进行FUZZ ffuf -u https://app.redacted.com/FUZZ -w wordlist.txt -c -r-c:表示彩色输出,方便用户在终端中查看结果。 -r:忽略响应中的重定向…

【重学 MySQL】四十三、多行子查询

【重学 MySQL】四十三、多行子查询 使用 IN 子查询示例&#xff1a;查找属于特定部门的员工 使用 ANY 和 ALL 子查询使用 ANY使用 ALL 注意事项 在 MySQL 中&#xff0c;多行子查询&#xff08;也称为 IN 子查询&#xff09;是指子查询返回多行数据&#xff0c;并且这些数据用于…

新质农业——水资源可持续管理

橙蜂智能公司致力于提供先进的人工智能和物联网解决方案&#xff0c;帮助企业优化运营并实现技术潜能。公司主要服务包括AI数字人、AI翻译、埃域知识库、大模型服务等。其核心价值观为创新、客户至上、质量、合作和可持续发展。 橙蜂智农的智慧农业产品涵盖了多方面的功能&…

基于SpringBoot+Vue的服装销售管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

C++ | Leetcode C++题解之第437题路径总和III

题目&#xff1a; 题解&#xff1a; class Solution { public:unordered_map<long long, int> prefix;int dfs(TreeNode *root, long long curr, int targetSum) {if (!root) {return 0;}int ret 0;curr root->val;if (prefix.count(curr - targetSum)) {ret pref…

CaChe的基本原理

目录 一、Cache的定义与结构 二、Cache的工作原理 三、Cache的映射与替换策略 四、Cache的写操作处理 Cache&#xff0c;即高速缓冲存储器&#xff0c;是计算机系统中位于CPU与主存之间的一种高速存储设备。它的主要作用是提高CPU对存储器的访问速度&#xff0c;从而优化系…

YOLOv8改进 - 注意力篇 - 引入SCAM注意力机制

一、本文介绍 作为入门性篇章&#xff0c;这里介绍了SCAM注意力在YOLOv8中的使用。包含SCAM原理分析&#xff0c;SCAM的代码、SCAM的使用方法、以及添加以后的yaml文件及运行记录。 二、SCAM原理分析 SCAM官方论文地址&#xff1a;SCAM文章 SCAM官方代码地址&#xff1a;SC…

解决 Macos下 Orbstack docker网络问题

两种解决方法&#xff0c;第一种开代理 参考 —— 但是我这一种没成功&#xff0c;第二种方法是换镜像源 { "registry-mirrors": ["http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https://mirrors.tencent.com&q…

安防监控/视频系统EasyCVR视频汇聚平台如何过滤134段的告警通道?

视频汇聚/集中存储EasyCVR安防监控视频系统采用先进的网络传输技术&#xff0c;支持高清视频的接入和传输&#xff0c;能够满足大规模、高并发的远程监控需求。平台支持国标GB/T 28181协议、部标JT808、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为…

大麦演唱会门票

切勿再令您所爱的人耗费高昂的价格去购置黄牛票 ⚠️核心内容参考: 据悉&#xff0c;于购票环节&#xff0c;大麦凭借恶意流量清洗技术&#xff0c;于网络层实时甄别并阻拦凭借自动化手段发起下单请求的流量&#xff0c;强化对刷票脚本、刷票软件以及虚拟设备的识别能力&#…

开源 AI 智能名片 2+1 链动模式 S2B2C 商城小程序的数据运营策略与价值创造

一、引言 1.1 研究背景 在当今数字化时代&#xff0c;数据运营已成为企业发展的核心驱动力。开源 AI 智能名片 21 链动模式 S2B2C 商城小程序作为一种创新的营销工具&#xff0c;与数据运营紧密相连。该小程序通过集成人工智能、大数据分析等先进技术&#xff0c;能够实时收集…

【问题解决】Xshell终端双击或者选中文字自动发送Ctrl+C

问题 在xshell终端&#xff0c;当鼠标双击或者选中一行文字时&#xff0c;xshell会自动发送一个 CtrlC 的命令。如下图&#xff1a; 原因 已知可能会导致这个问题的软件&#xff0c;关掉就没问题了&#xff1a; 有道词典金山词典词霸秒译bing翻译钉钉AI助理360极速搜索… …

Python保留数据删除Excel单元格的函数和公式

在分析处理Excel表格时&#xff0c;我们可能需要使用各种公式或函数对表格数据进行计算&#xff0c;从而分析出更多的信息。但在展示、分享或再利用分析结果时&#xff0c;我们可能需要将含有公式的单元格转换为静态数值&#xff0c;从而简化数据、保护计算结果不被更改&#x…

(c++)内存四区:1.代码区2.全局区(静态区)3.栈区4.堆区

//内存四区&#xff1a;1.代码区 2.全局区 3.栈区 4.堆区 1.放在代码区的有&#xff1a;1.写的代码&#xff1a;只读的、共享的、存放的二进制机器指令、由操作系统直接管理 2.放在全局区的有&#xff1a;1.全局的&#xff08;变量或常量&#xff09; 2.静态的&#xff0…