持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第8天,点击查看活动详情
作者:shuhuai008
链接:【机器学习】【白板推导系列】【合集 1~33】_哔哩哔哩_bilibili
PCA的核心就是对原始特征空间的重构(将一组可能线性相关的变量,通过正交变换变换成一组线性无关的变量)
两个基本的要求是最大投影方差(即找到的投影方向对于数据集投影方差最大),最小重构代价(即降维所得到的新数据与原数据相比,信息损失最小)
X=(x1x2⋯ xN)N×pT=⎝⎛x1Tx2T⋮ xNT⎠⎞=⎝⎛x11x21⋮ xN1x12x22⋮ xN2⋯⋯ ⋯ x1px2p⋮ xNP⎠⎞N×pxi∈Rp,i=1,2,⋯,N记1N=⎝⎛11⋮ 1⎠⎞N×1xˉ=N1XT1N,S=N1XTHX
对于新的方向向量u1,归零化后数据的投影为
(xi−xˉ)u1
显然由于归零化,新的数据集xˉ=0(即对于xi−xˉ数据集),因此投影方差为
J=N1i=1∑N[(xi−xˉ)Tu1]2−02=N1i=1∑N[(xi−xˉ)Tu1]2=u1T(i=1∑NN1(xi−xˉ)(xi−xˉ)T)u1=u1T⋅S⋅u1
对于u1^
u1^=u1argmax u1T⋅S⋅u1
这里我们令u1Tu1=1,因此,根据拉格朗日数乘法有
L(u,λ)∂u1∂L(u,λ)Su1=u1TSu1+λ(1−u1Tu1)=2Su1−λ2u1=0=λu1
上式对于方差矩阵S,u1即为特征向量,λ即为特征值。将该式代回u1^
u1^=u1argmax u1Tλu1=u1argmax λu1Tu1=u1argmax λ
这里是对于降维后只有一个向量,如果是想要降维后有q个向量,思路大体一致
J=j=1∑qujTSuj=j=1∑qλj(从大到小取λ)
另一个角度要求最小重构代价。对于原数据xi,原本是p维向量,如果我们保留ui的所有向量,则可表示为
xi=k=1∑p(xiTui)ui
其中xiTui可以认为是投影长度,也就是单位长度ui为单位向量。
对于x^i,其也是p维的,但我们假设只保留其最大λ对应的前q个维度,则可表示为
xi^=k=1∑q(xiTui)ui
在PCA中,由于我们需要中心化原数据集,因此上述xi需要变为xi−xˉ(其实道理都一样),对应损失函数
J=N1i=1∑N∣∣(xi−xˉ)−xi^∣∣2=N1i=1∑N∣∣∣∣k=q+1∑p[(xi−xˉ)Tuk]uk∣∣∣∣2=N1i=1∑Nk=q+1∑p[(xi−xˉ)Tuk]2=k=q+1∑pukT⋅S⋅uki=1∑NN1[(xi−xˉ)Tuk]2=k=q+1∑pukT⋅S⋅uk
因此对于uk^,有
uk^=argmin ukTSuk
再根据之前的要求ukTuk=1,建立拉格朗日函数和上面最大投影方差完全相同,不再展示
这里就说明了两个角度最大投影方差,最小重构代价是相同的