奇异值分解(SVD)

SVD原理

SVD将矩阵分解为三个矩阵的乘积,即
在这里插入图片描述
其中,A是m×n的矩阵,U是m×m的矩阵,V是n×n的矩阵, ∑ \sum 是m×n的除主对角线上的元素以外全为0的矩阵。并且满足: U T U = I , V T V = I U^TU=I,V^TV=I UTU=I,VTV=I
将奇异值从大到小排列,会发现奇异值的减少特别快,很多情况下,前10%甚至1%的奇异值的和就占了全部奇异值之和的99%以上。因此,可以用最大的k个奇异值对应的左右奇异向量来近似描述矩阵,即
在这里插入图片描述
因此SVD也是一种降维技术,保存小一点的矩阵即可重构出原矩阵A。
[1] https://www.zhihu.com/question/34143886/answer/131046490

SVD的应用----LSI

LSI(或者LSA,潜在语义分析),简单来说:
给定矩阵A, shape = (m,n),其中m是文档数,n是单词数, a i j a_{ij} aij表示第i篇文档中第j个单词的特征,比如:词频、TF-IDF。
通过SVD,将A分解成三个矩阵。
A = XBY
X: shape=(m,k), 含义: x i j x_{ij} xij表示第i篇文档和第j个主题的相关性
B: shape=(k,k),含义: b i j b_{ij} bij表示第i个主题和第j个词义的相关性
Y: shape=(k,n),含义: y i j y_{ij} yij表示第i个词义和第j个词语的相关性

分解后得到的X和Y矩阵是十分有用的,通过X,可以进一步分析出主题相似的文章;通过Y,可以进一步分析出同义词。

注意:奇异值分解后,X,Y中的元素可以是负的,因此在这一点上并不好。

SVD和PCA的关系

在PCA中,要找到样本协方差矩阵 X T X X^TX XTX的最大的d个特征值对应的特征向量,其中X是m×n,m是样本个数,n是样本维度。

对X进行SVD,得到 X = U ∑ V T X = U\sum V^T X=UVT
X T X = V ∑ ∑ V T X^TX = V\sum \sum V^T XTX=VVT,因此PCA需要的是右奇异矩阵V。

PCA算法的背后真正的实现就是用的SVD,好处是:有一些SVD实现算法可以不求出协方差矩阵 X T X X^TX XTX,也能求出右奇异矩阵V。

[1] https://blog.csdn.net/abcjennifer/article/details/8131087
[2] https://www.cnblogs.com/pinard/p/6251584.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值