python推荐引擎_THUDataPITranslation

用Python建立你的第一个推荐引擎

原文标题:Quick Guide to Build a Recommendation Engine in Python

作者: AARSHAY JAIN

翻译:张逸

在数据科学中,不管你是新手还是经验丰富的专业人士,自己做一些项目总是会给你的简历添彩。而我写这篇文章的目的就是让你从推荐系统开始,构建一个自己的项目。(如果你很难获得开放的数据,请在评论中告诉我)

“推荐引擎(Recommendation engines)”实际上就是一个自动化的商店柜员——你问他某个商品,他不仅会给你该商品,而且还会向你推荐可以购买的其他相关产品。可以说,他们在附加销售方面训练有素。而且在实际中,我们可以知道,这种推荐引擎能够很好的根据客户的历史行为推荐个性化内容,这让顾客们很高兴,同时也为网站招徕了更多的回头客。那么接下来,就让我们来实现一个自己的推荐引擎。

在这篇文章中,我会介绍在Python中使用GraphLab创建推荐系统的基础知识。这之后,你会对推荐系统如何工作、如何构建基本的流行度模型和协同过滤模型有一些自己的理解。

这篇文章的结构如下:

推荐引擎的种类

MovieLens数据集

简单的流行度模型

协同过滤模型

对推荐引擎的评估

在正式开始这篇文章之前,我要衷心感谢

1. 推荐引擎的种类

在查看不同类型的推荐引擎之前,让我们回顾一下,看看是否可以给出一些直观的建议。考虑以下情况:

case1:推荐最受欢迎的物品

一个简单的方法是推荐大多数用户都喜欢的东西。这是一个快速但是不那么好的方法,是因为这个它并没有涉及到个性化。

基本上,对于每个用户来说,被推荐的东西都是相同的——因为流行度定义在了整个用户群体上——所以每个人都会看到相同的结果。这听起来就好像是“一个网站建议你买微波炉,只是因为其他大多数用户喜欢它,但不在乎你是否有兴趣购买”。

令人惊讶的是,这种方法仍然被应用在类似门户网站的地方。每次你登录网站并查看bbcnews,你将看到一列“热门新闻”,它被细分为几个部分,每部分展示了阅读数最多的文章。在这种情况下,这个方法是有效的,因为:

存在一些不同的分类,所以用户可以看他的感兴趣的部分。

在某个时间段内,只有少数几个热点话题,所以很大概率上某个用户想要看的内容和大多数其他人的相重合

case2:用分类器来做推荐

我们已经知道有很多的分类算法。下面来看看如何运用这些技术来做推荐。首先,分类器是一种参数化解决方案,因此我们只需要定义用户和项目的一些参数(特征),而对于输出结果,如果用户喜欢,输出可以为1,否则为0。在某些场景中,分类器可以起到很好的作用,因为它有如下的几个优点:

体现出了个性化

即使用户的历史行为记录很短或不可用,它也可以工作

但它还有一些主要的缺陷,使得它在实际应用中并没有太多的推广:

在实际中一些特征可能是不可用的,或者即便是可用,也不能通过这些特征构建出一个好的分类器

随着用户数和项目数的增长,构建一个好的分类器会变得很困难

case3:推荐算法

接下来我将会介绍为解决推荐问题而量身定制的特殊算法——通常有两种类型——基于内容的推荐算法和协同过滤推荐算法。你可以参考我们以前的文章来了解其具体工作原理。篇幅所限,我在这里简短回顾一下:

1. 基于内容的推荐算法

算法思想: 如果用户喜欢某个东西,那么他也会喜欢与之相似的物品

基于推荐

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值