数据集共有N个样本, x i ∈ R P x_i\in R^P xi∈RP,降维之后的样本 x ^ ∈ R q , q ≪ p \hat{x}\in R^q,q\ll p x^∈Rq,q≪p
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ˉ=N1i∑NxiXˉ=N1(x1,x2,...,xN)P×N⋅⎝⎜⎜⎛11...1⎠⎟⎟⎞N×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=N1i∑N(xi−Xˉ)(xi−Xˉ)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(x1−Xˉ,x2−Xˉ,...,xN−Xˉ)⋅⎝⎜⎜⎛(x1−Xˉ)T(x2−Xˉ)T...(xN−Xˉ)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)=XT−N1xT⋅1N×1⋅1N×1T=XT(E−N11N×1⋅1N×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 (E−N11N×1⋅1N×1T)T⋅X
则可以得到协方差矩阵
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=(E−N11N×1⋅1N×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=(E−N11N×1⋅1N×1T)=H
计算可得 H ⋅ H = H , H N = H H\cdot H=H,H^N=H H⋅H=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,∣u∣2=1,uu=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(xi−Xˉ)⋅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=N1i∑N(∣xi−xi^∣2)J=N1i∑N(∣j∑pxiuju−j∑qxiujuj∣2)J=N1i∑N(∣k=p+1∑qxiukuk∣2)(括号里面的是个向量)J=N1i∑Nk=p+1∑q(xiuk)2(转化为求欧式距离)J=N1i∑Nk=p+1∑q((xi−Xˉ)uk)2(样本中心化)J=k=p+1∑qN1i∑N((xi−Xˉ)uk)2J=k=p+1∑qukSuk
则得到重构代价函数:
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+1∑quSus.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+1∑qukSuks.t.ukuk=1
则可以分别得到 k = q + 1 , . . . , p k={q+1,...,p} k=q+1,...,p的特征向量,剩余的q个特征向量就是需要的降维的q个降维之后的基向量。
当高维空间到低维空间中是线性变化的时候可以采用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