PCA 和 SVD 的区别和联系

基础

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

矩阵对向量的乘法,其实是矩阵对此向量的旋转和拉伸。
如果矩阵对某个向量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. 为推荐系统提供支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值