tf 如何进行svd_PCA--SVD方法

之前利用对协方差矩阵进行特征值分解来进行降维操作,如果数据量很大的话,协方差矩阵的计算和之后的特征值分解将会非常的慢,所以如果直接对原始采样数据矩阵A进行矩阵分解来进行降维操作,使用的方法就是SVD。

对A进行SVD分解

的含义

矩阵A是一个mxn的矩阵,它表示的线性变化是将n维原空间中的向量映射到更高维的m空间中,这个等式就意味着在原空间中找到一组新的标准正交向量

,在目标空间中存在着对应的一组标准正交向量
,此时
线性无关。

当A作用在原空间上的某个基向量

上,其线性变换的结果是:对应在目标空间中的
向量沿着自身方向上伸长
倍。(特征值分解是这里的一种特殊情况,即两组标准正交基向量相等)。

转换为:

将u中其他的加入进来

在对角矩阵下方加入m-n行全零:

又由于V各列是标准正交矩阵,

所以:

其中 U 和 V 是由标准正交向量构成的 m 阶和 n 阶方阵, 而

是一个
的对角矩阵。

如何求U和V,以及

,所以:

同理:

所以,只需要对

进行特征值分解,对
进行特征值分解,就可以得到这些矩阵

091fddcceaf2d3c874a781382d8719b9.png

利用SVD进行主成分分析和数据降维

行压缩数据降维

对于最左边:

原本使用的是默认的一组基向量
, 我们通过上面的基变换, 将其用
这一组标准正交基来表示, 由于这一组标准正交基本质上也是由协方差对称矩阵
得到, 因此将各列做基变换后, 数据分布从行的角度来看就彼此无关了。

把每一列看作是一个样本, 各行是不同的特征, 各行彼此无关, 我们可以按照熟悉的方法, 选择最大的 k 个奇异值对应的 k 个标准正交向量, 形成行压缩矩阵:

,把列向量从m维压缩到了k维。

列压缩数据降维

将矩阵A记做:

那么:

类比上面的行压缩过程, 在 V 中, 我们从大到小取前 k 个特征值对应的标准正交特征向量, 就构成了另一个压缩矩阵:

通过

就能实现将
矩阵的各列由 n 维压缩到 k 维。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值