python pca降维_协方差矩阵的计算、PCA

python默认矩阵X每一行是一个向量,因此一共有m行个数据,对于每一个数据有统计的维度个数为列数n,因此无偏估计用的是对于某个维度的1/(m-1)来归一化得到矩阵A,然后用的是A转置矩阵乘A得到协方差矩阵,最终对协方差矩阵进行奇异值分解或者特征值分解(协方差矩阵一定的半正定的Hermite矩阵,一定可以对角化的)。

协方差矩阵计算方法 - Mr_HHH的博客 - CSDN博客​blog.csdn.net
78e46be92622213af783efd6b791a338.png

一般都要用很多数据,即m要很多,相当于有一个库,然后采用PCA的流程来学习投影矩阵,再将要降维的数据采用投影矩阵进行矩阵乘来降维,类似于稀疏表示。此时右乘的是前k个主成分对应特征向量构成的n×k维矩阵,即可从原始维度n降到k。

根据SVD的原理

,由于
为方阵,
V 一定是酉矩阵(V的Hermite矩阵等于V的逆)。此时通过投影变换后在基空间中显然矩阵就是对角矩阵,也就是一个酉相似过程。进一步有

为什么能降维?由于特征向量构成的原始n×n矩阵 V 实际上是一种投影变换,将原始数据 A 映射到相互正交的

基空间中去(
列与列之间相互正交)。那若我们只需要
保留k个主要的投影结果,即 模最大也就是对应奇异值最大的投影方向,因此投影矩阵也只需要保留前k个主成分对应的特征向量,故 V 也只需要 n×k维即可。

这里比较容易混的是,若想采用类似于主成分分析的方法对于单张图像处理,例如去噪。这里我只有一个数据,也就是说 PCA 降维只有一个行向量,m=1(此时减均值为0,无偏估计也说不过去),此时PCA是无法使用的。那么对于这种情况,采用的就是奇异值分解(即不用PAC前面的求协方差矩阵),取前几个奇异值,再重新乘回特征向量即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值