机器学习-PCA

24 年 6 月 13 日 星期四
970 字
5 分钟

介绍

PCA的目的是找到一个矩阵将数据降维的同时 最大程度保留原始数据的信息 通过证明可以得出这个矩阵就是原数据(标准化)协方差矩阵的特征向量矩阵 协方差(covariance)矩阵covcov定义为covi,j=1mi,jm(xiμ)T(xjμ)cov_{i,j}=\frac{1}{m}\sum\limits_{i,j}^{m}(x_{i}-\mu)^{T}(x_{j}-\mu) 如果数据集XRndX \in R^{n*d}covRddcov \in R^{d*d} 也可以是covRnncov \in R^{n*n} 前者反应了各个特征之间的变化关系 对角线为各个特征的方差 特征向量矩阵更加易于理解 后者反应了各个数据的差异 对角线是数据的二范数 特征向量矩阵比较抽象 但仍然包含了主成分 当数据量小于特征数量的时候使用后者 协方差选取不同后面降维时映射矩阵乘的方向就不同

其中a和b是特征序号 因为数据是标准化后的 因此μi\mu_{i}为0

推导

可以从两个方面出发进行证明

最小化重构误差

数据XRdnX \in R^{d*n} 投影矩阵ARdrA \in R^{d*r} 投影后ATXA^{T}X 再重构恢复数据为AATXAA^{T}X 希望恢复后与原来的数据差距最小 等价于

argminAXAATXF2 s.t.ATA=Iargmin_{A}\|X-AA^{T}X\|_{F}^{2} \ s.t.A^{T}A=I XAATXF2=tr[(XAATX)T(XAATX)]=tr[XTX2XTAATX+AATXTAATX]=tr(2XTX2XTAATX)\begin{aligned} &\|X-AA^{T}X\|_{F}^{2} \\ &=tr[(X-AA^{T}X)^{T}(X-AA^{T}X)] \\ &=tr[X^{T}X-2X^{T}AA^{T}X+AA^{T}X^{T}AA^{T}X]\\ &=tr(2X^{T}X-2X^{T}AA^{T}X) \end{aligned}

其中XTXX^{T}X为定值 原式等价

argmaxAtr(ATXXTA)s.t.ATA=Iargmax_{A}tr(A^{T}XX^{T}A) s.t. A^{T}A=I

最大化散度

argmaxAATXATμF2 s.t. ATA=Iargmax_{A}\|A^{T}X-A^{T}\mu\|_{F}^{2} \ s.t.\ A^{T}A=I

其中μ=1ni=1n(xi)\mu=\frac{1}{n}\sum\limits_{i=1}^{n}(x_{i}),原数据经过归一化,平均值为0 则原式

ATXF2=tr(ATXXTA)\begin{aligned} &\|A^{T}X\|_{F}^{2}\\ &=tr(A^{T}XX^{T}A) \end{aligned}

即二者都等价于

argmaxAtr(ATXXTA) s.t. ATA=Iargmax_{A}tr(A^{T}XX^{T}A)\ s.t. \ A^{T}A=I

构造拉格朗日函数 并对AA求偏导令其为0

J(A,λ)=tr(ATXXTA)λ(ATAI)JA=2XXTA2λA=0XXTA=λA\begin{aligned} J(A, \lambda)&=tr(A^{T}XX^{T}A)-\lambda(A^{T}A-I)\\ \frac{\partial J}{\partial A}&=2XX^{T}A-2\lambda A=0\\ &\Rightarrow XX^{T}A =\lambda A \end{aligned}

这里的AA就是XXTXX^{T}的特征向量矩阵,λ\lambda为特征值矩阵(diag(λ1,...,λd)diag(\lambda_{1}, ...,\lambda_{d}))

问题

计算完特征矩阵后,要将特征向量根据特征值进行排序进而选取前k(希望降到的维数)个特征向量,为什么要根据特征值选取特征向量?

选取特征向量时,肯定要优先选取包含信息最多的k个向量,因此这个问题就是为什么特征向量大就包含的信息多 假设y1y_{1}为第一个主成分 则有y1=αiTXy_{1}=\alpha_{i}^{T}X 其中αi\alpha_{i}为含有信息量第一的的特征向量,有αiTαi=1\alpha_{i}^{T}\alpha_{i}=1 我们希望y1y_{1}的方差最大, 其中y的方差

