首页 > 其他 > 详细

SVD小结

时间:2014-05-31 18:45:39      阅读:449      评论:0      收藏:0      [点我收藏+]

1.矩阵分解

假设一个矩阵Data是m行n列,SVD(奇异值分解)将Data分解为U,E,VT 三个矩阵:

Datam*n=Um*kEk*kVTk*n

E是一个对角矩阵,对角元素为奇异值,对应Data的奇异值,即Data*DataT特征值的平方

2.选取特征

下面确定选取哪几维特征实现降维,去除噪声和冗余信息,用低维数据集表示原数据集。

典型做法是保留矩阵90%能量信息,公式如下,先选一个值h:

奇异阵的平方 sig=ETE

如果奇异阵的平方中前i项的和大于奇异阵的平方总和,即sum(sig[:h]) > sum(sig)*0.9,就可以把原矩阵转换成一个h维的矩阵,新矩阵具体为:

newDatam*n=DataTm*n * U[:,:h]m*h * E-1h*h

3.python实现

numpy中线性代数工具箱linalg包的svd方法可方便得到奇异阵E。另,linalg包的norm方法可用于计算范数。

SVD一些典型应用如推荐系统,06年的Netflix大赛即使用SVD。

 

 

 

SVD小结,布布扣,bubuko.com

SVD小结

原文:http://www.cnblogs.com/ffan/p/3762449.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!