目录

1. 基于用户的协同过滤

1.1 相似度评价值

1.1.1 欧几里得距离:

1.1.2 皮尔逊相关度:

1.1.3 曼哈顿距离算法

1.1.4 Jaccard系数

1.1.5 余弦相似度

1.2 推荐物品

2. 基于物品的协同过滤

3. 两种协同过滤比较


1. 基于用户的协同过滤

协同过滤算法通常是对一大群人进行搜索,并从中找出与我们品味想近的一小群人。算法会对这些人所偏爱对其他内容进行考查,并将他们组合起来构造出一个经过排名的推荐列表。

1.1 相似度评价值

既然要找到品味方面的相似度,就需要将个体与其他人进行比较,并计算他们的相似度评价值;

1.1.1 欧几里得距离:

这个比较简单,采用欧几里得度量方法即可:

1.1.2 皮尔逊相关度:

该相关系统是判断两组数据与某一直线的拟合程度的一种度量。公式较复杂,皮尔逊相关度修正了夸大分值,它在数据不是很规范的情况下会倾向于给出更好的结果,如:影评者对影评的评价总是相对于平均水平偏离很大。

皮尔逊相关度评价算法首先会找出两位评论者都曾评价过的物品,然后计算两者的评分总和与平方和,并求得评分的成绩和。最后算法利用这些计算结果计算出皮尔逊相关系数。

皮尔逊的相关性系数可以看为协方差与标准差的商。

1.1.3 曼哈顿距离算法

就是用曼哈顿距离(出租车距离)来度量两者的相似性。

1.1.4 Jaccard系数

用于比较有限样本集之间的相似性与差异性。Jaccard系数值越大,样本相似度越高。

还可以用于文本相似性、序列相似性,非常适合数据集只有0、1两组取值的数据集。另外可以了解下Tanimoto系数,又称谷本系数。

1.1.5 余弦相似度

通过测量两个向量的夹角的余弦值来度量它们之间的相似性。余弦相似度通常用于正空间,因此给出的值为0到1之间,值越大相似性越大。

1.2 推荐物品

只单单通过相似度最高的人来推荐太随意了,有时可能会出问题,所以我们采用加权的方法进行打分,比如下表中的(S.影片名)则表示加权后的评分。同时为了防止个别影片评论人数过多导致加权评价值综合过高,我们采用总值除以Sim.Sum(与被推荐人的相似度和)来修正这个问题。即通过加权取平均的方式进行打分:

为小红提供推荐
评论者 相似度 肖生克 S.肖生克 复联3 S.复联3 头号玩家 S.头号玩家
小白 0.90 8.70 7.83 9.10 8.19 9.20 8.28
小兰 0.50 6.70 3.35 8.00 4.00 7.40 4.20
小绿 0.60 7.20 4.32     9.20 5.52
小黑 0.30 8.30 2.49 6.10 1.83    
总计     17.99   14.02   18
Sim.Sum     2.3   1.7   2.0
总计/Sim.Sum     7.82   8.24   9

2. 基于物品的协同过滤

在拥有大规模数据的情况下,基于物品的协同过滤能够更好得到结论,而且它允许我们将大量计算任务预先执行,从而使需要给予推荐的用户能够更快地得到他们所要的结果。

总体思路:

  1. 为每件物品预先计算好最为相近的其他物品
  2. 查看用户的历史评分物品,并从中选出排名靠前者(综合各方面进行排名)
  3. 构造加权列表,包含与选中物品最为相近的其他物品

物品间的比较不会想用户间的比较那么频繁变化。

3. 两种协同过滤比较

  • 基于物品进行过滤速度更快;
  • 基于用户进行过滤更容易实现;
  • 对于稀疏数据集,基于物品通常优于基于用户的过滤方法;
  • 对于密集型,两者效果几乎一样。

