机器学习—PCA

文章目录

  • PCA
    • 基于最大投影方差
    • 基于最小投影距离
  • 核化PCA
  • LDA

本文将记录有关PCA降维的内容。
当样本维度过高但是数据集数量较小时,在训练模型时很容易陷入过拟合,处理过拟合可以采用正则化、增加数据量、降低数据维度。在降低数据维度可以采用的方法有特征选择、线性降维(PCA)、非线性降维(流形)

PCA

数据集共有N个样本, x i ∈ R P x_i\in R^P xiRP,降维之后的样本 x ^ ∈ R q , q ≪ p \hat{x}\in R^q,q\ll p x^Rq,qp
X = ( x 1 , x 2 , . . , x N ) N × P T X = ( x 1 T x 2 T . . . x N T ) = ( x 11 , x 12 , . . . , x 1 P x 21 , x 22 , . . . , x 2 P . . . x N 1 , x N 2 , . . . , x N P ) X=(x_1,x_2,..,x_N)^T_{N\times P}\\ X= \left( \begin{array}{ccc} x_1^T \\ x_2^T\\ ...\\ x_N^T \end{array} \right )=\left( \begin{array}{} x_{11},x_{12},...,x_{1P} \\ x_{21},x_{22},...,x_{2P}\\ ...\\ x_{N1},x_{N2},...,x_{NP} \end{array} \right ) X=(x1,x2,..,xN)N×PTX=x1Tx2T...xNT=x11,x12,...,x1Px21,x22,...,x2P...xN1,xN2,...,xNP
样本均值
X ˉ = 1 N ∑ i N x i X ˉ = 1 N ( x 1 , x 2 , . . . , x N ) P × N ⋅ ( 1 1 . . . 1 ) N × 1 = 1 N X T × 1 N × 1 \bar X =\frac1N\sum_i^Nx_i\\ \bar X= \frac1N(x_1,x_2,...,x_N)_{P\times N} \cdot \left(\begin{array}{}1\\1\\...\\1\end{array}\right)_{N\times1}=\frac1NX^T\times 1_{N\times 1} Xˉ=N1iNxiXˉ=N1(x1,x2,...,xN)P×N11...1N×1=N1XT×1N×1
矩阵协方差,当x为列向量时: x x T xx^T xxT,当x是行向量是 x T x x^Tx xTx
S = 1 N ∑ i N ( x i − X ˉ ) ( x i − X ˉ ) T S = \frac1N\sum_i^N(x_i-\bar X)(x_i-\bar X)^T S=N1iN(xiXˉ)(xiXˉ)T
展开可知 S = 1 N ( x 1 − X ˉ , x 2 − X ˉ , . . . , x N − X ˉ ) ⋅ ( ( x 1 − X ˉ ) T ( x 2 − X ˉ ) T . . . ( x N − X ˉ ) T ) S=\frac1N(x_1-\bar X,x_2-\bar X,...,x_N-\bar X)\cdot \left(\begin{array}{}(x_1-\bar X)^T\\(x_2-\bar X)^T\\...\\(x_N-\bar X)^T\end{array}\right) S=N1(x1Xˉ,x2Xˉ,...,xNXˉ)(x1Xˉ)T(x2Xˉ)T...(xNXˉ)T
该式的第一部分可化为
= ( ( x 1 , x 2 , . . . x N ) − X ˉ ⋅ 1 N × 1 T ) = X T − 1 N x T ⋅ 1 N × 1 ⋅ 1 N × 1 T = X T ( E − 1 N 1 N × 1 ⋅ 1 N × 1 T ) =((x_1,x_2,...x_N)-\bar X\cdot 1_{N\times 1}^T)\\ =X^T-\frac1Nx^T\cdot 1_{N\times1}\cdot 1_{N\times1}^T\\ =X^T(E-\frac1N1_{N\times1}\cdot 1_{N\times1}^T) =((x1,x2,...xN)Xˉ1N×1T)=XTN1xT1N×11N×1T=XT(EN11N×11N×1T)
则第二部分转置为
( E − 1 N 1 N × 1 ⋅ 1 N × 1 T ) T ⋅ X (E-\frac1N1_{N\times1}\cdot 1_{N\times1}^T)^T\cdot X (EN11N×11N×1T)TX
则可以得到协方差矩阵
S = 1 N X T H H T X S=\frac1N X^THH^TX S=N1XTHHTX
其中定义中心矩阵 H = ( E − 1 N 1 N × 1 ⋅ 1 N × 1 T ) H=(E-\frac1N1_{N\times1}\cdot 1_{N\times1}^T) H=(EN11N×11N×1T)

