SVD奇异值分解学习总结

1.原理

SVD的基本公式:

U 和 V 我们都求出来了,现在就剩下奇异值矩阵 ∑没有求出了。由于 ∑除了对角线上是奇异值其他位置都是0,那我们只需要求出每个奇异值 σ 就可以了。

我们注意到:

这样我们可以求出我们的每个奇异值,进而求出奇异值矩阵 ∑ 。

上面还有一个问题没有讲,就是我们说 ATA的特征向量组成的就是我们SVD中的 V矩阵,而AAT 的特征向量组成的就是我们SVD中的 U

 矩阵,这有什么根据吗?这个其实很容易证明,我们以 V 矩阵的证明为例。

上式证明使用了 

 。可以看出 ATA 的特征向量组成的的确就是我们SVD中的 V矩阵。类似的方法可以得到 AAT 的特征向量组成的就是我们SVD中的 U 矩阵。进一步我们还可以看出我们的特征值矩阵等于奇异值矩阵的平方,也就是说特征值和奇异值满足如下关系:

这样也就是说,我们可以通过求出 ATA 的特征值取平方根来求奇异值。

2.性质

对于奇异值,它跟我们特征分解中的特征值类似,在奇异值矩阵中也是按照从大到小排列,而且奇异值的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上的比例。也就是说,我们也可以用最大的 k个的奇异值和对应的左右奇异向量来近似描述矩阵。也就是说,可以对 U∑VT

 三个矩阵进行裁剪,比如将特征 n维降至 k 维,那么

 

即可。

由于这个重要的性质,SVD可以用于PCA降维,来做数据压缩和去噪。也可以用于推荐算法,将用户和喜好对应的矩阵做特征分解,进而得到隐含的用户需求来做推荐。同时也可以用于NLP中的算法,比如潜在语义索引(LSI)。下面我们就对SVD用于PCA降维做一个介绍。

3.SVD优缺点

1.SVD可以实现并行化

2.SVD简单

3.SVD的缺点是分解出的矩阵解释性往往不强,不过这不影响它的使用。

SVD最早的应用之一是信息检索,我们称利用SVD的方法为潜在语义索引(Latent Semantic Indexing ,LSI)或潜在语义分析(Latent Semantic Analysis ,LSA)。

SVD另一个应用为推荐系统应用,简单版本的推荐系统能够计算物品item或者用户user之间的相似度,可以用SVD将原始数据映射到低维空间中,然后节省计算相似度时的计算资源。

原文地址:https://zhuanlan.zhihu.com/p/32600280

 PCA降维,对样本数据来言,可以是没有类别标签 y 的。如果我们做回归时,如果特征太多,那么会产生不相关特征引入、过度拟合等问题。我们可以使用PCA 来降维,但 PCA 没有将类别标签考虑进去,属于无监督的。

LDA线性判别分析 https://blog.csdn.net/qq_19446965/article/details/82078379

猜你喜欢

转载自blog.csdn.net/qq_19446965/article/details/82078313