PCA主成分分析与SVG隐语义

PCA

模式识别中用于主特征提取以实现降维。
假设

X=[x1x2xn]T

是一个n维随机向量。向量
Y=[y1y2yn]T

满足 Y=CX
C是正交矩阵,X经过不同的投影变换后
得到如: y1=c11x1+c12x2+c13x3+...+c1nxn
y2=c21x1+c22x2+c23x3+...+c2nxn
其中 C2k1+C2k2+...+C2kn=1
使它在得到的 y1 维度上具有最大的方差,即通过 y1 这个维度能更好的将不同类别物品分开。而经过投影后的 y2 维度具有次大方差,依此类推。
如何求出C呢?
由于 yi 之间不相关,因此整个Y矩阵的协方差矩阵
YYT=CXXTCT=Λ

Λ=λ1λ2λ3......λn

R=XXT 则有 RCT=CTΛ ,将该式展开,得到 n2 个方程。假使R的第一行乘以 CT 的第一列,得到了n个方程。根据齐次线性方程组有非零解的条件是系数矩阵的行列式=0,即系数矩阵的秩< n,即 |R1λ1I|=0 。由此解得 λ1 。其他 λ 的值相应也可以得到。有了n个 λ 的值。又有 n2 个方程,因此解得矩阵C。
这样对于一个有n个用户,每个用户又有对n个物品的购买记录的数据矩阵 N(nn) ,就可以用PCA通过商品购买记录区分用户(相似的用户还喜欢商品ABCD)。
而对应于矩阵 X 变换后的矩阵Y其实可以去掉Y的某些排在后面(不重要)的维度,这样在分类时就大大减少了负载。通过减少维度使 Xn1 Ym1 取代,这相当于对矩阵 Nnn 压缩到了 Mmn 。直接存储更新M用于分类。
当然你可以选择用PCA通过用户对商品的喜好来分类用户眼中相似的商品(相似的商品有ABCD)。这就是在做列压缩了。
行压缩和列压缩都进行的话,对应相同的原理却要算两趟,SVD则很好的’包装’了PCA。


SVD隐语义模型

用于非方阵的分解
矩阵的特征值 λ ,特征向量 ν ,变换基 A 之间的关系:

Aν=λν

现在假定给你一组已知数据 Snn 那么我们假设S它是一组变换基,则通过 |λEA|=0 关系式可以求得S的一组特征值,再通过每个特征值解出对应的特征向量。有人会问这有什么用啊?
通过特征值构成的对角矩阵 Σ ,特征向量 Q ,可以将原矩阵表示为
A=QΣQ1

这样就将样本 A 用三个矩阵来表示了,然而表示需要的存储空间却并没有得到改进。
如果A不是n*n矩阵而是m*n即m个用户n个物品购买记录呢?

Amn=UmmΣmnVTnn

这就是奇异值分解,将任意矩阵分解成上述形式。其中
U 称为左奇异量,Σ除了对角线上的值称为奇异值,除对角线外其它都是0( SVD怎么求的), V 称为右奇异量。
对于矩阵 Amn通过 (AAT)ν=λν 求得特征向量 ν 就是右奇异量V, σ=λ 就是奇异值且在 Σ 中从大到小排列,有了 Σ VT , μ=Aνσ 即左奇异值。
进一步将 Σ 根据奇异值大小缩减维度将m*n变成r*r;
相应的将U变成m*r;将 VT 变成r*n维。得到
AmnUmrΣrrVTrn

这时候已经实现了 Amn 的压缩存储。
对于上述约等式右乘 Vnr 由于V正交。左边得到 AmnVnr 其实这是在对A做列压缩。类似的左乘 Urm 得到 UrmAmn 这是在对A做行压缩。
通过SVD解得U和V就可以根据需要对A做行压缩或列压缩。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值