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

SVD小结

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

标签:a   strong   使用   数据   python   应用   

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小结

标签:a   strong   使用   数据   python   应用   

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

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