机器学习(十):PCA

1. PCA

1.1 PCA算法

为什么要使用主成分分析?正如名字所示,其目的显而易见,不再赘述,此处从自动编码器的角度审视PCA。
这里写图片描述
最小化如下损失函数:

C=12mi=1m||y(i)WWTx(i)||2
根据 WWT 的对称性,我们使用eigen-decompose:
WWT=VDVT
其中V是单位正交阵,D是对角矩阵,都是d*d维, VVT=I D 中的非零值小于 d¯ 个。

我们可以从物理意义上来解析 h(x) 到底干了什么:

  1. VTx 首先对x进行坐标变换。此处V是d*d维,x是d维,所以此处对应的是将向量x旋转;
  2. D(VTx) ,因为D中非零值小于 d¯ 个,所以其作用是将 (dd¯ 个分量设为0,其余分量进行scale。
  3. V(DVTx) 将上述操作后的变量变回原来的坐标系,此处对应的是将向量旋转回来。

||yWWT||2=||VIVTxVDVTx||2=[V(IVTxDVTx)]T[V(IVTxDVTx)]=(IVTxDVTx)T(IVTxDVTx)=||(ID)VTx||2
那么我们的问题变成:
minVminD12mi=1m||(ID)VTx(i)||2

首先对内层最小化,很明显 ID 中的0越多越好:
这里写图片描述

接下来我们就外层进行最小化,很明显
这里写图片描述

假设 d¯=1 ,则 VT 只会保留下第一行 vT ,则有

maxvi=1mvTx(i)x(i)Tv  s.t.vTv=1

如何求解?令
J=vTXTXvλ(vTv1)
令偏微分等于0,有
XTXv=λv
此时有
maxvvTXTXv=λ

什么意思呢?我们只要对 XTX 进行特征分解即可。
这里写图片描述
这里写图片描述

1.2 PCA使用注意事项

这里写图片描述
如果输入的多个维度数值不在同一尺度下,那么可以先将数值都变换到同一尺度。

如何选择 d¯
这里写图片描述

一定要记住,不要过早地使用PCA。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/wangyanphp/article/details/54956072