var(y1)=var(αiTX)=E[(y1μ)(y1μ)T]=αiE[(Xμ)(Xμ)]αiTvar(y_{1})=var(\alpha_{i}^{T}X)=E[(y_{1}-\mu')(y_{1}-\mu')^{T}]=\alpha_{i}E[(X-\mu)(X-\mu)]\alpha^{T}_{i}

其中间部分即为X的协方差矩阵 记为\sum 则优化式为(这里限制条件是指αi\alpha_{i}是一个单位向量)

argmaxαi αiTαi s.t. αiαiT=1J(αi,λ)=αiTαiλ(αiαiT1)Jαi=2αi2λαiαi=λαi\begin{aligned} argmax_{\alpha_{i}} \ &\alpha_{i}^{T}\sum\alpha_{i} \ s.t. \ \alpha_{i}\alpha_{i}^{T}=1 \\ J(\alpha_{i}, \lambda) &=\alpha_{i}^{T}\sum\alpha_{i} -\lambda(\alpha_{i}\alpha_{i}^{T}-1)\\ \frac{\partial J}{\partial \alpha_{i}}&=2\sum\alpha_{i}-2\lambda\alpha_{i}\\ &\Rightarrow \sum\alpha_{i}=\lambda\alpha_{i} \end{aligned}

结论带入原式

αiTαi=αiTλαi=αiTαiλ=λ\alpha_{i}^{T}\sum\alpha_{i}=\alpha_{i}^{T}\lambda\alpha_{i}=\alpha_{i}^{T}\alpha_{i}\lambda=\lambda

也就是说 方差等价于λ\lambda 即特征值 特征值越大 映射后的数据方差也就越大

下面继续证明第二个主成分y2y_{2}对应的特征向量为第二大的特征值对应的向量 待优化式(其中第二个限制条件是指特征向量每每正交)

argmaxαi αiTαi s.t. αiαiT=1,αiTα1=0J(αi,λ,θ)=αiTαiλ(αiTαi1)θαiTα1Jαi=2αi2λαiθα1=2αiTαi2λαiTαiθαiTαi=0θ=0带入原式有αi=λαi\begin{aligned} argmax_{\alpha_{i}} \ &\alpha_{i}^{T}\sum\alpha_{i} \ s.t. \ \alpha_{i}\alpha_{i}^{T}=1,\alpha_{i}^{T}\alpha_{1}=0 \\ J(\alpha_{i}, \lambda, \theta)&=\alpha_{i}^{T}\sum\alpha_{i}-\lambda(\alpha_{i}^{T}\alpha_{i}-1)-\theta\alpha_{i}^{T}\alpha_{1} \\ \frac{\partial J}{\partial \alpha_{i}}&=2\sum\alpha_{i}-2\lambda\alpha_{i}-\theta\alpha_{1} \\ &=2\alpha_{i}^{T}\sum\alpha_{i}-2\lambda\alpha_{i}^{T}\alpha_{i}-\theta\alpha_{i}^{T}\alpha_{i}\\ &=0 \\ &\Rightarrow \theta=0 \\ 带入原式有 &\sum\alpha_{i}=\lambda\alpha_{i} \end{aligned}

从而同样可以得出 降维后方差等于特征值的结论 依次类推 可以通过yk1y_{k-1}推得yky_{k}为特征矩阵时 降维后方差与特征值的关系 因此 可以得出 降维后的方差和特征值是等价的 所以将特征值按降序排列后 依次选取的特征向量就是包含信息量最多的前几个特征值

直觉上的理解

如下图,原数据A,B,C要投影到y1y_{1} ![[./img/PAC等价关系.png|500]] 假设数据已经经过归一化 原数据的方差OA2+OB2+OC2OA^{2}+OB^{2}+OC^{2}固定 最大化散度即最大化OA+OB+OCOA^{`}+OB^{`}+OC^{`} 在三角形OAAOAA^{`}中 OA固定 最大化OAOA^{`}即最小化AAA^{`}A 也就是最小化重构误差

pca原理1pca原理2 来源: 李航:统计学习方法(第二版)

文章标题:机器学习-PCA

文章作者:Blank

文章链接:https://blankxiao.github.io/posts/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/pca[复制]

最后修改时间:


商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
本文采用CC BY-NC-SA 4.0进行许可。