集体智慧编程——协同过滤相关推荐

  1. 《集体智慧编程》读书笔记2

    最近重读<集体智慧编程>,这本当年出版的介绍推荐系统的书,在当时看来很引领潮流,放眼现在已经成了各互联网公司必备的技术. 这次边阅读边尝试将书中的一些Python语言例子用C#来实现,利于 ...

  2. 《集体智慧编程》数学公式

    这篇博客的目的主要是为了记录这些公式,取自原书附录B. 1.欧几里得距离(Euclidean Distance) 用途:计算距离,衡量相似度 公式: 代码实现: def euclidean(p, q) ...

  3. 《集体智慧编程》——第一章导读

    为什么80%的码农都做不了架构师?>>>    什么是集体智慧 其含义是指:为了长早新的想法,而将一群人的行为.偏好或思想组合在一起. 完成这项工作的一种最为基础的方法,便是使用调查 ...

  4. 《集体智慧编程》读书笔记10

    最近重读<集体智慧编程>,这本当年出版的介绍推荐系统的书,在当时看来很引领潮流,放眼现在已经成了各互联网公司必备的技术. 这次边阅读边尝试将书中的一些Python语言例子用C#来实现,利于 ...

  5. 《集体智慧编程》读书笔记4

    最近重读<集体智慧编程>,这本当年出版的介绍推荐系统的书,在当时看来很引领潮流,放眼现在已经成了各互联网公司必备的技术. 这次边阅读边尝试将书中的一些Python语言例子用C#来实现,利于 ...

  6. 《集体智慧编程》笔记(1 / 12):集体智慧导言

    文章目录 什么是集体智慧 什么是机器学习 机器学习的局限性 真实生活中的例子 学习型算法的其他用途 小结 Netflix, Google都适用了先进算法,将来自不同人群的数据加以组合,进而得出新的结论 ...

  7. 读书笔记《集体智慧编程》Chapter 2 : Make Recommendations

    本章概要 本章主要介绍了两种协同过滤(Collaborative Filtering)算法,用于个性化推荐: 基于用户的协同过滤(User-Based Collaborative Filtering, ...

  8. 《集体智慧编程》笔记(2 / 12):提供推荐

    Making Recommendations 文章目录 协作型过滤 搜集偏好 寻找相近的用户 欧几里得距离评价 皮尔逊相关度评价 应该选用哪一种相似性度量方法 为评分者打分 推荐物品 匹配相似商品 构 ...

  9. 提供推荐--集体智慧编程

    背景:购物平台商品推荐算法介绍 数据:影评者对几部影片的打分情况,寻找人们在品味上的相似程度.通过相似度评价值进行推荐.评价值体系:欧几米德距离和皮尔逊相关度 critics = {'Lisa Ros ...

  10. 【集体智慧编程】第二章、提供推荐

    一.前言 本章即将告诉大家,如何根据群体偏好来为人们提供推荐.有许多针对于此的应用,如:在线购物中的商品推荐.热门网站的推荐,以及帮助人们寻找音乐和影片的应用.本章将告诉你如何构筑一个系统,用以寻找具 ...

最新文章

  1. mysql 1061原因_MySQL死锁问题分析及解决方法实例详解(转)
  2. 2016职业技能大赛信息安全管理与评估赛项任务书
  3. vue 动态添加class_前端开发:Vue项目实战-Music
  4. [LeetCode] Reverse Linked List I II - 链表翻转问题
  5. Django(part20)--数据库和模型
  6. 两平面平行方向向量关系_一文读懂 GDT 中的平面度
  7. 离散数学计算机科学丛书答案,计算机《离散数学》期中试卷答案.docx
  8. 【手册】jc-cookies 中文文档
  9. GEE(Google Earth Engine)批量导入谷歌云盘
  10. 电脑桌面文件删除了怎么找回?
  11. vue + element 与 vue element admin 中 tab标签视图 页拖拽(拖动) sortablejs 插件案例
  12. 如何快速制作证件照并压缩到100K?
  13. 【团体天梯赛/PTA】7-34 福到了 (15 分)
  14. leetcode 121. 买卖股票的最佳时机 (贪心 + 动规 + 双指针
  15. PostgreSQL 15 新特性解读 | 墨天轮优质文章合集
  16. 用python写一个自动注册脚本_js自己写脚本自动操作注册插件基于chrome浏览器
  17. 百兆以太网口通信速率_以太网发送速率(传输速率)和传播速率
  18. Ubuntu KVM安装过程
  19. 企业微信获取客户群里用户的unionid;企业微信获取客户详情
  20. template文件夹可以删_请问templates是什么 文件 能删除吗?

热门文章

  1. 抖音代码舞Python制作
  2. 阿里云OS和Android之争100问
  3. Oracle 11g RAC 环境下单实例非缺省监听及端口配置
  4. zmap扫描mysql_45分钟扫遍全网:最快的互联网扫描工具ZMap
  5. 编写一个应用程序,给出汉字‘你’、‘我’、‘他’在Unicode表中的位置。
  6. arcmap发布三维地图_如何使用高程DEM建立三维地图模型(Arcgis ArcScene)
  7. UE4官方文档UI学习:6. UMG 使用菜单锚显示弹出菜单
  8. 精品软件介绍 Wireless Network Watcher 中文版 - 防蹭网监视软件
  9. SSH学习之四 OpenSSH安全
  10. 传智播客张孝祥 JavaScript视频教程