基于近邻的协同过滤算法

也被称为基于内存的算法(memory-based algorithm)。是最早的为协同过滤而开发的算法之一。这类算法是基于相似的用户已相似的行为模式对物品进行评分,并且相似的物品往往获得相似的评分这一事实。基于近邻的算法分为以下两个基本类型:
(1)基于用户的协同过滤:这种类型中,把与目标用户A相似的近邻用户的评分用来为A进行推荐,这些“同组群体”对每件物品的评分的加权平均值将用来计算用户A(对物品)的预计评分。
(2)基于物品的协同过滤:为了推荐目标物品B,首先确定一个物品集合S,使S中的物品与B相似度最高。然后,为了预测往意十不用户A对B的评分,需要确定A对集合S中物品的评分。这些评分的加权平均值将用来计算用户A对物品B的预计评分。

基于内容的推荐算法

基于内容的推荐系统尝试为用户匹配那些与其喜欢的物品相似的物品。这种相似性不一定基于用户之间的评分相关性,而是基于用户喜欢的对象的属性。不同于使用与目标用户相关的其他用户评分的协同过滤方法,基于内容的系统更加关注目标用户自己的评分,以及用户喜欢的物品的属性。因此其他用户在基于内容的系统中扮演的角色不太重要。换句话说,基于内容的方法利用不同的数据源给出推荐。

下面给出本系统基于内容的推荐算法的实现步骤。

(1)数据预处理和特征提取
这部分主要是对电影属性信息进行一个预处理,并提取电影的特征信息。在我们爬取的电影属性信息中,有些电影的某些属性信息是空值,或者属性值包含有空格、换行符、制表符等无用信息,我们需要先将这些属性信息通过一些字符串处理函数将其去掉。然后,我们需要从每部电影的属性信息中提取出关键词,将关键词作为电影的特征。做出这种选择是因为非结构化文本描述通常在各个领域中广泛使用,并且它们仍然是最自然的描述物品的方式,在很多情况下,我们可以用几个词来描述或者代表这个物品。比如我们将每部电影的导演、演员、电影类型、电影标签等作为关键字。那么和该部电影在导演、演员、电影类型、电影标签等关键字上都特别相似的电影就有可能是类似的。比如《唐伯虎点秋香》和《喜剧之王》演员都有周星驰,类型都是喜剧,那么它们的相似度就还是比较高的。
(2)数据特征表示和清洗
这部分主要是将处理好的电影数据特征进行特征表示,即转换为向量空间表示,然后再进行数据降维[16],数据归一化等一系列处理得到特征矩阵。
(3)相似度计算
这部分主要是根据电影的特征表示即特征矩阵来计算电影与电影之间的相似度,同样可以选用Cosine相似度来进行计算。得到电影与电影之间的相似度之后,我们可以按相似度对电影列表进行排序,优先为用户推荐相似度高的电影。

下面是商品推荐的例子

目前常见的商品推荐算法是协同过滤,公认比较常用的方法俗称“邻居方法”。邻居方法中有两种视角:第一种是基于用户;第二种是基于商品。

基于用户的协同过滤,称为User-based CF(User-based Collaborative Filtering)。系统通过分析一个用户和哪些用户(参考用户)的特征比较相似,然后看看这些参考用户喜欢买哪类的商品,再从这些商品里挑出一些推荐给该用户。

基于商品的协同过滤,称为Item-based CF(Item-based Collaborative Filtering)。系统通过数据分析和挖掘用户的购买行为,来判断用户喜欢的商品类型,然后从那些用户喜欢的商品类型里挑出一些推荐给用户。

1. User-based CF 基于用户的协同过滤

算法核心思路:当用户进入一个电商平台时,作为电商平台系统找到那些和该用户兴趣/喜好类似的人,然后看看他们喜欢什么,就给该用户推荐什么。简而言之,A和B两个用户相似,然后给A推荐B喜欢的东西。

2. Item-based CF 基于商品的协同过滤

这种算法给用户推荐那些和他们之前喜欢的商品相似的商品。(天猫经常这么搞)

一般,推荐算法核心思想是,给用户推荐那些和他们之前喜欢的物品相似的物品。

比如,内容推荐算法的“基于内容的协同过滤”,用户A之前阅读过NBA的相关信息,该算法会根据此行为给你推荐所有NBA相关的内容(去看头条的,就是这个套路),但是基于物品的协同过滤有点不同,Item-based CF算法并不利用物品的内容属性计算物品之间的相似度,它主要通过分析用户的行为记录计算物品之间的相似度。

