奇异值分解(SVD)学习笔记(python)

 

一.原理

 

 SVD的性质:

SVD计算举例:

二.

SVD(奇异值分解):

优点:简化数据,去除噪声点,提高算法的结果;
缺点:数据的转换可能难以理解;
适用于数据类型:数值型。
通过SVD对数据的处理,我们可以使用小得多的数据集来表示原始数据集,从有噪声的数据中抽取相关特征,这样做实际上是去除了噪声和冗余信息,以此达到了优化数据、提高结果的目的。

最早的SVD应用之一是信息检索。我们称利用SVD的方法为隐性语义检索(LSI)或隐形语义分析(LSA)。
在LSI中,一个矩阵是由文档和词语组成的,当我们在该矩阵上应用SVD时,就会构建出多个奇异值。这些奇异值代表了文档中的概念或主题,这一特点可以用于更高效的文档搜索。如果我们从上千篇相似的文档中抽取出概念,那么同义词就会映射为同一概念。

SVD的另一个应用就是推荐系统。简单版本的推荐系统能够计算项或者相似度。更先进的方法则先利用SVD从数据中构建一个主题空间,然后再在该空间下计算其相似度。

SVD也可用于特征压缩(数据降维)。将SVD用于PCA主成分分析,来做数据压缩和降噪。

三.SVD的库实现

SCV实现的相关线性代数在Numpy中有一个称为线性代数linalg的线性代数工具箱。下面演示其用法对于一个简单的矩阵:

from numpy import *
from numpy import linalg as la
 
df = mat(array([[1,1],[1,7]]))
U,Sigma,VT = la.svd(df)
print(U)
print(Sigma)
print(VT)

-----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值