机器学习-python利用SVD编写推荐引擎

代码及数据集下载:SVD
SVD(Singular Value Decomposition)主要用来进行数据降维、特征提取、消除数据噪声、消去数据中的冗余信息、数据压缩等。用于提高机器学习算法的效果,或压缩数据存储空间。利用SVD能够用小的多的数据集表示原始数据,其实质是去除了噪声以及冗余项。SVD常用于隐形语义检索的搜索系统(LSI)、隐性语义分析(LSA)、推荐引擎、图像压缩。这里主要通过推荐引擎的编写,讲述SVD的作用。

—推荐引擎
推荐系统是通过计算项与项之间的相似度而实现。利用SVD可以构建出一个主题空间,在该空间下计算器相似度将更加准确。
SVD的理论在博文机器学习中特征值分解与奇异值分解的区别及应用中查看。
假定数据行为不同的人,列为菜品,元素为对应人对该菜品的打分,0表示没打分。
这里写图片描述
numpy的库函数 U,sigma,VT=numpy.linalg.svd() 可以方便的实现奇异值分解。
sigma中奇异值的数量选取方法有以下几种:

  • 保留90%的能量信息。

  • 用户自定义

协同过滤:协同过滤是通过将用户和其他用户或物品与其他物品的数据进行对比来实现推荐的。若两个物品的相似度非常高,则可以将其推荐给用户。

相似度计算:

  • 欧氏距离
    A = [a1,a2,a3],B=[b1,b2,b3]
    相似度

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值