Item-based CF算法认为,“有很多人喜欢商品A,同时他们也喜欢商品B,所以A和B应该是比较类似的商品。

电影/商品 推荐的两种经典算法相关推荐

  1. 第四讲图:最短路径两种经典算法学习总结2

    1的传送门https://blog.csdn.net/qq_45839708/article/details/104361629 2.弗洛伊德(Floyd)算法 这个算法相对于迪杰斯特拉算法: 1. ...

  2. ML之回归预测:利用两种机器学习算法(LiR,XGBoost(调优+重要性可视化+特征选择模型))对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值

    ML之回归预测:利用两种机器学习算法(LiR,XGBoost(调优+重要性可视化+特征选择模型))对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值 目录 输出结果 1. ...

  3. 近似装箱问题(两种脱机算法实现)

    [0]README 0.1) 本文总结于 数据结构与算法分析, 源代码均为原创, 旨在 理解 "近似装箱问题(两种脱机算法实现)" 的idea 并用源代码加以实现: 0.2) 近似 ...

  4. 【MySQL】MySQL 两种排序算法

    1.概述 原文:高性能MySQL一书.再抄的,找得快. 无论如何排序都是-一个成本很高的操作,所以从性能角度考虑,应尽可能避免排序或者尽可能避免对大量数据进行排序. 当不能使用索引生成排序结果的时候M ...

  5. 计算机算法讲解的ppt,智能计算几种经典算法解析.ppt

    <智能计算几种经典算法解析.ppt>由会员分享,可在线阅读,更多相关<智能计算几种经典算法解析.ppt(20页珍藏版)>请在装配图网上搜索. 1.智能计算几种经典算法解析,制作 ...

  6. 必须记住的电源防反接电路,推荐后两种电路!

    必须记住的电源防反接电路,推荐后两种电路! 参考文献: 1.必须记住的电源防反接电路,推荐后两种电路! https://mp.weixin.qq.com/s/vqz3ZHq0XG7Wt571sG8s7 ...

  7. 两种不同算法的AMSR-2产品下载方法

    ** 两种不同算法的AMSR-2产品下载方法 ** AMSR-2传感器搭载于全球变化观测计划GCOM(Global Change Observation Mission)的W1卫星,于2012年5月1 ...

  8. 【计算机图形学】 圆的两种生成算法(角度微分法、Bresenham算法)

    圆的两种生成算法(角度微分法.Bresenham算法) 文章目录 1.角度微分法的原理 2.角度微分法的实现(基于matlab) 3.Bresenham 算法的原理 4.Bresenham 算法的实现 ...

  9. 数据中台推荐系统入门(二):两种经典的推荐算法

    前言 所谓"物以类聚,人以群分",基于用户的协同过滤算法就是基于这个原理来实现的. 你可能听过"啤酒与尿不湿"的故事:通过对一家超市的销售数据分析发现,有很多人 ...

最新文章

  1. PHP5 mysqli 教程
  2. linux命令应用之一
  3. amaze 绝对位置 html,Amaze UI 兼容性列表
  4. 【lua学习】2.数据类型
  5. bootstrap五星评分_如何用纯代码实现评分星级显示?
  6. win python 怎么打开建立一个孤立的进程_python实现在windows服务中新建进程的方法...
  7. OPEN SQL中通配符的使用
  8. windows/Linux/Mac下安装maven
  9. hive不在同一台机 hue_【Impala篇】---Hue从初始到安装应用
  10. Java二分查找代码
  11. 中值滤波器及均值滤波器
  12. dreamweavercc 数据库_Dreamweaver CC
  13. [构造]triples I
  14. VSCode中snippets(代码模板)的使用
  15. 工具 | Charles对Chrome浏览器抓包
  16. 疯狂java学习笔记三
  17. 计算机在表格if用法,excel使用if判断单元格包含特定字符
  18. JavaScript WebGL 使用图片疑惑点
  19. java安装及运行环境配置
  20. 嵌入式Linux-IMX6ULL-U-BOOT移植学习总结(二)

热门文章

  1. 算法复习——动态规划篇之钢条切割问题
  2. RC4算法原理与应用 —— 密码与密码工程实践No.1
  3. Python之包管理工具---pip阿里巴巴源
  4. 当下常见的十大(现在补充了,是十一大手机操作系统)手机(平板)操作系统...
  5. Python 处理ios国际化文件,从strings读取到excel表
  6. java面试中经常会被问到分布式面试题
  7. 电脑下载python 步骤_python3安装详细步骤
  8. php六进制颜色,PHP RGB颜色和十六进制颜色互转
  9. 好用的PHP导航源码
  10. 对于数据库关键字的执行顺序的总结