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

主成分分析法

主成分分析法

  • 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.kler.cn/a/326915.html

相关文章:

  • 实现 QTreeWidget 中子节点勾选状态的递归更新功能只影响跟节点的状态父节点状态不受影响
  • JAVAweb学习日记(三)Ajax
  • 在 Java 项目中集成和使用 dl4j 实现通过扫描图片识别快递单信息
  • 灵当CRM getMyAmbassador Sql注入漏洞复现(附脚本)
  • 高强度螺栓等级划分
  • linux socket编程之udp_dict_serve服务端--引入配置文件
  • 杨辉三角-C语言
  • ppt模板如何制作?建议试试这4招
  • golang学习笔记17-切片
  • 正则表达式和re模块
  • 递归算法介绍和【题解】——数楼梯
  • JS设计模式之享元模式:优化对象内存占用的利器
  • 新手教学系列——系统模块划分原则:如何让系统架构更加灵活与高效
  • 解决端口被占用
  • RIP路由(已被淘汰)
  • .net Framework 4.6 WebAPI 使用Hangfire
  • DRF实操——项目部署
  • 支持老挝语语音识别翻译,对着说话的翻译器《老挝语翻译通》app
  • Spring IoC笔记
  • 【Spring】lombok、dbUtil插件应用
  • 【SQL】筛选字符串与正则表达式
  • 07_矩形圆形绘制
  • 责任链模式优化 文章发布的接口(长度验证,敏感词验证,图片验证等环节) 代码,示例
  • Linux云计算 |【第四阶段】RDBMS1-DAY1
  • EZUIKit.js萤石云vue项目使用
  • Golang plugin包教程:创建与管理插