十三 python-svd

svd的学习

1 svd理解

svd 奇异值分解,作为简化数据得一种方法,它尝试从有噪声得数据中抽取相关特征,并且剔除冗余信息。

将svd 应用到数据集中,会构建出很多奇异值,这些奇异值代表了数据中的概念或主题,利用这个特点可以进行高效得搜索

概念或主题代表了一类对象,比如文档数据中,所有近义词可以映射到同一个概念

2 svd推导

svd的思想是一组正交基经过A的变换形成另一组正交基
A是mxn的矩阵,ATA是对称矩阵,它的特征向量是一组正交基:
这里写图片描述
这里写图片描述
这里写图片描述
正交基v经过A变换为u:
这里写图片描述
因此u也是一组正交向量,现在将u标准化:
这里写图片描述
这里写图片描述
这里写图片描述
得到:
这里写图片描述
奇异值为:
这里写图片描述
如果A的秩 r(A)=k,则k<=m,则不为0的特征值只有k个,将u扩展到m维(u1,u2,…,uk|uk+1,…,um)
同样的,将v扩充到n维(v1,v2,…,vk|vk+1,…,vn),得到:
这里写图片描述
这里写图片描述
这里写图片描述
其中V是正交矩阵,因此V的转置等于V的逆
由此得到A的svd分解

实际解决问题时,可以挑选出值较大的r个奇异值,重构数据
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_35282560/article/details/79492592