ML之DR之SVD:SVD算法相关论文、算法过程、代码实现、案例应用之详细攻略

举报
一个处女座的程序猿 发表于 2021/03/31 00:01:29 2021/03/31
【摘要】 ML之DR之SVD:SVD算法相关论文、算法过程、代码实现、案例应用之详细攻略       目录 SVD算法相关论文 SVD算法过程 1、公式的推导 2、SVD算法两步过程 SVD代码实现 SVD的案例应用 1、SVD的推荐案例     SVD算法相关论文    奇异值分解S...

ML之DR之SVD:SVD算法相关论文、算法过程、代码实现、案例应用之详细攻略

 

 

 

目录

SVD算法相关论文

SVD算法过程

1、公式的推导

2、SVD算法两步过程

SVD代码实现

SVD的案例应用

1、SVD的推荐案例


 

 

SVD算法相关论文

   奇异值分解Singular Value Decomposition:简称SVD,特征分解的广义化,是一种提取特征信息的方法。

 

SVD算法过程

1、根据Andrew Gibiansky 写的关于 SVD 的文章中代码

http://andrew.gibiansky.com/blog/mathematics/cool-linear-algebra-singular-value-decomposition/

奇异值top不同个数的应用:可以发现,如果我们根据大小排序这些奇异值(矩阵 Σ 的值),那么前 50 个奇异值将包含整个矩阵 Σ 的大小的 85%。根据这个事实,我们可以丢弃后面的 250 个值(即将它们设为 0),仅保留这张小狗图像的「rank(秩)50」版本。值的数量差不多少了 5 倍,但质量却下降很少。上述计算的原因是当我们执行 UΣ'V 运算时,U 和 V 矩阵中的一部分因为乘 0 也被丢弃(其中 Σ' 是 Σ 的修改后版本,其中仅包含了前面的 30 个值)。

低秩矩阵的近似应用:图像压缩,其实80与原图相差不是很大。SVD中的奇异值的个数分别为1、10、80。

 

 

1、公式的推导



 

2、SVD算法两步过程

 

 

 

SVD代码实现


  
  1. import numpy as np
  2. def load_data():
  3. return [ [0,0,0,1,1],
  4. [0,0,0,2,2],
  5. [0,0,0,3,3],
  6. [4,4,4,0,0],
  7. [5,5,5,0,0],
  8. [6,6,6,0,0],
  9. [7,7,7,0,0]]
  10. data = load_data()
  11. u, sigma, vt = np.linalg.svd(data) #Sigma是个矩阵,Python内部的机制,为了节省空间,因为它除了对角线都是0
  12. print(sigma)#前两个值比后三个值大的多,所以可以取这两个奇异值,把其余三个置0。
  13. [1.94422221e+01 5.29150262e+00 1.86910323e-15 4.48702001e-16
  14. 8.62587679e-18]

 

SVD的案例应用

1、SVD的推荐案例

假定Ben、Tom、John、Fred对6种产品进行了评价,评分越高,代表对该产品越喜欢。0表示未评价。

1、进行SVD分解并提取前2个特征

(1)、产品矩阵的压缩、用户矩阵的压缩

2、利用SVD进行新用户的个性化推荐

思路:对于新用户,如何对其做个性化推荐呢?将A扩展后重新计算SVD,然后聚类用户?

(1)、假设有个Bob的新用户,对6个产品的评分为(5,5,0,0,0,5)T,通过上边的公式计算出Bob的特征点坐标。

(2)、通过计算Bob和现有用户的距离进行聚类:计算余弦距离(一定意义下即相关系数),与其最近的是Ben,因此,可以给Bob推荐Ben喜欢的S5、S3。

 

 

 

 

 

 

 

 

 

文章来源: yunyaniu.blog.csdn.net,作者:一个处女座的程序猿,版权归原作者所有,如需转载,请联系作者。

原文链接:yunyaniu.blog.csdn.net/article/details/81545317

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。