转自:http://www.cnblogs.com/pinard/p/6251584.html(这篇博客的作者,发布了很多相关博客,写的都很易于理解,推荐阅读和学习)
奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域。是很多机器学习算法的基石。本文就对SVD的原理做一个总结,并讨论在在PCA降维算法中是如何运用运用SVD的。
svd分解,其实也是求出矩阵的特征值,只不过因为矩阵不是方阵,所以用到奇异值分解。
svd的分解可以得到3个矩阵,其U,S,V,由于这个重要的性质,SVD可以用于PCA降维,来做数据压缩和去噪。
也可以用于推荐算法,将用户和喜好对应的矩阵做特征分解,进而得到隐含的用户需求来做推荐。
同时也可以用于NLP中的算法,比如潜在语义索引(LSI)https://www.cnblogs.com/pinard/p/6805861.html,利用了V的列向量,计算原始数据 的相似度。
下面我们就对SVD用于PCA降维做一个介绍。左奇异矩阵可以用于行数的压缩。相对的,右奇异矩阵可以用于列数即特征维度的压缩,也就是我们的PCA降维。