PCA 和 SVD 的区别和联系

本文探讨了特征值、特征向量的概念及其在PCA和SVD中的应用,讲解了矩阵乘法背后的旋转与拉伸原理,以及如何通过SVD进行特征降维,节省存储空间,并应用于推荐系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基础

两者的基础都是 求解特征值、特征向量

矩阵对向量的乘法,其实是矩阵对此向量的旋转和拉伸。
如果矩阵对某个向量V只拉伸而不旋转,那么V就是该矩阵的eigenVector,拉伸比就是eigenValue.

PCA

是对一个维度的分析,比如对features分析,可以实现特征降维。

SVD

A = U Σ V T A=U\Sigma V^T A=UΣVT

sigma: 奇异值矩阵

是对两个维度的分析。
比如矩阵的每行是产品,每列是用户,矩阵元素是评分。
可以使用SVD向用户做产品推荐。

U:表征的是输入
V:表征的是输出

在train阶段,可由A矩阵求出 U U U, Σ \Sigma Σ, V V V 三个矩阵。
在test阶段,对于新的 A A A, 可以使用已经计算好的U,Sgima,计算 V = A T U Σ − 1 V = A^T U \Sigma^{-1} V=ATUΣ1注意此处的U可以只取前k列,Sigma值只取前k个。

比如:
A: 10*5,每一列是一个用户 共5个用户,每一行是产品 共10个产品,矩阵中数值是评分
U: 10*10,取前k列,=> (10,k)
Sigma: 10*5,取前k个奇异值,=> (k,k)
V: 5*5

test:
ai: 10*1,是一列,即此用户对10个产品的评分
vi = (1 * 10)(10 * k)(k * k) = (1 * k) ,可以理解为降维后的k个值 在坐标系的位置
把vi 放到坐标系里,使用余弦相似度 度量,找到最近邻(最近邻的喜好类似)。然后用最近邻的喜好产品向a用户推荐。

比如在坐标系里 Anna和Beta很近,使用余弦距离,
Beta对10个产品的评分:[9,9,5,1,6,9,9,…]
Anna的是: [9,9,0,0,0,9,9,…]
那么可以向Anna推荐 第5个、第3个产品。

求解步骤

  1. 求v
    在这里插入图片描述
  2. 求u
    在这里插入图片描述
  3. 求sigma
    在这里插入图片描述

SVD作用

  1. 有降维、节约存储空间的效果,
    若A维度是: (10000行, 1000列)。消耗空间:10000 * 1000 = 10^7 = 10,000,000

    取K=100时,
    U: (10000, 100), 消耗:10^6
    Sigma: (100, 100), 消耗:10^4
    VT: (100, 1000), 消耗: 10^5
    消耗求和:1,110,000,是初始消耗的1/10左右。


    注意:也可以使用PCA对特征降维,存储空间也可以节省很多。

  2. 为推荐系统提供支持。

### 主成分分析 (PCA) 奇异值分解 (SVD) #### PCA 的工作原理及其应用 主成分分析是一种用于降维的技术,其目标是在保留尽可能多的信息的同时减少数据集的维度。通过计算协方差矩阵并找到最大化的方向向量(即主成分),可以实现这一点。每个主成分对应于原始变量的一个线性组合,并按照它们所解释的数据总变异的比例排序。 对于给定的数据集,`explained_variance_ratio_` 属性提供了各主成分对方差贡献的具体数值[^1]: ```python import numpy as np from sklearn.decomposition import PCA np.set_printoptions(precision=3, suppress=True) pca = PCA() # 计算 explained variance ratio... print(pca.explained_variance_ratio_) ``` 这种方法特别适用于可视化高维数据、去除噪声或作为其他机器学习模型之前的预处理步骤。 #### SVD 的工作机制及其用途 奇异值分解则提供了一种不同的视角来看待相同的问题——它不是直接寻找最佳投影轴,而是将输入矩阵 \( A \in R^{m\times n} \) 分解成三个部分:两个正交矩阵 U V 转置以及中间对角阵 Σ 。其中Σ包含了所谓的“奇异值”,反映了原矩阵的重要程度;而UV分别代表左奇异性向量与右奇异性向量。 这种技术同样能够帮助我们理解复杂结构化信息的本质特征[^3]。例如,在图像压缩场景下,可以通过截断较小的奇异值得到近似版本从而节省存储空间而不明显影响质量。 #### PCASVD 的对比 尽管两者都涉及到降低维度的概念,但存在一些关键差异: - **目的不同**: PCA旨在最大化样本间的距离度量标准下的离散度;相比之下,SVD关注的是重构误差最小化. - **适用范围各异**: 当仅需考虑单个表征时可选用前者; 若涉及多个关联表格,则后者更为合适. - **输出形式有所区别**: 经过PCA变换后的坐标系通常具有直观的意义(如第一主元往往指示着最重要的变化趋势);然而经由SVD得到的结果可能缺乏类似的解释力除非进一步转换为特定上下文内的含义.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值