10.1 主成分分析(PCA)

不懂线性代数, 下面这些参考了一些 PCA 的说明, 但我总觉得某些解释的不是很严谨.

目标

PCA 常用于高维数据的降维,可用于提取数据的主要特征分量.

对于原始数据矩阵

其中, 列向量 为 $n$ 个样本中的一个. $r$ 行表示 $r$ 个维度.

对该矩阵进行中心化,得到中心化矩阵 $X$

image-20210503001820524

X 中心化后, 样本点的中心点即原点, 寻找点分散程度最大的方向, 即让这些点投影后的分散程度最大.

向量内积

若 $\alpha = (a_1, a_2,\cdots,a_n)^T,\beta = (b_1,b_2,\cdots,b_n)^T$ , 则内积可表示为:

内积的几何意义:

当 $B$ 为单位向量$(\sqrt{b_1^2+b_2^2+\cdots+b_n^2}=1)$时, 两个向量的内积就是 $A$ 在这个单位向量方向投影的长度.

散度

分散程度可以用方差或者协方差衡量, 回顾一下方差和协方差:

构建协方差矩阵 $C$:

由上述公式可知协方差矩阵 $C$ 的每一项为:

刚好是 $Z$ 中的第 $i$ 行与第 $j$ 行做内积再除以 $n-1$ 的结果.

则协方差矩阵与中心化后的原始数据矩阵存在以下关联:

设要投影的单位向量为 $V$ , 则得到的投影后的值为$V\cdot Z=V^TZ$, 投影后的方差为:

其中 $\alpha_i$ 为 $Z$ 中的第 $i$ 列.

拉格朗日乘数法

求 $S^2$ 最大值,限制条件: $||V||=1$

构建方程:

对 $V$ 求导数得:

令导数为零得:

这个形式是特征值和特征向量的定义式, $C$ 是 $n$ 阶方阵, $V$ 是特征向量, $\lambda$ 是特征值. 求特征值和特征向量需要进行特征值分解 (EVD) , 这是线性代数的内容.

降维

将 ② 代入 ① 得 $ s^2 = F(V) = \lambda$, 特征值 $λ$ 越大, 则散度越大.

将所有的特征值降序排列, 根据最终需要的维度 $d$ 来选择前 $d$ 大的特征值对应的特征向量, 并将特征向量单位化后组成矩阵 $W = (w_1,w_2,\cdots,w_d)$, 由于每个点都可以视为在各个特征向量方向上的投影组成, 则最终降维后:

矩阵 $X_{d\times n}$ 的第一行称为第一主成分, 以此类推.

关于 d 的选择:

按 czy 课件来的话, 要求 , p 为得到的特征值的数量.