【机器学习】 特征值分解、奇异值分解与PCA的原理
1、PCA的原理
-
设n维随机变量X, 其对应的协方差矩阵是C
-
基于正交矩阵P,对随机变量X做正交变换,得到变量Y,对应协方差矩阵为R,如下所示。
C是X的协方差矩阵,R是Y的协方差矩阵,二者都是一个对称矩阵 协方差矩阵的对角线以外的值都是n维变量各分量之间的相关性的度量值,当值为0时表示两个分量无关,即相互独立,此时我们得到的变量具有很好的统计特性,便于处理,即我们的目标是找到正交矩阵P使下式成立
即对C进行相似对角化处理,生成对角矩阵R
根据对称矩阵的性质可知,一定存在对角阵与C正交相似
此时,
- 对角矩阵R是矩阵C的对应特征值组成的对角阵,
- 变换矩阵Q是C的特征值对应的正交化的特征向量组。
特征值分解(EVD)步骤
- 求特征值
- 求特征向量
假设已经对特征值从大到小排了序(排序后特征值越大,说明权重越高,影响越大),得
由于特征值都是按从大到小的顺序排列的,当前k个特征值比较大(权重高)后面的特征值可以近似为0,(如何选择k,有一些取舍的方案,暂不详细介绍),此时C的分解公式为:
此时正交变换的公式为
等效为对P(Q)进行裁剪,由nxn矩阵变成mxn矩阵,如下所示:
此时的正交变换降为线性变换(裁剪后的P已经不是正交矩阵了),变换有以下特点:
- 源数据从n维变成了k维,实现了维数的降低
- 任意两个分量的协方差值为0(不相关)
- 变换前后的协方差矩阵基本相似(最后n-k个特征值做了等效0处理,有一定损失)
- 在保持变换后信息损失尽量小的情况下降低数据的维度(n维到k维)。
参考链接
2 拓展EVD与SVD
- EVD:特征值分解
- SVD:奇异值分解
- 两者侧重不同,EVD对对称矩阵处理效果比较简单(对称矩阵必定与对角阵正交相似,通过求特征值、特征向量即可求解),但是对于一般矩阵,尤其不是方阵,以上方法就不适用了,此时可采用奇异值分解法进行求解。
- 简单理解:SVD是可以包含EVD的一种方法,即EVD能解的SVD一定能解,反之不一定,所以一般PCA直接用SVD公式进行求解
SVD奇异值分解公式
参考链接: