PCA理解与应用。
首先,我们需要对数据进行标准化: 1. Let μ = 1 m ∑ i = 1 m x ( i ) 2. Replace each x ( i ) with x ( i ) − μ 3. Let σ j 2 = 1 m ∑ i ( x j ( i ) ) 2 4. Replace each x j ( i ) with x j ( i ) / σ j \begin{array}{l}{\text { 1. Let } \mu=\frac{1}{m} \sum_{i=1}^{m} x^{(i)}} \\ {\text { 2. Replace each } x^{(i)} \text { with } x^{(i)}-\mu} \\ {\text { 3. Let } \sigma_{j}^{2}=\frac{1}{m} \sum_{i}\left(x_{j}^{(i)}\right)^{2}} \\ {\text { 4. Replace each } x_{j}^{(i)} \text { with } x_{j}^{(i)} / \sigma_{j}}\end{array} 1. Let μ=m1∑i=1mx(i) 2. Replace each x(i) with x(i)−μ 3. Let σj2=m1∑i(xj(i))2 4. Replace each xj(i) with xj(i)/σj 这里让数据的每个维度的期望变为0,方差变为1,使得不同维度具有可比性。
PCA有多种推导方式,最直观的方式是最大方差和最小平方误差。
在信号处理中认为信号具有较大的方差,噪声有较小的方差,信噪比就是信号与噪声的方差比,越大越好。
一个直观的想法是,我们从 m m m维的feature space投影到 m − 1 m-1 m−1维到feature subspace时,希望使得其方差能最大化的得到保留(也就是数据之间的差异性保留越多越好)
设投影到新的单位向量 u u u中,那么投影点和原点的距离是 x T u x^Tu xTu。我们的目标是求最佳的 u u u,使得投影后的样本点方差最大。
由于这些样本点(样例)的每一维特征均值都为 0,因此投影到 u 上的样本点(只 有一个到原点的距离值)的均值仍然是 0。
因此我们只需要方差最大化,而方差就是投影点到原点的距离的平方和: 1 m ∑ i = 1 m ( x ( i ) T u ) 2 = 1 m ∑ i = 1 m u T x ( i ) x ( i ) T u = u T ( 1 m ∑ i = 1 m x ( i ) x ( i ) T ) u \begin{aligned} \frac{1}{m} \sum_{i=1}^{m}\left(x^{(i)^{T}} u\right)^{2} &=\frac{1}{m} \sum_{i=1}^{m} u^{T} x^{(i)} x^{(i) T} u \\ &=u^{T}\left(\frac{1}{m} \sum_{i=1}^{m} x^{(i)} x^{(i)^{T}}\right) u \end{aligned} m1i=1∑m(x(i)Tu)2=m1i=1∑muTx(i)x(i)Tu=uT(m1i=1∑mx(i)x(i)T)u 可以通过简单的Lagrange变换,得到目标函数的最大值就等于求最大的特征向量。
因此,我们只需要对协方差矩阵进行特征值分解,得到的前 k 大特征值对应的特征向量 就是最佳的 k 维新特征,而且这 k 维新特征是正交的。得到前 k 个 u 以后,样例 X ( i ) X^{(i)} X(i)通过以下变换可以得到新的样本。 y ( i ) = [ u 1 T x ( i ) u 2 T x ( i ) ⋮ u k T x ( i ) ] ∈ R k y^{(i)}=\left[ \begin{array}{c}{u_{1}^{T} x^{(i)}} \\ {u_{2}^{T} x^{(i)}} \\ {\vdots} \\ {u_{k}^{T} x^{(i)}}\end{array}\right] \in \mathbb{R}^{k} y(i)=⎣⎢⎢⎢⎡u1Tx(i)u2Tx(i)⋮ukTx(i)⎦⎥⎥⎥⎤∈Rk 通过选取最大的 k 个 u,使得方差较小的特征(如噪声)被丢弃。
回想我们最开始学习的线性回归等,目的也是求一个线性函数使得直线能够最佳拟合样本点,那么我们能不能认为最佳的直线就是回归后的直线呢?回归时我们的最小二乘法度量的是样本点到直线的坐标轴距离。
我们打算选用另外一种评价直线好坏的方法,使用点到直线的距离 d’来度量。
将样本点 x k x_k xk在直线上的投影记为 x k ′ x_k^{'} xk′,那么我们就是要最小化 ∑ k = 1 n ∥ ( x k ′ − x k ) ∥ 2 \sum_{\mathrm{k}=1}^{n}\left\|\left(\mathrm{x}_{k}^{\prime}-x_{\mathrm{k}}\right)\right\|^{2} k=1∑n∥(xk′−xk)∥2 这个公式称作最小平方误差(Least Squared Error)。
而确定一条直线,一般只需要确定一个点,并且确定方向即可。(推导可参考这里)