7.4.4 主成分分析 PCA

7.4.4 主成分分析 PCA

假设我们研究的对象具有相关属性,令属性向量为 x = ( x 1 , x 2 , , x m ) \mathbf{x} = (x_1,x_2,\cdots,x_m) 即有 m m 个属性。例如分析学生成绩,每个学生有数学、语文、英语、物理、化学等 5 5 门学科成绩,则成绩向量为 x = ( x 1 , x 2 , , x 5 ) \mathbf{x} = (x_1,x_2,\cdots,x_5) 即有 5 5 个属性。我们收集了 n n 个学生的成绩,则所有学生成绩构成数据矩阵 A = [ x 1 , x 2 , , x n ] A = [\mathbf{x}_1,\mathbf{x}_2,\cdots,\mathbf{x}_n] 即数据矩阵每列为一个学生成绩向量,共有 n n 个向量。本节为了表述方便,把数据矩阵每列向量记为 x i \mathbf{x}_i a i \mathbf{a}_i 。每个学生成绩向量是 m m 维空间的点,数据矩阵是 n n 个点构成的点云。这些点云虽然位于 m m 维空间,但大部分情况下位于 m m 维空间中低维子空间,因为每个学生成绩高度相关,即成绩好的学生每门课成绩都好,成绩差的学生每门课成绩都差。由于点云位于低维子空间,所以其真实维度远小于 m m 维。

PCA分析之前,先要对数据进行中心化,即每个新属性 x i ( x i x ˉ i ) x'_i = (x_i - \bar x_i) 其中 x ˉ i \bar x_i 是属性平均值。例如学生成绩,先计算所有学生数学的平均值,然后新数学成绩为数学成绩-平均值,其它科目成绩同样处理。数学描述为记 x ˉ \mathbf{\bar x} 为属性平均值,则新属性为 x i = x i x ˉ \mathbf{x}'_i = \mathbf{x}_i - \mathbf{\bar x} 。为了简化符号,把中心化后数据矩阵还是记为 A A

根据奇异值分解 A T u i = σ i v i A^T\mathbf{u}_i = \sigma_i \mathbf{v}_i
( A T u i ) T A T u i = ( σ i v i ) T σ i v i = σ i 2 (A^T\mathbf{u}_i)^TA^T\mathbf{u}_i = (\sigma_i \mathbf{v}_i)^T\sigma_i \mathbf{v}_i = \sigma^2_i

令向量 y i = A T u i \mathbf{y}_i = A^T\mathbf{u}_i ,则其分量 y i j y_{ij} 表示第 j j 个学生成绩向量 x j \mathbf{x}_j 与向量 u i \mathbf{u}_i 的内积,内积 y i j y_{ij} 可以看作第 j j 个学生第 i i 门“综合科目”“加权”成绩 x j T u i = u i 1 x 1 + u i 2 x 2 + + u i m x m \mathbf{x}_j^T\mathbf{u}_i = u_{i1}x_1+u_{i2}x_2+\cdots+u_{im}x_m ,权重为 u i j u_{ij} ,由于 u i \mathbf{u}_i 为单位向量,故权重的平方和为1。如果把 u i \mathbf{u}_i 加权后的成绩 y i \mathbf{y}_i 看作第 i i 门“综合科目”的成绩,则学生有 m m 门“综合科目”的成绩,称为新成绩。向量 y i \mathbf{y}_i 就是所有学生第 i i 门“综合科目”的成绩构成的成绩向量,根据 y i T y i = σ i 2 \mathbf{y}^T_i\mathbf{y}_i = \sigma^2_i 知其方差为 1 n 1 σ i 2 \frac{1}{n-1}\sigma^2_i ,其中 n n 是学生数,由于系数 1 n 1 \frac{1}{n-1} 是固定的,后面为了书写方便,方差省略该常系数。故每门新成绩的方差为 σ 1 2 , σ 2 2 , , σ m 2 \sigma^2_1,\sigma^2_2,\cdots,\sigma^2_m 。因为数据已经中心化,所以样本每个属性的均值为 0 0 ,新属性的均值也是 0 0 ,所以新属性的平方就是方差。根据能量守恒定律:奇异值平方和等于所有元素平方和,新成绩的方差之和包含了数据矩阵 A A 所有的信息。由于 σ 1 σ 2 σ m \sigma_1 \ge \sigma_2 \ge \cdots \ge \sigma_m 当其前 k k 门新成绩方差占总方差的 99 % 99.9 % 99\% 或 99.9\% 时,我们可以只用前 k k 门新成绩表示成绩矩阵,达到数据压缩目的,前 k k 门新成绩称为主成分,这就是主成分分析,一般有 k m k \ll m k k 为点云子空间的维度,是数据矩阵真实维度。第一个主成分最重要,重要性为 σ 1 2 / i σ i 2 \sigma^2_1/\sum_i{\sigma^2_i} ,重要性依次减小。

y i = A T u i \mathbf{y}_i = A^T\mathbf{u}_i 还可以看作每个样本点数据 a i \mathbf{a}_i u i \mathbf{u}_i 方向上的投影,所有投影构成向量 y i \mathbf{y}_i ,第一个方向投影 u 1 \mathbf{u}_1 的方差最大,故称为第一主方向, u 2 \mathbf{u}_2 的方差其次,故称为第二主方向,PCA就是依次找到最大的前 k k 个主方向,主成分方向互相正交

