如何用Python实现智能推荐

发布时间:2021-11-15 15:48:50 作者:柒染
来源:亿速云 阅读:169

这篇文章将为大家详细讲解有关如何用Python实现智能推荐,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

智能推荐是以“客户需求”为导向的,是给客户带来价值的。常见的如淘宝的 “你可能还喜欢”,亚马逊的 “购买此商品的用户也购买了” 便是实例。今天就带大家来看看如何用Python实现智能推荐算法。

研究方向: Python

常见的推荐系统与算法

常见的 **推荐系统分类 **有:

如何用Python实现智能推荐

“ 京腾 ” 合作构建用户画像标签图

常见的 **推荐算法 **有:

如何用Python实现智能推荐

本文将专注于理解起来最容易且又十分经典常用的 **基于关联规则的购物篮推荐 **。商品的关联度分析对于 **提高商品的活力、挖掘消费者的购买力、促进最大化销售 **有很大帮助。其建模理念为:物品被同时购买的模式反映了客户的需求模式, **适用场景 **:无需个性化定制的场景;有销售记录的产品,向老客户推荐;套餐设计与产品摆放。

购物篮简介

问 : 什么是购物篮?主要运用在什么场景?

答:单个客户一次购买商品的综合称为一个购物篮,即某个客户本次的消费小票。常用场景:超市货架布局:互补品与互斥品;套餐设计。

: 购物篮的常用算法?

答 :常用算法有

问 : 求出互补品与互斥品后对布局有什么用?

答 :根据关联规则求出的商品间的关联关系后,可能会发现商品间存在强关联,弱关联与排斥三种关系。每种清醒有各自对应的布局方式。

根据购物篮的信息来进行商品关联度的分析不仅仅只有如上三种关系,它们仅代表商品关联度分析的一个方面(可信度)。全面系统的商品关联分析必须有三度的概念,三度包括 **支持度 **, **可信度 **和 **提升度 **。

关联规则

直接根据关联三度所定义的概念去理解会有不少难度,尤其是可信度喝提升度中的“ 谁对谁 ”的问题。其实可以换一种方式来看:

如何用Python实现智能推荐

为方便理解这些规则,我们通过下面五个购物篮的例子来练习一下

如何用Python实现智能推荐

不难发现,支持度的分母都是5,也就是购物篮的数量,分子则是选取这个规则中的所有商品同时出现在一个篮子的次数。以A->D为例,同时包含A和D的篮子有2个,总的交易数量(篮子总数)有5个,所以规则A->D的支持度为2/5;有商品 A 的篮子个数为3,在这三个篮子中,其中2个篮子又包含商品D,所以该规则的置信度(可信度)为2/3。 有关关联规则, 还有以下两个问题想补充

问: 仅看支持度和置信度是否靠谱?

答: 看一个案例:食堂卖饭,1000份打饭记录中,买米饭的有800人次,买牛肉的有600人次,两个共同买的有400人次,那么可以得出对于规则(牛肉 - > 米饭) **Support **=P(牛肉&米饭)= 400/1000=0.40; **Confidence **=P(米饭|牛肉)=400/600=0.67 **置信度 **和 **支持度 **都很高,但是给买牛肉的人推荐米饭有意义吗?显然是没有任何意义的。因为无任何条件下用户购买米饭的概率:P(米饭)=800/1000=0.8,都已经大过买了牛肉的前提下再买米饭的概率 0.67,毕竟米饭本来就比牛肉要畅销啊。

这个案例便引出了 **提升度 **的概念:提升度 = **置信度/无条件概率 **=0.67/0.8。规则 X(A→B) 的提升度为 n 时:向购买了 A 的客户推荐 B 的话,这个客户购买 B 的概率是 TA 自然而然购买 B 的 n × 100% 左右。生活理解:消费者平时较少单独购买桌角防撞海绵,可能偶尔想到或自己小孩碰到的时候才会想起购买,如果我们在桌子(书桌饭桌)的成功下单页面添加桌角防撞海绵的推荐,则很大程度上可以提高防撞海绵的销量。这也符合我们希望 **通过畅销商品带动相对非畅销商品 **的宗旨。