中心矩阵的作用是将样本的均值变成0, x i ^ = H x i , ∑ i x i ^ = 0 \hat{x_i}=Hx_i,\sum_i\hat{x_i}=0 xi^=Hxi,ixi^=0
中心矩阵是一个对称矩阵, H T = ( E − 1 N 1 N × 1 ⋅ 1 N × 1 T ) = H H^T=(E-\frac1N1_{N\times1}\cdot1_{N\times1}^T)=H HT=(EN11N×11N×1T)=H
计算可得 H ⋅ H = H , H N = H H\cdot H=H,H^N=H HH=H,HN=H

则协方差矩阵可化简为 S = 1 N X T H X S=\frac1NX^THX S=N1XTHX

PCA的核心思想即为对样本空间特征的重构并进行特征选择,也就是在特征空间找找到一个超平面,将样本映射在该超平面中从而实现降维,基于的方法是1样本对于超平面的最大投影方差;2样本的最小投影距离(最小重构距离)。
假设超平面的单位基向量为 u , ∣ u ∣ 2 = 1 , u u = 1 u,|u|^2=1,u^u=1 u,u2=1,uu=1

基于最大投影方差

  1. 样本完成中心化 x i − X ˉ x_i-\bar X xiXˉ
  2. 中心化之后的样本到超平面的投影
    ( x i − X ˉ ) T ⋅ u (x_i-\bar X)^T\cdot u (xiXˉ)Tu
  3. 所有样本的投影方差为 J = 1 N ∑ i N ( ( x i − X ˉ ) T ⋅ u − 0 ) 2 J=\frac1N\sum_i^N((x_i-\bar X)^T\cdot u-0)^2 J=N1iN((xiXˉ)Tu0)2
    可以转化为
    J = 1 N ∑ i N u T ( x i − X ˉ ) ( x i − X ˉ ) T u J = u T ( 1 N ∑ i N ( x i − X ˉ ) ( x i − X ˉ ) T ) u J = u T S u J=\frac1N\sum_i^N u^T(x_i-\bar X)(x_i-\bar X)^T u\\ J=u^T(\frac1N\sum_i^N(x_i -\bar X)(x_i-\bar X)^T) u\\ J=u^TSu J=N1iNuT(xiXˉ)(xiXˉ)TuJ=uT(N1iN(xiXˉ)(xiXˉ)T)uJ=uTSu
  4. 则可以得到一个最优化问题
    u ^ = arg ⁡ max ⁡ u T S u s . t .    u T u = 1 \hat{u}=\arg\max u^TSu\\ s.t.\;u^Tu=1 u^=argmaxuTSus.t.uTu=1
    通过拉格朗日数乘法求解u
    L ( u , λ ) = u t S u + λ ( 1 − u t u ) ∂ l ∂ u = 2 S u − 2 λ u = 0 S u = λ u s . t .    u T u = 1 L(u,\lambda)=u^tSu+\lambda (1-u^tu)\\ {\partial l\over \partial u}=2Su-2\lambda u=0\\ Su=\lambda u\\ s.t. \;u^Tu=1 L(u,λ)=utSu+λ(1utu)ul=2Su2λu=0Su=λus.t.uTu=1
    则得到超平面的基向量是矩阵协方差矩阵的特征向量。那么得到的特征向量即是对原样本空间特征的重构。将特征值从大到小排列,可以得到其对应的特征向量,即可得到所需要的降维之后的超平面的基向量,至此完成了对样本的降维。

降维之后的向量为 Z i = ∑ j q ( x i − X ˉ ) ⋅ u j u j Z_i=\sum_j^q(x_i-\bar X)\cdot u_ju_j Zi=jq(xiXˉ)ujuj

基于最小投影距离

