码迷,mamicode.com
首页 > 其他好文 > 详细

矩阵的奇异值分解(SVD)

时间:2014-12-09 10:35:28      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:机器学习

MIT 线性代数课程中讲过的矩阵分解有很多种,但是据我所知最重要的应该是SVD分解了,假如现在想把行空间的正交基通过A左乘的方法变换到列空间的正交基,既有:

bubuko.com,布布扣

需要说明的一点是,我们可以轻易得到行空间的正交基,但是并不是所有的A都能满足变换过去后还是正交基的条件,所以,这个A需要满足条件,或者说A和U,V需要满足一定的关系。将上式左右两边都乘以V的转置,就可以得到矩阵奇异值分解的公式,SVD的分解式子如下:

bubuko.com,布布扣

假如原来X是n*m的矩阵,那么U一般是n*r,sigma一般是r*r,V一般是m*r。

当r=Rank(X)的时候,是准确的分解,当r<Rank(X)的时候,是近似分解。

一般来说,sigma是一个对角矩阵,且对角线元素是方阵bubuko.com,布布扣和方阵bubuko.com,布布扣特征值的正平方根,且按照降序排放。

可以发现,V的每列都是bubuko.com,布布扣的特征向量,U的每列都是bubuko.com,布布扣的特征向量,他们分别都是按照特征值下降的顺序排放。

SVD能解决哪些问题呢?第一就是解决PCA,可以发现

bubuko.com,布布扣这个式子左边的矩阵,其实就是X这个数据集(已经预处理,均值为0)协方差矩阵(设为M)的前K个特征值所对应的特征向量转置排列后而成。易得bubuko.com,布布扣=m*M(m是数据个数),那么bubuko.com,布布扣与M所对应特征向量是相同的,如果奇异值分解也取近似(取r=k<Rank(X)),只需要用SVD分解后的bubuko.com,布布扣乘以X就能得到主成分分析的X‘。


矩阵的奇异值分解(SVD)

标签:机器学习

原文地址:http://blog.csdn.net/u012303532/article/details/41819531

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!