首页 > 代码库 > 矩阵的奇异值分解(SVD)
矩阵的奇异值分解(SVD)
MIT 线性代数课程中讲过的矩阵分解有很多种,但是据我所知最重要的应该是SVD分解了,假如现在想把行空间的正交基通过A左乘的方法变换到列空间的正交基,既有:
需要说明的一点是,我们可以轻易得到行空间的正交基,但是并不是所有的A都能满足变换过去后还是正交基的条件,所以,这个A需要满足条件,或者说A和U,V需要满足一定的关系。将上式左右两边都乘以V的转置,就可以得到矩阵奇异值分解的公式,SVD的分解式子如下:
假如原来X是n*m的矩阵,那么U一般是n*r,sigma一般是r*r,V一般是m*r。
当r=Rank(X)的时候,是准确的分解,当r<Rank(X)的时候,是近似分解。
一般来说,sigma是一个对角矩阵,且对角线元素是方阵和方阵特征值的正平方根,且按照降序排放。
可以发现,V的每列都是的特征向量,U的每列都是的特征向量,他们分别都是按照特征值下降的顺序排放。
SVD能解决哪些问题呢?第一就是解决PCA,可以发现
这个式子左边的矩阵,其实就是X这个数据集(已经预处理,均值为0)协方差矩阵(设为M)的前K个特征值所对应的特征向量转置排列后而成。易得=m*M(m是数据个数),那么与M所对应特征向量是相同的,如果奇异值分解也取近似(取r=k<Rank(X)),只需要用SVD分解后的乘以X就能得到主成分分析的X‘。
矩阵的奇异值分解(SVD)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。