最小投影距离等价于最小的重构距离,即对于要投影的超平面的基向量u和投影之后的向量Z,现在得到将Z恢复到X需要距离最小的那个u,即是最优的超平面的基向量。
假设将样本空间重构之后的基向量为 u 1 , u 2 , u p u_1,u_2,u_p u1,u2,up,则对于每个样本而言可以得到其坐标 x i = ∑ j p x i u j u j x_i=\sum_j^px_iu_ju_j xi=jpxiujuj,因为样本空间没变只是改变了基向量,所有样本和之前基向量的样本是一样的;得到降维之后的样本其坐标 x i ^ = ∑ j q x i u j u j \hat{x_i}=\sum_j^q x_iu_ju_j xi^=jqxiujuj,则可以得到两者之间的差值,即为投影所需要的重构距离也可以理解为投影距离。
J = 1 N ∑ i N ( ∣ x i − x i ^ ∣ 2 ) J = 1 N ∑ i N ( ∣ ∑ j p x i u j u − ∑ j q x i u j u j ∣ 2 ) J = 1 N ∑ i N ( ∣ ∑ k = p + 1 q x i u k u k ∣ 2 ) ( 括 号 里 面 的 是 个 向 量 ) J = 1 N ∑ i N ∑ k = p + 1 q ( x i u k ) 2 ( 转 化 为 求 欧 式 距 离 ) J = 1 N ∑ i N ∑ k = p + 1 q ( ( x i − X ˉ ) u k ) 2 ( 样 本 中 心 化 ) J = ∑ k = p + 1 q 1 N ∑ i N ( ( x i − X ˉ ) u k ) 2 J = ∑ k = p + 1 q u k S u k J=\frac1N\sum_i^N(|x_i-\hat{x_i}|^2)\\ J=\frac1N\sum_i^N(|\sum_j^px_iu_ju_-\sum_j^q x_iu_ju_j|^2)\\ J=\frac1N\sum_i^N(|\sum_{k=p+1}^qx_iu_ku_k|^2) (括号里面的是个向量)\\ J=\frac1N\sum_i^N\sum_{k=p+1}^q(x_iu_k)^2(转化为求欧式距离)\\ J=\frac1N\sum_i^N\sum_{k=p+1}^q((x_i-\bar X)u_k)^2(样本中心化)\\ J=\sum_{k=p+1}^q\frac1N\sum_{i}^N((x_i-\bar X)u_k)^2\\ J=\sum_{k=p+1}^qu_kSu_k J=N1iN(xixi^2)J=N1iN(jpxiujujqxiujuj2)J=N1iN(k=p+1qxiukuk2)()J=N1iNk=p+1q(xiuk)2()J=N1iNk=p+1q((xiXˉ)uk)2()J=k=p+1qN1iN((xiXˉ)uk)2J=k=p+1qukSuk
则得到重构代价函数:
u ^ = arg ⁡ min ⁡ ∑ k = p + 1 q u S u s . t .    u k u = 1 \hat{u}=\arg\min\sum_{k=p+1}^quSu\\ s.t.\;u_ku=1 u^=argmink=p+1quSus.t.uku=1
因为每个U之间线性无关,则对于每一个U,都可以分别求解
u k ^ = arg ⁡ min ⁡ ∑ k = p + 1 q u k S u k s . t .    u k u k = 1 \hat{u_k}=\arg\min\sum_{k=p+1}^qu_kSu_k\\ s.t.\;u_ku_k=1 uk^=argmink=p+1qukSuks.t.ukuk=1
则可以分别得到 k = q + 1 , . . . , p k={q+1,...,p} k=q+1,...,p的特征向量,剩余的q个特征向量就是需要的降维的q个降维之后的基向量。

核化PCA

当高维空间到低维空间中是线性变化的时候可以采用PCA的方法,但如果高维数据不是线性的时候,需要先从将原始样本映射到一个更高维的空间中,在更高维的空间中采用PCA的方法
将原始的求协方差矩阵 X T X x = λ x X^TX x=\lambda x XTXx=λx
映射到高维的空间中求协方差矩阵的特征向量 ϕ ( X T ) ϕ ( X ) x = λ x \phi(X^T)\phi(X)x=\lambda x ϕ(XT)ϕ(X)x=λx
其中 ϕ ( X ) \phi(X) ϕ(X)映射核函数,通常不会显示的给出,而是定义 K ( x , z ) = ϕ ( x ) ϕ ( z ) K(x,z)=\phi(x)\phi(z) K(x,z)=ϕ(x)ϕ(z)

LDA

有关带类别的样本降维采用LDA的方式,相关内容已经有大佬总结过这里做一个搬运LDA

你可能感兴趣的:(机器学习)