基于物品的CF(协同过滤)推荐算法

1.1算法简介

CF(协同过滤)简单来形容就是利用兴趣相投的原理进行推荐,协同过滤主要分两类,一类是基于物品的协同过滤算法,另一种是基于用户的协同过滤算法,这里主要介绍基于物品的协同过滤算法。

给定一批用户,及一批物品,记Vi表示不同用户对物品的评分向量,那么物品i与物品j的相关性为:

上述公式是利用余弦公式计算相关系数,相关系数的计算还有:杰卡德相关系数、皮尔逊相关系数等。

皮尔森相关系数(Pearson correlation coefficient)。其定义如下:

该系数定义的是两个向量的线性相关程度,取值范围为[-1,+1],0表示线性无关,绝对值越大线性相关程度越大,正/负表示正/负线性相关。

简单的给几个例子:
[1,2,3],[4,5,6]:1
[1,2,3],[6,5,4]:-1
[1,2,3],[1,2,4]:0.98
[1,2,3],[-1,-11,-111]:-0.9

计算用户u对某一物品的偏好,记用户u对物品i的评分为score(u,i),用户u对物品i的协同过滤得分为rec(u,j)。

1.2业务实践

以购物篮子为例,业务问题:根据用户的历史购买商品记录,给用户推荐一批商品,协同过滤算法实现方法如下。

Step1:计算物品之间的相关系数

记buyersi表示用户购买商品的向量,记buyersi=(…,bu,i,…) u∈U为,其中U表示全库用户集合,bu,i表示用户u对商品i的得分,定义如下:

那么商品i与商品j的相关系数如下:

上述公式是是利用余弦公式计算相关性,含义是商品的用户购买向量夹角越小越相似。此外也可以运用皮尔逊、杰卡德、自定义公式计算相关性,这里不一一列举。

Step2:计算用户对商品的协同过滤得分

给定一个用户u,设该用户历史购买商品记录的向量为historyu=(…,hu,i,…) ,i∈I其中I表示所有商品的集合:

计算给定一个物品j的协同过滤得分为:

Step3:给用户推荐商品

通过Step2计算用户对全库商品的协同过滤得分,取得分top 10展示给用户。

1.3实例代码
https://github.com/wolf-bailang/AI-Projects/tree/master/Recommender Systems/Item-Based Collaborative Filtering Recommendation Algorithm

参考来源
[1] https://mp.weixin.qq.com/s/9F_BRgnhAxP-nALtBdIZpg

基于CF(协同过滤)推荐算法相关推荐

  1. (附源码)ssm+mysql+基于ssm协同过滤推荐算法的电影院购票系统 毕业设计131124

    基于ssm协同过滤推荐算法的电影院购票系统 摘 要 随着信息技术的飞速发展以及Internet的迅速普及,以Web2.0为代表的互联网技术使得网络数据呈爆炸式增长,越来越多的信息和服务充斥着网络.人们 ...

  2. 14 机器学习 - CF协同过滤推荐算法原理

    1 概述 什么是协同过滤 (Collaborative Filtering, 简称 CF)? 首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做? 大部分的人会问问周围的朋友 ...

  3. 协同过滤推荐算法及应用

    1. CF协同过滤推荐算法原理 1.1 概述 什么是协同过滤 (Collaborative Filtering, 简称 CF)? 首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会 ...

  4. 05-机器学习_(协同过滤推荐算法与应用)---没用

    机器学习算法day03_协同过滤推荐算法及应用 课程大纲 协同过滤推荐算法原理 协同过滤推荐算法概述 协同过滤推荐算法思想 协同过滤推荐算法分析 协同过滤推荐算法要点 协同过滤推荐算法实现 协同过滤推 ...

  5. Python实现基于用户的协同过滤推荐算法构建电影推荐系统

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 基于用户的协同过滤推荐(User-based CF)的原理假设: ...

  6. Python实现基于物品的协同过滤推荐算法构建电影推荐系统

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 基于物品的协同过滤推荐(Item-based CF)的假设原理为 ...

  7. 基于Mahout实现协同过滤推荐算法的电影推荐系统

    1 Mahout介绍 Apache Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更 ...

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

    [机器学习]基于奇异值分解(SVD)的协同过滤推荐算法及python实现 一.协同过滤推荐算法 1.1.协同过滤算法的分类 1.2.相似度的度量 1.3.商品评分的预测 二.奇异值分解(SVD)在协同 ...

  9. 从原理到实现,详解基于朴素ML思想的协同过滤推荐算法

    作者丨gongyouliu 编辑丨Zandy 来源 | 大数据与人工智能(ID: ai-big-data) 作者在<协同过滤推荐算法>.<矩阵分解推荐算法>这两篇文章中介绍了几 ...

  10. 【知识发现】基于用户的协同过滤推荐算法python实现

    1.协同过滤推荐算法分为两类,分别是基于用户的协同过滤算法(user-based collaboratIve filtering),和基于物品的协同过滤算法(item-based collaborat ...

最新文章

  1. rust怎么用items刷东西_装修贷卡怎么刷?不同银行的用不同的POS机刷才对
  2. SAP PM 入门系列17 - IB03 显示设备BOM
  3. nodejs里的module.exports和exports
  4. 知识点:图说 Mysql 权限管理
  5. Linux 信号详解五(信号阻塞,信号未决)
  6. 均值定理四个公式_中考数学几何题,就考这140多条公式定理!
  7. oracle中sql拼接字符串函数,sql字符串连接函数
  8. JavaScript闭包理解
  9. 关于地图矢量下载器的使用感受
  10. instead和instead of
  11. 视频网站程序 linux,观看主流视频平台视频的Windows、Mac、Linux客户端:ivideo
  12. 计算机网络设计大赛总结,计算机技能大赛总结#.doc
  13. 1000句最常用英语口语 (四)
  14. 【动态规划】机器人军团
  15. 速读 OSI合作的《2022全球开源趋势报告》
  16. ctrl+enter键
  17. react-native系列(13)动画篇:Animated动画库和LayoutAnimation布局动画详解
  18. 关于U盘制作启动盘后内存变小问题的解决
  19. 山药粥营养价值好处有哪些 山药粥的功效与作用
  20. Serverless开发实战——FASS

热门文章

  1. DNS bind9配置
  2. 组合导航(八):INS/GPS组合导航
  3. 重庆涪陵创新计算机学校高考,重庆涪陵创新计算机学校2020年招生录取分数线...
  4. 快手用户群体分析_快手人群定位(快手市场定位分析)
  5. matlab dfp法,DFP算法及Matlab程序
  6. java练习本(2019-07-29)
  7. vue的div滚动条自动到底部_vue 每次渲染完页面后div的滚动条保持在最底部的方法...
  8. 爬虫职业是灰色产业么?违法犯罪么?
  9. 教育整改进行时,家长有话要说
  10. 生猛!这篇万字长文,一下子把计算机底层知识说明白了!