( A T u i ) T ( A T u j ) (A^T\mathbf{u}_i)^T(A^T\mathbf{u}_j) 表示第 i i 门“综合科目”和第 j j 门“综合科目”的协方差
( A T u i ) T ( A T u j ) = u i T A A T u j = u i T σ j 2 u j = 0 (A^T\mathbf{u}_i)^T(A^T\mathbf{u}_j) = \mathbf{u}^T_iAA^T\mathbf{u}_j=\mathbf{u}^T_i\sigma^2_j\mathbf{u}_j = 0

故任意两门不同的“综合科目”的协方差为 0,即表示这些科目成绩不相关解耦了,所以主成分之间都是解耦的,这是主成分分析的第二个优点。

主成分分析快速证明方法如下:

矩阵 A A T AA^T 是什么呢?就是协方差矩阵!第五章介绍过,请大家复习下。
A A T = U Σ 2 U T AA^T = U\Sigma^2 U^T U T A A T U = ( U T A ) ( U T A ) T = Σ 2 U^TAA^TU = (U^TA)(U^TA)^T = \Sigma^2 ,令

Y = U T A = [ u 1 T A u m T A ] Y = U^TA = \left[ \begin{matrix} \mathbf{u}^T_1A \\ \vdots \\ \mathbf{u}^T_mA \end{matrix} \right]

即为“综合科目”成绩矩阵,由 Y Y T = Σ 2 YY^T = \Sigma^2 知第 i i 门“综合科目”方差为 σ i 2 \sigma^2_i ,第 i i 门“综合科目”和第 j j 门“综合科目”的协方差为 0 ,数据矩阵 Y Y 的前 k k 行向量

Y = U T A = [ u 1 T A u k T A ] Y = U^TA = \left[ \begin{matrix} \mathbf{u}^T_1A \\ \vdots \\ \mathbf{u}^T_kA \end{matrix} \right]

即为主成分。由 Y = U T A Y = U^TA 即对数据矩阵 A A 进行旋转变换 U T U^T 得到主成分 Y Y ,矩阵 Y Y 的每列数据为每个学生新成绩向量。所以 PCA 算法本质上是对数据点云进行旋转变换,变换后数据矩阵的协方差矩阵为对角阵 Σ 2 \Sigma^2 ,即各个主成分无相关性。

数据矩阵重构

假设选出前 k k 个主成分方向 u 1 , , u k \mathbf{u}_1,\cdots,\mathbf{u}_k ,样本 a i \mathbf{a}_i 对应的主成分(坐标)为 a i T u 1 , , a i T u k \mathbf{a}^T_i\mathbf{u}_1,\cdots,\mathbf{a}^T_i\mathbf{u}_k ,则利用主成分重构样本 a i \mathbf{a}_i 为:
a i C = u 1 a i T u 1 + + u k a i T u k = ( u 1 u 1 T + + u k u k T ) a i = U k U k T a i \mathbf{a}^C_i = \mathbf{u}_1\mathbf{a}^T_i\mathbf{u}_1+\cdots+\mathbf{u}_k\mathbf{a}^T_i\mathbf{u}_k \\ = (\mathbf{u}_1\mathbf{u}^T_1+\cdots+\mathbf{u}_k\mathbf{u}^T_k)\mathbf{a}_i \\ = U_kU^T_k\mathbf{a}_i

数据矩阵 A A 的重构矩阵为 A C = U k U k T A = P A A^C = U_kU^T_kA = PA ,其中矩阵 P P 是投影矩阵,所以PCA分析本质上就是投影变换,是线性变换。重构残差为 Δ A = A U k U k T A = ( E U k U k T ) A \Delta A = A - U_kU^T_kA = (E-U_kU^T_k)A ,重构残差一般是由噪声引起的,故主成分方向获得的重构数据矩阵具有去噪效果。因为每个重构样本 a i C \mathbf{a}^C_i 均位于 k k 维子空间内,故重构矩阵 A C A^C 也位于 k k 维子空间内,即 r a n k A C = k rank A^C = k ,重构矩阵 A C A^C 是所有秩为 k k 的矩阵中与原矩阵 A A 最接近的矩阵,这和矩阵低秩近似结论一致。当 k = r a n k A = r k = rank A = r 时即取所有主成分方向,则重构残差为零。

几何图像

根据每个样本点数据 a i \mathbf{a}_{i} 在第一主方向 u 1 \mathbf{u}_1 上的投影的方差最大,知样本点在此方向最分散,为第一主方向,最大方差为最大奇异值平方。第二主方向垂直于第一主方向,且投影方差第二大,方差为第二大奇异值平方。第三主方向垂直于第一和第二主方向,且投影方差第三大,方差为第三大奇异值平方。依此类推。

点云位于 m m 维空间,假设存在一个超椭球可以紧密包围点云,注意是最紧密的,超椭球轴不一定和坐标轴平行,则超椭球第一长轴对应的方向就是第一主方向,第二长轴对应的方向就是第二主方向,依此类推。注意长轴长度不是对应奇异值,但正相关,即长轴长度越长则对应奇异值越大。举个例子,假设样本有3个属性,则点云位于3维空间,三维椭球包围了点云,则椭球第一长轴方向就是第一主方向,第二长轴对应的方向就是第二主方向,依此类推。由于椭球是三维的,故有三个主成分。

猜你喜欢

转载自blog.csdn.net/jhshanvip/article/details/106896957