我是靠谱客的博主 认真海燕,最近开发中收集的这篇文章主要介绍推荐系统项目基础(二)基于相似度的协同过滤基于相似度的协同过滤算法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

推荐系统项目基础(二)协同过滤

  • 基于相似度的协同过滤算法
    • 用户协同过滤User-based CF
    • 商品协同过滤Item-based CF
    • 计算相似度
      • 余弦相似度
      • 皮尔逊相似度
      • Jarccard相似度
    • 基于Jarccard相似度计算例子

基于相似度的协同过滤算法

用户协同过滤User-based CF

在这里插入图片描述

从上图可以看出User-based CF的计算过程为:

  • 维护一张用户之间的相似表
  • 计算每个用户之间的相似度
  • 得到最接近的用户
  • 得到所有接近用户的购买数据
  • 根据购买数据推荐没有购买过的物品

商品协同过滤Item-based CF

基于商品过滤的不同点在于获取的是物品的相似表,根据物品的相似度进行推荐。
在这里插入图片描述

Item-based CF的计算过程为:

  • 维护一张物品之间的相似表,物品之间的相似度表示公式:(同时喜欢物品I与J的人数交集)/(喜欢物品I与J的人数并集)
  • 计算每个物品之间的相似度
  • 得到最接近的物品列表
  • 去除用户的购买物品
  • 根据得到的物品中筛选出没有购买过的物品

计算相似度

余弦相似度

余弦相似度通过计算两个向量的夹角的余弦值来度量它们之间的相似性,在计算文档相似度中应用非常广泛,计算公式如下:
在这里插入图片描述

皮尔逊相似度

余弦相似度中没有将维度进行考虑,即没有进行中心化处理,数据会受到某些维度的较高值影响,需要对维度中的值进行去中心化处理。相对于余弦相似度,皮尔逊更适合于计算相似度。
在这里插入图片描述

Jarccard相似度

Jaccard相似度的定义很简单,两个向量的词汇的交集除以两个向量的并集。适用于已经进行onehot编码后的数据,只有0和1

基于Jarccard相似度计算例子

在这里插入图片描述

1、根据上面的数据计算得出用户之间的相似度,与物品之间的相似度。

在这里插入图片描述
2、分别根据用户协同过滤,物品协同过滤进行计算。

在这里插入图片描述
(用户2与用户1相似度 * 用户2对物品5的评分 + 用户3与用户1相似度 * 用户2对物品5的评分)/(用户2与用户1相似度+用户3与用户1相似度)

在这里插入图片描述

(物品A与物品E相似度 * 用户1对物品A的评分 + 物品D与物品E相似度 * 用户1对物品D的评分)/(物品A与物品E相似度 + 物品D与物品E相似度)

最后

以上就是认真海燕为你收集整理的推荐系统项目基础(二)基于相似度的协同过滤基于相似度的协同过滤算法的全部内容,希望文章能够帮你解决推荐系统项目基础(二)基于相似度的协同过滤基于相似度的协同过滤算法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部