机器学习基础专题:主成分分析技术PCA

主成分分析技术

全称是Principal component analysis (PCA)。将原始数据从p个特征维度降低到d个维度。

在这里插入图片描述

原理

对原始特征空间进行重构。需要最大投影方差,尽可能保留数据在原空间的信息。投影就是 x T w x^Tw xTw,我们必须规定 ∣ w ∣ = 1 |w| = 1 w=1,否则可以通过增大 w w w来增大投影方差,失去了意义。具体可以参见损失函数部分。

从另外一个角度理解,就是需要最小化重构数据和原数据之间的距离。

输入

训练集数据 D = ( x 1 , y 1 ) . . . ( x M , y M ) D = {(x_1,y_1) ... (x_M,y_M)} D=(x1,y1)...(xM,yM) x i ∈ X ⊆ R p x_i \in \mathcal{X} \subseteq R^p xiXRp y i ∈ R y_i \in R yiR

X = ( x 1   x 2   . . .   x M ) T ∈ R M ∗ p X = (x_1\ x_2\ ...\ x_M)^T \in R^{M*p} X=(x1 x2 ... xM)TRMp

同时,我们可以得到数据均值和方差。让我们用 1 M 1_M 1M表示一个长度为M,值全为1的列向量。用 H H H表示中心矩阵。 H = I M − 1 M 1 M 1 M T H = I_M - \frac 1 M 1_M 1_M^T H=IMM11M1MT。通过计算我们可以得到 H n = H H^n = H Hn=H

x ˉ = 1 M ∑ i = 1 M x i = 1 M X T 1 M \bar x = \frac{1}{M} \sum_{i=1}^M x_i = \frac{1}{M} X^T 1_M xˉ=M1i=1Mxi=M1XT1M

S = 1 M ∑ i = 1 M ( x i − x ˉ ) T ( x i − x ˉ ) = 1 M X T H X S = \frac{1}{M} \sum_{i=1}^M (x_i - \bar x)^T(x_i - \bar x) = \frac{1}{M} X^T H X S=M1i=1M(xixˉ)T(xixˉ)=M1XTHX

输出

X ′ = ( x 1 ′   x 2 ′   . . .   x M ′ ) T ∈ R M ∗ d X' = (x_1'\ x_2'\ ...\ x_M')^T \in R^{M*d} X=(x1 x2 ... xM)TRMd

损失函数

因为数据是 p p p维的,我们让 u i u_i ui当作每一个维度上的 w w w,仍然满足 ∣ u i ∣ = 1 |u_i| = 1 ui=1。我们的目标是根据投影方差定义的。
J = 1 M ∑ i = 1 M ( ( x i − x ˉ ) u 1 ) 2 = 1 M ∑ i = 1 M u 1 T ( x i − x ˉ ) ( x i − x ˉ ) T u 1 = u 1 T 1 M ∑ i = 1 M ( x i − x ˉ ) ( x i − x ˉ ) T u 1 = u 1 T S u 1 J = \frac 1 M \sum_{i=1}^M ((x_i - \bar x)u_1)^2 \\\\ = \frac 1 M \sum_{i=1}^M u_1^T (x_i - \bar x) (x_i - \bar x)^T u_1\\\\ = u_1^T \frac 1 M \sum_{i=1}^M (x_i - \bar x) (x_i - \bar x)^T u_1\\\\ = u_1^T S u_1 J=M1i=1M((xixˉ)u1)2=M1i=1Mu1T(xixˉ)(xixˉ)Tu1=u1TM1i=1M(xixˉ)(xixˉ)Tu1=u1TSu1
那么我们可以得到 u 1 ∗ = a r g m a x u   u 1 T S u 1 u_1^* = argmax_u\ u_1^T S u_1 u1=argmaxu u1TSu1且满足 ∣ u i ∣ = 1 |u_i| = 1 ui=1

为了体现出 ∣ u i ∣ = 1 |u_i| = 1 ui=1的特点,我们对损失函数进行重构。

L ( u 1 , λ ) = u 1 T S u 1 + λ ( 1 − u 1 T u 1 ) L(u_1, \lambda) = u_1^T S u_1 + \lambda(1 - u_1^T u_1) L(u1,λ)=u1TSu1+λ(1u1Tu1)

接下来对 u i u_i ui进行求导,
∂ L ∂ u 1 = 2 S u 1 − 2 λ u 1 = 0 S u 1 = λ u 1 \frac {\partial L} {\partial u_1} = 2Su_1 - 2\lambda u_1 = 0 \\\\ Su_1 = \lambda u_1 u1L=2Su12λu1=0Su1=λu1
这里我们可以发现 u 1 u_1 u1是S的eigen vector, λ \lambda λ是对应的eigen value。

其他 u i u_i ui通过相同过程求解,只需要满足 u i u_i ui之间是互相垂直的即可。

步骤

(1)将样本矩阵中心化得到 X ′ X' X,即每一维度减去该维度的均值,使维度上的均值为0

(2)计算样本协方差矩阵 S = 1 M − 1 X ′ T X ′ S = \frac{1}{M-1} X^{'T}X' S=M11XTX

(3)寻找协方差矩阵的eigen values和eigen vectors

降维之后对原始数据进行还原

X ^ = ∑ j = 1 d ( X ′ T u j ) u j \hat X = \sum_{j=1}^d (X'^T u_j)u_j X^=j=1d(XTuj)uj

适用场景

原始数据特征过于庞大且特征有明显的相关性。

优点

  1. 计算简单,容易实现
  2. 在一定程度上起到降噪效果
  3. 无参数限制

缺点

  1. 降维之后的数据缺乏解释性

Reference

猜你喜欢

转载自blog.csdn.net/qq_40136685/article/details/108749959