【机器学习】基于奇异值分解(SVD)的协同过滤推荐算法及python实现

本文介绍了协同过滤推荐算法的分类和商品评分预测,重点讨论了奇异值分解(SVD)如何解决协同过滤算法的效率问题,并提供了基于项的SVD协同过滤推荐算法的Python实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


推荐算法是机器学习的一个重要分支,协同过滤(Collaborative Filtering,CF)算法是最基本的推荐算法,CF算法从历史行为数据中挖掘用户的兴趣,为用户推荐其最可能感兴趣的项(参考资料1)。

一、协同过滤推荐算法

1.1、协同过滤算法的分类

协同过滤算法可以分为基于用户的协同过滤算法和基于项的协同过滤算法。基于用户的协同过滤算法计算用户之间的相似度,并根据用户之间的相似度给目标用户未评分项进行预测,找出目标用户对未评分项的兴趣;基于项的协同过滤算法计算项之间的相似度,并根据项之间的相似度给目标用户未评分项进行预测,找出目标用户对未评分项的兴趣。

1.2、相似度的度量

相似度的度量必须要满足三个条件:非负性、对称性和三角不等性(参考资料2)。本博文采用余弦相似度来度量两个向量(X,Y)之间的相似度。

C o s S i m ( X , Y ) = ⟨ X , Y ⟩ ∥ X ∥ ∥ Y ∥ {\mathop{\rm Cos}\nolimits} {\mathop{\rm Si}\nolimits} m\left( {X,Y} \right) = \frac{ {\left\langle {X,Y} \right\rangle }}{ {\left\| X \right\|\left\| Y \right\|}} CosSim(X,Y)=XYX,Y

其中 ⟨ X , Y ⟩ {\left\langle {X,Y} \right\rangle } X,Y为向量 X X X与向量 Y Y Y的内积, ∥ X ∥ {\left\| X \right\|} X ∥ Y ∥ {\left\| Y\right\|} Y分别是向量 X X X与向量 Y Y Y的范数。

1.3、商品评分的预测

基于用户的协同过滤算法中对目标用户 u u u未评分项 i i i的预测公式为:

p ( u , i ) = ∑ v ∈ N ( i ) w u , v r v , i p\left( {u,i} \right) = \sum\limits_{v \in N(i)} { {w_{u,v}}{r_{v,i}}} p(u,i)=vN(i)wu,vrv,i

其中 N ( i ) {N(i)} N(i

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值