美文网首页
推荐系统实战之——基于用户的协同过滤推荐UserCF

推荐系统实战之——基于用户的协同过滤推荐UserCF

作者: 易码当先 | 来源:发表于2020-06-08 10:02 被阅读0次

目录

1、基于用户协同过滤(User-CF-Based)算法原理

2、User-CF-Based算法流程

3、python实现

4、总结


User-CF-Based算法原理:

基于用户的协同过滤,通过用户的历史行为数据发现用户喜欢的物品,并对这些偏好进行度量和打分,然后根据不同用户对相同物品的评分或偏好程度来度量用户之间的相似度,对有相同偏好的用户进行物品推荐。简单地讲,基于用户的协同过滤就是给用户推荐“和他兴趣相投的其他用户”喜欢的物品。


算法流程:

1、构建用户物品的评分表

用户物品评分表

2、构建用户相似度列表

用户相似度列表

w_{uv}  = \frac{|N_{(u)} \cap N_{(v)} |}{\sqrt{ N_{(u)}||N_{(v)}} }

针对上述公式,参数如下:

N_{(u)}:  用户u有过评分的物品集合;

N_{(v)}:  用户v有过评分的物品集合;

w_{uv}  : 用户u和用户v的余弦相似度。

3、对用户未评分物品进行评分估计P_{(u,i)} =\sum_{v\in S_{(u,K)}\cap N_{(i)}  }  W_{uv}  \gamma _{vi}

其中各参数如下:

P_{(u,i)} : 用户u对物品i的感兴趣程度(即评分);

S_{(u,K)} : 和用户u兴趣最接近的K个用户;

N_{(i)}: 对物品i有过行为的用户集合;

W_{(uv)}:  用户u和v的兴趣相似度;

\gamma _{(vi)} :用户v对物品i的兴趣,即用户对物品的评分。

4、将用户所有未评分物品,经过3的评分后的集合,根据评分高低推荐给用户。


python实现:https://github.com/SolodanceMagicq/RecommendSys/tree/master/CF/UserCF


总结:基于用户协同过滤算法的核心是寻找用户与其有共同偏好的用户列表(即构造用户相似度矩阵),并利用相似用户的评分信息,对用户未评分物品进行打分(用户对物品评分估计)。最后根据打分高低进行推荐。

相关文章

网友评论

      本文标题:推荐系统实战之——基于用户的协同过滤推荐UserCF

      本文链接:https://www.haomeiwen.com/subject/ywszoctx.html