问: 除了公式的含义,关联三度(支持度,置信度,提升度)还有什么关联吗?

答: 可以这样理解:

所以 1.0 是提升度的一个分界值,刚才的买饭案例中给买了牛肉的用户推荐米饭的这种骚操作的提升度小于 1 也就不难理解了。另外,高置信度的两个商品(假设达到了 100%,意味着它们总是成双成对的出现),但如果支持度很低(意味着份额低),那它对整体销售提升的帮助也不会大。

基于Apriori 算法的Python实战

由于有关Apriori等算法的研究已经很成熟,我们在用Python实战时无需一步一步计算,直接调用现有函数即可,主要是要 **明白背后的原理与不同算法的使用场景与优劣比较 **。

探索性分析

首先导入相关库并进行数据 探索性分析

如何用Python实现智能推荐

数据参数解释

接着来看看商品的种类

如何用Python实现智能推荐

再来看看最畅销的 15 种商品

如何用Python实现智能推荐

再进行一些简单的可视化

如何用Python实现智能推荐

使用 Apriori 算法求解关联规则

首先 **生成购物篮 **,并将同一个客户购买的所有商品放入同一个购物篮,需要提前使用 pip install Apriori 安装,之后我们使用 Apriori 包中的 dataconvert 函数, 下面是需要传入的参数解释

注意:需要注意传入的参数类型,只要对了,直接套用就不是什么难事

现在查看前五个购物篮中的物品

如何用Python实现智能推荐

现在 **生成关联规则 **,根据排列组合,可知这些交易将会产生 21255×21254÷2 这么多个关联规则。 首先就要满足支持度的要求,太小则直接被删去,支持度的大小可根据关联规则的多少调整 如果关联规则很少,可根据实际情况放宽支持度的要求。相关参数说明:

这里,minSupport 或 minConf 设定越低,产生的规则越多,计算量也就越大

如何用Python实现智能推荐

结果说明: 以 result 第一行为例

现在我们 **筛选互补品和互斥品 **,代码如下

如何用Python实现智能推荐

对结果简单分析一些,不要期望每个规则都有意义,要结合业务思考,比如竞速型赛道自行车与运动水壶互斥实属正常,竞速讲究轻量化,还配个水壶干什么... 比如山地车配一个竞速公路车用的运动型头盔...互斥产品则是成对出现的!

根据关联规则结果推荐产品

需要结合业务需求

以获得最高的营销相应率为目标

如果一个新客户刚刚下单了 *山地车英骑 *这个产品,如果希望 **获得最高的营销响应率 **,那在他付费成功页面上最应该推荐什么产品?

目标:获得最高的营销响应率

如何用Python实现智能推荐

以最大化总体销售额为目标

如果一个新客户刚下单了 *山地英骑 *这个产品,如果希望 **最大化提升总体的销售额 **,那么在他付费成功的页面上应该推荐什么产品?对Python感兴趣或者是新手入门不懂怎么学习的小伙伴,可以加入我的薇信:itz992 从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。分享给每一位python的小伙伴!每晚给大家分享一些学习的方法和需要注意的小细节

目标:最大化销售额

如何用Python实现智能推荐

再次重申 **提升度通俗含义: **提升度是相对于自然而然购买而言,A对B的提升度为4.0的理解如下:向购买了A的用户推荐B,则该用户购买B的概率是该用户单独(即自然而然的购买)购买B的概率的 400% 向购买了A的用户推荐B,则该用户购买B的概率比该用户单独(即自然而然的购买)购买B的概率高 300%

用户并未产生消费,为其推荐某样商品

如何用Python实现智能推荐

结语: 基于关联规则的 Apriori 算法是智能推荐领域十分经典的应用之一,简单易上手。

关于如何用Python实现智能推荐就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. 如何用Python实现词云效果
  2. 基于Python实现船舶的MMSI的获取(推荐)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:hbase的rowkey设计原则和实现方式是怎样的

下一篇:如何使用Kolla-Ansible在CentOS 7单节点上部署OpenStack Pike

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》