PCA与SVD

PAC 与 SVD


今天梳理了降维的主要方法,PCA与SVD
[参考文章1 https://www.cnblogs.com/pinard/p/6251584.html)]
( https://www.cnblogs.com/pinard/p/6251584.html)
参考文章2 https://blog.csdn.net/qq_24464989/article/details/79834564

1. PCA

PCA:PCA顾名思义,就是找出数据里最主要的方面,用数据里最主要的方面来代替原始数据。具体的,假如我们的数据集是n维的,共有m个数据(x (1) ,x (2) ,…,x (m) ) (x(1),x(2),…,x(m))。我们希望将这m个数据的维度从n维降到n’维,希望这m个n’维的数据集尽可能的代表原始数据集。
对于矩阵A(mxn)

  1. 对A去中心话 即每个特征的值减去对应特征的平均值
  2. 需要计算矩阵A的协方差矩阵, 即为A(nXn),
  3. 计算协方差矩阵的特征值,与特征向量,选取最大的K个 并将其标准化(下一步与A相乘 相当于对每个数据做特征组合 权重之和是1) P(nXk)
  4. 将矩阵A坐下映射 A*P 、
    PCA算法的主要优点有:

1)仅仅需要以方差衡量信息量,不受数据集以外的因素影响。

2)各主成分之间正交,可消除原始数据成分间的相互影响的因素。

3)计算方法简单,主要运算是特征值分解,易于实现。

PCA算法的主要缺点有:

1)主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。

2)方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。

2. SVD

对于一个方正A 可以计算它的特征值和特征向量 但是对于非方正A的计算 可以使用SVD
V叫做奇异值 是特征值开根号(对于大于0的奇异值)
对于奇异值,它跟我们特征分解中的特征值类似,在奇异值矩阵中也是按照从大到小排列,而且奇异值的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上的比例。也就是说,我们也可以用最大的k个的奇异值和对应的左右奇异向量来近似描述矩阵。也就是说:
Am×n=Um×mΣm×nVTn×n≈Um×kΣk×kVTk×n

PCA与SVD

  1. 在主成分分析(PCA)原理总结中,我们讲到要用PCA降维,需要找到样本协方差矩阵XTXXTX的最大的d个特征向量,然后用这最大的d个特征向量张成的矩阵来做低维投影降维。可以看出,在这个过程中需要先求出协方差矩阵XTXXTX,当样本数多样本特征数也多的时候,这个计算量是很大的。

  2. 注意到我们的SVD也可以得到协方差矩阵XTXXTX最大的d个特征向量张成的矩阵,但是SVD有个好处,有一些SVD的实现算法可以不求先求出协方差矩阵XTXXTX,也能求出我们的右奇异矩阵VV。也就是说,我们的PCA算法可以不用做特征分解,而是做SVD来完成。这个方法在样本量很大的时候很有效。实际上,scikit-learn的PCA算法的背后真正的实现就是用的SVD,而不是我们我们认为的暴力特征分解。

  3. 另一方面,注意到PCA仅仅使用了我们SVD的右奇异矩阵,没有使用左奇异矩阵,那么左奇异矩阵有什么用呢?

假设我们的样本是m×nm×n的矩阵X,如果我们通过SVD找到了矩阵XXTXXT最大的d个特征向量张成的m×dm×d维矩阵U,则我们如果进行如下处理:
X′d×n=UTd×mXm×n
Xd×n′=Ud×mTXm×n
可以得到一个d×nd×n的矩阵X‘,这个矩阵和我们原来的m×nm×n维样本矩阵X相比,行数从m减到了d,可见对行数进行了压缩。也就是说,左奇异矩阵可以用于行数的压缩。相对的,右奇异矩阵可以用于列数即特征维度的压缩,也就是我们的PCA降维。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PCA (Principal Component Analysis) 和 SVD (Singular Value Decomposition) 都是用于数据降维的重要数学工具,在机器学习和数据分析中广泛应用。它们都可以帮助我们在高维空间中找到关键特征,减数据的复杂性和计算成本。 **PCA(主成分分析)**: 1. **基本原理**:PCA通过线性变换将原始数据投影到一组新的坐标轴上,新轴的方向对应数据方差最大的方向。通过保留主要的特征方向(即主成分),我们可以丢弃那些对数据解释度不大的维度。 2. **SVD的应用**:实际上,PCA可以通过SVD来实现,因为数据矩阵(中心化后)的SVD分解会产生正交的左奇异向量作为新坐标轴,而这些向量对应的奇异值代表了信息的重要性。 3. **降维步骤**:计算数据的协方差矩阵,然后做SVD分解得到UΣVT。前k个主成分对应矩阵U的前k列,降维后的数据就是这k列对应的原始数据乘积。 **SVD(奇异值分解)**: 1. **直接应用**:SVD本身就是将一个矩阵分解为三个部分:UΣV^T,其中U和V是对称正交矩阵,Σ是对角矩阵,包含的是数据的奇异值。奇异值反映了数据的“能量”或“影响力”。 2. **降维与重构**:SVD可用于降维,选择前k个最大的奇异值和对应的左/右奇异向量,仅使用这部分信息就可以重建近似的原始数据,从而达到降维效果。 3. **SVDPCA的关系**:当处理标准化的数据时,SVDPCA的结果相同。SVD提供了一种更通用的框架,但PCA在解释性上有优势,因为它构造的新坐标是根据数据的方差。 **相关问题--:** 1. PCA如何选择保留多维度? 2. SVD降维在实际应用中的优势是什么? 3. 如何利用SVD进行数据的压缩存储?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值