数据科学基础(十) 降维
10.1 主成分分析(PCA)
不懂线性代数, 下面这些参考了一些 PCA 的说明, 但我总觉得某些解释的不是很严谨.
目标
PCA 常用于高维数据的降维,可用于提取数据的主要特征分量.
对于原始数据矩阵
其中, 列向量 为 $n$ 个样本中的一个. $r$ 行表示 $r$ 个维度.
对该矩阵进行中心化,得到中心化矩阵 $X$
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 为得到的特征值的数量.